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

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

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

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Q&A

解決済

2回答

1431閲覧

returnの使い方が分かりません。

GuMasi

総合スコア73

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

0グッド

3クリップ

投稿2019/10/26 11:01

関数内でreturnが記述されてると思うのですが、その意味を教えていただけたら助かります。

python3

1def validate (hand): 2 3 if hand<0 or hand>2: 4 return False 5 else: 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 17 18if validate(player_hand): 19 if player_name == '': 20 print_hand(player_hand) 21 else: 22     print_hand(player_hand, player_name) 23else: 24 print('正しい数値を入力してください')

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

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

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

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

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

guest

回答2

0

ベストアンサー

if validate(player_hand):
のところで、関数validateを呼び出しています。
関数の中でreturnされた値を返り値と呼びます。その関数が実行されたとき、その返り値がその関数から出力されます。
例えば、
a=validate(OO)と書けば、aの値は、TrueかFalseです。

if validate(player_hand):では、
もしvalidateの返り値(return)がTrueならif文の中身が実行されます。

returnは関数の中で出した値、求めた値を関数の外で使う為に使います。
返り値とは

何を使って学習しているのかわかりませんが、学習書、学習サイトが質問者様のレベルにあっていない危険性があります。
基礎は何かでちゃんと固めてた方が良いかもしれません。

投稿2019/10/26 12:20

aoies

総合スコア331

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

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

GuMasi

2019/10/27 05:11

回答していだだきありがとうございます。 returnされると、def validateに戻るいう理解で大丈夫でしょうか。また、関数validateを呼び出すと if hand~return Trueまでの処理を再利用できるということでよろしいでしょうか。 学習サイトはドットインストールやprogataや、学習書はやさしいpythonとかで勉強してます。 もしよろしければおすすめの学習サイトまたは学習書があれば教えてくださると助かります。
aoies

2019/10/27 13:09 編集

関数について 関数は、一つの動作を繰り返し書く時などに、その動作をまとめておいて、いつでも使えるようにしておくために書きます。 例えば、(X座標、Y座標)が、(x,y)であるような点の原点からの距離を求めたければ、 d=(x^2+y^2)^(1/2) と書けば、このdが原点からの距離になります。 でも、この処理を何度も、異なる点について行いたければ、毎回この式を書くのは面倒だし、その他もろもろの欠点が出てきます(詳しくは割愛)。 なので、このように一つの処理を繰り返し書く場合、関数が使われます。 ざっくり言えば、関数を一度書いておけば、関数の名前を呼び出すだけで、関数の処理を全部おこなってくれるようになります。 def test_print():  print(”printのテストです。”) と一度書いておけば、 test_print() と書くだけで、上記のprintの処理をその度行ってくれます。 とここまでは、もう何かで勉強していると思います。しかし引数、戻り値(return)の概念がさっきの例の点の原点からの距離を求める関数を作るためには必要です。 重要なことは「関数の中の変数は、関数の外では使えないし、関数の外の変数は関数の中では基本的に使えない」ということです。 例えば、 —————— def distance(x,y):  d=(x^2+y^2)^(1/2) distance(3,4) print(d) ——————— なんてプログラムを書いても、キョリの値はprintはされてくれません。なぜなら、関数distance内で計算されたdの値を関数の外で呼び出すことはできないからです。 なので、関数の中で計算した値を使うために、戻り値(return)を使って例えば以下のように書けます。 —————— def distance(x,y):  d=(x^2+y^2)^(1/2) return d result=distance(3,4) print(result) ——————— ここで、resultには関数distanceのreturnしたdが代入されます。(result=関数の中のd) とにかくreturn(戻り値)というのはどの言語でも共通のプログラミングの非常に基本的な要素なので、それが学習書、サイトで学べていないというのは問題があると思います。 ただ残念ながら私はpythonでプログラミングの学習を始めたわけではないので、完全な初学者にどんな入門書が良いかは、わかりません。
もし、使われている本がプログラミングの初心者向けではないと感じているなら、”プログラミング入門者向け”と明記された本を購入した方が良いかもしれません。 それか単純に内容をよく読んでいないだけな可能性も高いので、各資料の「関数」の項目を吟味してみてはどうでしょう。
GuMasi

2019/10/28 12:59

わかりやすく教えてくださりありがとうございます。 aoiesさんにご指摘していただいた通り、今までreturnについて学べていなかったのですが、aoiesさんに教えていただきましたらだいぶ理解することができました。 また、本はプログラミング入門者向けの本を購入し学習してみようと思います。
guest

0

returnは関数の返り値を表します。
pythonでreturn

投稿2019/10/26 11:11

gnbrganchan

総合スコア438

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

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

GuMasi

2019/10/27 04:49

ありがとうございます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問