前提・実現したいこと
インデントの使い方で困っています、ご回答いただけますと幸いです
具体的には{該当のソースコード}の5行目#( ↓ここのreturnの位置のことですの行)のreturn Trueのインデントの位置です
3行上のifに揃えないと実行できないのですが、なぜでしょうか?
if文が終わっている、if文を抜け出しているはずなのでreturn Trueの位置はどこでもよいと思うのですが納得できません。
もし
else return True
と書くならば、ifとelse return True のインデントは揃えないといけないのは理解しております
昔C言語を学校で学んでいた際、C言語はインデントは揃えていた記憶がありません(これは私の勘違いかもしれませんが)
ご回答いただけますと幸いです、よろしくお願いします
発生している問題・エラーメッセージ
エラーメッセージ
該当のソースコード
python
1 2def validate(hand): 3 if hand < 0 or hand > 2: 4 return False 5 # ↓ここのreturnの位置のことです 6 return True 7 8def print_hand(hand, name='ゲスト'): 9 hands = ['グー', 'チョキ', 'パー'] 10 print(name + 'は' + hands[hand] + 'を出しました') 11 12print('じゃんけんをはじめます') 13player_name = input('名前を入力してください:') 14print('何を出しますか?(0: グー, 1: チョキ, 2: パー)') 15player_hand = int(input('数字で入力してください:')) 16 17if validate(player_hand): 18 if player_name == '': 19 print_hand(player_hand) 20 else: 21 print_hand(player_hand, player_name) 22else: 23 print('正しい数値を入力してください') 24 25
試したこと
return Trueの位置をいろいろ変えて実行しました
結果は上記にも記載の通り二行上のifに揃えたときのみ実行できました
補足情報(FW/ツールのバージョンなど)
コードはprogateと言うプログラミング学習サイトの[pythonコース]の[python3(レッスン3)]の[returnの性質]から引用しています
回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/01/17 12:15