Python独学ならTech-Joho TOP > Python問題集 > Range
問題
下のコードの # fix hereと書いてある行を修正し、
組み込みクラスrangeを用いて、7の倍数を小さい方から10個表示せよ
for i in range(7, 10): # fix here
print(i)
実行結果の例
7から70までの10個が表示されます。
7
14
21
28
35
42
49
56
63
70
回答例
rangeのコンストラクタをうまく使うと、連続した整数の数列だけでなく、特定の間隔の整数の列をつくることができます。
for i in range(7, 71, 7): # fix here
print(i)
解説
rangeクラスのコンストラクタの最も典型的な使い方は、整数の引数を2つ指定して、第一引数以上から第二引数未満の数列を作ることです。
作った数列はlistクラスのコンストラクタの引数にして、listに変換することもできます。
For文で特定回数のループを作りたいときには便利です。
実は、rangeクラスのコンストラクタには第三引数を指定することもできます。
第三引数はstep、つまり何個ずつ整数を増やしていくか、を設定します。
ディフォルトは1なので1つずつ数字が増えていきますが、2にすれば1つとばし、3にすれば2つとばし、と飛び飛びの数値の列を作ることができます。
問題では、この機能を使っています。
print(list(range(0, 10))
for number in range(0, 20): # 20回ループさせる
print(number)
for number2 in range(0, 20, 2) # 1つおきに、0から20の手前まで数えてループさせる
print(number2)
Pythonの組み込みクラスrangeについての公式ドキュメントです。
Python3 range