問題
アルファベットをaから順にn個表示するプログラムを書いてください。
アルファベットは小文字のみを対象とします。
例えば、n=7の場合、「abcdefg」と表示させます。
nはプログラム実行時に入力するようにしてください。
入力が1〜26以外だった場合、「1〜26の整数を入力してください」と表示するようにしてください。
入力が1〜26の整数以外だった場合も、「1〜26の整数を入力してください」と表示するようにしてください。
解答
解説
今回の問題では、
- インデックスを指定して文字列から文字を抽出する
- 文字列が整数かどうかを判定する
isdigit()
メソッド - Unicodeコードポイントを指定して文字を取得する
chr()
関数
の3点について見ていきます。
文字列からインデックスを指定して文字を抽出する
文字列はインデックスを指定して文字を抽出することができます。
sample_word = 'abcde'
print(sample_word[1])
print(sample_word[3])
上記の実行結果
b
d
スライスで範囲を指定して、抽出することもできます。
sample_word = 'abcde'
print(sample_word[1:4])
上記の実行結果
bcd
解答例1ではスライスを指定する方法を使用しています。
文字列が整数かどうかを判定するisdigit()メソッド
文字列型が持つメソッドに、その文字列が整数かどうかを判定するisdigit()
があります。
isdigit()
は文字列が0を含む正の整数の場合はTrue、整数ではない場合はFalseを返します。
全角の正の整数もTrue、負の整数はFalseになります。
print('2'.isdigit())
print('2'.isdigit())
print('abcde'.isdigit())
print('0'.isdigit())
print('-2'.isdigit())
上記の実行結果
True
True
False
True
False
解答例1、2ともに、入力された値のチェックにisdigit()
メソッドを使用しています。
Unicodeコードポイントを指定して文字を取得するchr()関数
chr()
関数はUnicodeを指定して文字を取得することができます。
print(chr(97))
print(chr(98))
print(chr(122))
上記の実行結果
a
b
z
Unicodeはaが97で、zまで連番になっています。
解答例2では連番になっていることを利用しています。
Unicodeはウィキペディアなどで確認できます。
chr()
関数と逆に、文字からUnicodeを取得するord()
関数もあります。
print(ord('a'))
print(ord('b'))
print(ord('z'))
上記の実行結果
97
98
122
Google Colaboratory
本記事に掲載しているコードは Google Colaboratory で動作を確認しています。
下記からアクセスして、ご自身のGoogleドライブにコピーしていただければ、すぐに実行できます。
環境構築の不要な Google が提供している Webサービスなので、Python を学習中の方にはオススメです。
おわりに
今回は指定された個数のアルファベットをaから順に表示する問題をお届けしました。
解くことはできたでしょうか?
本ブログでは、今後も具体的な問題・課題の解説記事を増やしていきたいと考えています。
解説して欲しい問題・課題がありましたら、ぜひ、お問い合わせフォームからご連絡ください。
以上です。
コメント