文字列とアスキーコードの変換

ord 関数を使うことで文字列をアスキーコードへ変換することができます。

ord('a')   # 97
ord('1')   # 49

chr メソッドを使うことでアスキーコードを文字列へ変換することができます。

chr(97)   # 'a'
chr(49)   # '1'

この問題では、a を 0、b を 1、c を 3、、、z を 25 というように、各英文字に対応した番号を割り当てることができれば、サイズが 26 である整数型のリストをカウンタとすることができます。

英小文字の a ~ z には連続したアスキーコードが割り当てられているので、ある文字のアスキーコードから 'a' のアスキーコードを引くと対応した番号が得られます。

たとえば、以下のようにして数えることができます:

num = ord(ch) - ord('a')   # 文字 ch の番号
counter[num] += 1          # 文字 ch をカウント

try-except による例外処理

プログラムにおける例外とは、実行時に発生するエラーのことです。例外が発生したとき、基本的には try-except 文を使って例外処理を行います。以下が try-except の構文になります:

try:

    例外発生の可能性があるが実行したい処理

except エラー名:

    例外発生時に行う処理

まず、try ブロックの処理が実行されます。例外が発生しなければ except ブロックはスキップされます。しかし、except 文で指定したエラー名と一致する例外が try ブロック内で発生した場合、except ブロックの処理が実行されます。

このように、try-except を用いることでエラー発生による処理の停止を防ぐことができます。

EOFまでの読み込み

ファイルの終端を表す特殊な記号やデータをEOF (End Of File)と呼びます。 input メソッドで入力を EOFまで行うためには、try-except を用いて以下のように記述します:

while True:
    try:
        str = input()
    except EOFError:
        break

Reference

 

オンラインジャッジではじめるC/C++プログラミング入門 (マイナビ)

AIZU ONLINE JUDGE のコース問題を題材にした解説書です。各トピックごとに C/C++ 言語の基礎的な内容を学習し、Introduction to Programming の演習問題にチャレンジしていきます。内容は敷居の高いものではなく、プログラミング初学者が取り組む例題からスタートしています。