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

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

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

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

Q&A

解決済

2回答

748閲覧

Pythonでの関数・引数について質問です。

abzzz

総合スコア1

Python 3.x

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

0グッド

0クリップ

投稿2021/05/19 00:31

前提・実現したいこと

Pythonでの関数・引数について質問です。

name=["ねずみ","うし","とら","うさぎ"]
として、引数で入力された動物名が存在するか
確認して結果をprint文で表示させたいのですが、上手くいきません。

例)引数が「ねずみ」→nmaeにねずみが存在する→ねずみは含まれますと表示

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

def test(ねずみ):以降、書き方がわからない状況です。

該当のソースコード

name=["ねずみ","うし","とら","うさぎ"] def test(ねずみ):

補足情報(FW/ツールのバージョンなど)

大変申し訳ございません。
ご教授お願いします。

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

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

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

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

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

abzzz

2021/05/19 00:40

おいそがしいところ ご回答ありがとうございます。
guest

回答2

0

ベストアンサー

まず、どんなプログラムが必要か考えましょう。

関数とそれを呼び出したり結果を受け取って処理する本体が必要という事は分かっているんですよね?

では、まず関数です。
必要な機能は

  • 動物名リストを定義(下にリストの定義場所について説明あり)
  • 受け取った引数の動物が存在するかどうかチェックする機能
  • チェックした結果を戻す機能

関数が戻す値は、存在するかどうかですので、True(真),False(偽)つまりBool型で返します。

次に、本体部分です。
必要な機能は

  • 関数にチェックしたい動物名を渡す機能
  • 関数からの返答を受け取る機能
  • 受け取った値(戻り値)を元に表示する機能

関数に動物名を渡す時の指定方法については、値(動物名)を直接渡すか変数を渡すかになりますが、値を直接渡すと値を変更する際に融通が利かなくなるので通常は変数で渡します。
要は違う動物をチェックしようとした時にプログラムを書き換える事にるからでです。
今回の例では分かりにくいですが、そのうち分かりますので関数に渡す値は「極力」変数にすると覚えておけばいいです。
もちろん、例外も当然あります。

あと、考慮すべきは、チェックされる動物名のリストが必要ですが、これをどこで定義するか?です。
グローバル変数にする、関数内のローカル変数にするなどがありますが・・・
本来グローバル変数にするのが妥当かもしれないリストですが、理解度のレベルから推測すると下手にグローバル変数を使うと、以降何でもグローバル変数にする癖が付きそうなので、関数内のローカル変数がいいのかな?と思います。

ここまで分かればプログラムはほぼ自動的に以下のように決まります。

python

1# 関数部分 2def test(動物名): 3 name = ["ねずみ","うし","とら","うさぎ"] 4 # 判定プログラムを書いて、判定結果に応じてTrueかFalseを返す 5 6# 本体部分 7チェックしたい動物 = "ねずみ" 8判定結果 = test(チェックしたい動物) # 関数呼び出し 9# 判定結果に応じて整形した結果文を出力する

補足
0. 便宜上、日本語変数名を使っていますがあまり使わない方がいいです。
0. 関数名・変数名を質問の内容に合わせていますがあまりよくないです。
testという関数名はそれだけでは何を意味するかわかりませんし、nameというリスト名は何の名前か分からないのと、リストであれば複数形にしないとコードを読む時に混乱の原因になります。

投稿2021/05/19 05:20

udon-ken

総合スコア657

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

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

0

python

1names = ["ねずみ","うし","とら","うさぎ"] 2a = "ねずみ" 3if a in names: 4 print(a + "は含まれます") 5else: 6 print(a + "は含まれません")

投稿2021/05/19 00:40

takasima20

総合スコア7460

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

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

y_waiwai

2021/05/19 00:44

この通りに回答してるやつが居たら、そいつが、、
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.46%

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

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

質問する

関連した質問