VBA別館・Python別館
Python whileの使い方 - Tak
2018/10/29 (Mon) 11:04:41
或る処理を繰り返し行う場合にforを使いましたが、whileの方が良い場合もあります。
特に使用者に入力を求めて、その入力結果によって処理が変わるときは、whileが絶対便利です。
① 条件が成立すれば完了という処理の場合
while true: #:を忘れないこと
str = input('なにか入力して。')
if str == 'さよなら'
print('バイバイ')
break
print(str + 'と入力されました)
このcodeの意味は、
・条件に合っているときは(While True:)、バイバイと表示しなさい。
・それ以外の時は、whileから出て(break)str+入力文字を表示しなさいと言う意味です。
だんだんcodeが難しくなってきますが、whileは非常に大事な関数ですので記憶にとどめて置いて下さい。
それとcodeを書いていると(特に日本語混在の場合)、絶対にcode中に全角を使ってはいけません。
② エラー発生
ここでこのcodeをnew fileに書いてrunさせたら、invalid charcter in identifierというエラーメッセージが出ました。
これはcodeの前後に不必要な空白や、位置が間違っているときに出ます。
今回の場合は、print(str + 'と入力されました')を、気が付かずに一段下げたところにインデントしてしまったからエラーになりました。
正式には、
if str == 'さよなら'
print('バイバイ')
break
print(str + 'と入力されました)
と、ifと同じスタート位置にしないといけないのです。 何故かというとPythonの場合は、変数のスコープ(適用範囲)がインデントで決まりますので。
どうもこの辺はまだすっきりしないのですが、必ずエラーとその理由を教えてくれますので、何回もおなじエラーが出てくると、自然とその対策も覚えますからご心配なく。