夜会回答ポイント 100ptウォッチ

Pythonのif文に関する質問です。


##########
x = 0
cities = ['大阪', '東京', '名古屋', '福岡']
numbers = [0,1]
for i in range(len(cities)):
 for num in numbers:
  if cities[i+num].startswith('大'):
   break
 x = x + 1

print(x)
##########

上記のコードだと、IndexErrorが出ます。
1つ目のforループでiが一番大きい値(3)をとり、かつ2つ目のforループでnumが1をとると、cities[i+num]はcitiesのインデックス4を見ようとするが、そんなものはないからです。
しかし、if notに変えた、

##########
x = 0
cities = ['大阪', '東京', '名古屋', '福岡']
numbers = [0,1]
for i in range(len(cities)):
 for num in numbers:
  if not cities[i+num].startswith('大'):
   break
 x = x + 1

print(x)
##########

というコードだと、エラーが出ません。
なぜエラーが出ないのでしょうか?

※なぜか半角スペースだとインデントが表示上反映されなかったので、全角スペースでインデントしてます。

※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。
ログインして回答する

ベストアンサー

その他の回答

この質問へのコメント

コメントはありません

この質問への反応(ブックマークコメント)

質問の情報

登録日時
2016-10-05 22:57:17
終了日時
2016-10-06 09:30:12
回答条件
1人10回まで

この質問のカテゴリ

この質問に含まれるキーワード

Python343インデックス372福岡410名古屋607デント113大阪1835東京4707

人気の質問

メニュー

PC版