質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

1回答

542閲覧

python 戻り値

Yooooota

総合スコア10

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

1クリップ

投稿2018/11/22 05:28

前提・実現したいこと

python初心者で、progate python 学習コースⅡを学習しています。じゃんけんゲームを作ろうという段階なのですが、戻り値のところでつまづいています。この自分が書いたコードがどうしてダメなのか教えていただけないでしょうか。

発生している問題・エラーメッセージ

if文の条件式として、関数validateを呼び出してください。

自分が書いたコード↓↓↓ # 関数validateを定義してください def validate(hand): # handの値によって条件分岐してください if hand <0 or hand>2 : return False else : return True def print_hand(hand, name='ゲスト'): hands = ['グー', 'チョキ', 'パー'] print(name + 'は' + hands[hand] + 'を出しました') print('じゃんけんをはじめます') player_name = input('名前を入力してください:') print('何を出しますか?(0: グー, 1: チョキ, 2: パー)') player_hand = int(input('数字で入力してください:')) # 関数validateの戻り値がTrueの場合、以下のif~else文が実行されるようにしてください validate(player_hand) if return==True: if player_name == '': print_hand(player_hand) else: print_hand(player_hand, player_name) else : print("正しい数値を入力してください") # 関数validateの戻り値がFalseの場合「正しい数値を入力してください」と出力してください 答えとなっているコード ↓↓↓ # 関数validateを定義してください def validate(hand): # handの値によって条件分岐してください if hand < 0 or hand > 2: return False else: return True def print_hand(hand, name='ゲスト'): hands = ['グー', 'チョキ', 'パー'] print(name + 'は' + hands[hand] + 'を出しました') print('じゃんけんをはじめます') player_name = input('名前を入力してください:') print('何を出しますか?(0: グー, 1: チョキ, 2: パー)') player_hand = int(input('数字で入力してください:')) # 関数validateの戻り値がTrueの場合、以下のif~else文が実行されるようにしてください if validate(player_hand): if player_name == '': print_hand(player_hand) else: print_hand(player_hand, player_name) # 関数validateの戻り値がFalseの場合「正しい数値を入力してください」と出力してください else: print('正しい数値を入力してください') ```ここに言語名を入力 Python ### 試したこと ここに問題に対して試したことを記載してください。 ### 補足情報(FW/ツールのバージョンなど) ここにより詳細な情報を記載してください。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

otn

2018/11/22 05:43

「戻り値」とは何だと思っていますか?
guest

回答1

0

python

1validate(player_hand) 2 if return==True: 3 if player_name == '': 4 print_hand(player_hand) 5 else: 6 print_hand(player_hand, player_name) 7 else : 8 print("正しい数値を入力してください")

この辺りを見ると、なにかpythonの構文に関して勘違いしていると思われます。

  • なんでvalidate(player_hand)のあと字下げしているのでしょうか

「上のvalidate(player_hand)」がブロックを作っていると理解しているのなら間違いです。通常の関数呼び出しがブロックを作ることはありません。

  • return==Trueってなんですか

returnという変数に自動的に返り値が格納されたりはしません。気分的にわからなくはありませんが、間違っています。そもそもreturnは予約語なので、こう書くと構文エラーになります。

progateをやるのはまあ構いませんが、まずは基本的な文法を理解するところから始めてください。

投稿2018/11/22 05:55

編集2018/11/22 06:05
hayataka2049

総合スコア30933

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Yooooota

2018/11/22 18:50

回答ありがとうございます。 if validate(player_hand): if player_name == '': print_hand(player_hand) else: print_hand(player_hand, player_name) このコードの一行目、if validate (player_hand)がなぜ戻り値がtrue であることを示しているのでしょうか??
hayataka2049

2018/11/22 23:21

「戻り値がtrue であること」は示していません。 if文の(条件)式の部分に関数の呼び出しが書いてあるので、関数の呼び出しが評価され、返った値に応じて条件分岐します。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問