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

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

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

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

Q&A

解決済

3回答

1343閲覧

偶数ならば2分に1にした値を返し、奇数ならばそのまま返す関数を定義したい

GuMasi

総合スコア73

Python 3.x

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

1グッド

1クリップ

投稿2020/01/12 10:36

編集2020/01/15 06:51

1つの数を受け取って偶数ならば2分の1にした値を返し、奇数ならばそのまま返す関数を定義したくもろもろ試みたのですが、上手くいかず... 仮に下記のようなコードがありました場合どのようにすれば可能でしょうか?
ご教示いただけますと助かります。

試したこと:

python3

1def Even number(Odd number): 2 if Odd number % 2 ==0: 3 Even number = Odd number 4 elif n==0: 5 6 7print(Even number(7)) 8print(Even number(10)) 9print(Even number(2020)) 10print(Even number(9999)) 11

上記のコードを実行し下記にこのようなエラー

python3

1 2lw:python-izm wl$ python3 list.py 3 File "list.py", line 621 4 def Even number(Odd number): 5 ^ 6SyntaxError: invalid character in identifier 7lw:python-izm wl$ 8

その他。

下記はサイト等の練習問題。

python3

1 2def Even number(Odd number): 3 4 5print(Even number(7)) 6print(Even number(10)) 7print(Even number(2020) 8print(Even number(9999))
magichan👍を押しています

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

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

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

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

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

otn

2020/01/12 11:10

何を試みて、どう上手くいかないのか不明です。
GuMasi

2020/01/13 07:57

otnさんコメントいただきましてありがとうございます。 関数の中に変数の記述が必要なのかやelif等で試みたのですがエラーが解決できず今回質問させていただきました。
otn

2020/01/13 09:29

> 関数の中に変数の記述が必要なのかやelif等で試みたのですが> エラーが解決できず 試みた記述内容も、エラー内容も不明です。
GuMasi

2020/01/14 09:20

>試みた記述内容も、エラー内容も不明です。 >>申し訳ありません。 質問欄に試みた記述内容やエラー等を追記させていただきました。
otn

2020/01/14 09:36

コードとエラー内容が合ってません。 そもそも、これPythonプログラムというのは間違いないですか? Pythonだとすると、書籍に Even_number と書いてあったのを、下線に気付かず空白だと思い込んだとか? あと、括弧が全角になっています。 あと、ずぼらをせずに、エラーは画像貼り付けじゃなくて、コピペしましょう。
GuMasi

2020/01/15 06:55

コードとエラー内容が合ってません。 申し訳ありません修正させていただきました。 > そもそも、これPythonプログラムというのは間違いないですか? >>はい。 > Pythonだとすると、書籍に Even_number と書いてあったのを、下線に気付かず空白だと思い込んだとか? >>そのようなことはなかったかと思うのですが...
hayataka2049

2020/01/15 06:57

そもそも出典はどこなのでしょうか。
GuMasi

2020/01/15 07:40

hayataka2049さんコメントいただきましてありがとうございます。 >そもそも出典はどこなのでしょうか。 >>申し訳ありません。 ちょっと事情により申し上げることが難しいです。
guest

回答3

0

ベストアンサー

e.py

python3

1def even_num(num): 2 if num % 2 == 0: 3 return num // 2 4 return num 5 6TEST_NUMS = [1, 10, 2020, 9999] 7for n in TEST_NUMS: 8 print("{}\t{}".format(n, even_num(n)))

実行例
イメージ説明

投稿2020/01/12 22:52

katoy

総合スコア22324

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

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

GuMasi

2020/01/13 07:43

回答してくださりありがとうございます。 もしお願いできましたらソースコードを人語で表現しますとどのようになりますか今後の学習にさせていただければと思い教えていただけますと助かります。
katoy

2020/01/13 10:33

2 で割った余りが 0 なら (偶数なら) 2 で割った値を return する。 そうでなければ (奇数なら) そのままを return する。 備考:  n // 2 と n / 2 は計算結果はこと異なります。  ( 3 // 2 は 1, 3 / 2 は 1.5 となります。)
GuMasi

2020/01/14 08:50

ありがとうございます。 return等について理解することができました。 あの~print(のなかにformatが記述されてあるかと思うのですが、 formatはどのような用途のときに使用されることが多いのでしょうか?
GuMasi

2020/01/15 06:39

ありがとうございます。 助かりました。
guest

0

テストしてませんが分かりやすく書くとこんな感じになると思います。

def EvenNumber(number): if number % 2 == 0: return number / 2 else: return number print(Even number(7)) print(Even number(10)) print(Even number((2020)) print(Even number(9999))

投稿2020/01/12 10:59

kota_yamashita

総合スコア356

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

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

GuMasi

2020/01/13 07:32

回答していただきましてありがとうございます。 上記のコードは文字で表すとどのような感じの意味になりますのでしょうか?
kota_yamashita

2020/01/13 07:51

numberの偶数奇数かをEvenNumber関数でチェックして値を返します。 '%' は余りを産出する演算子なので、`number % 2`の答えが`0`の時に偶数ということになります。 そして偶数の時にnumberを2で割った値を返しています。 奇数の時はそのままnumberを返しています。
GuMasi

2020/01/13 08:13

>numberの偶数奇数かをEvenNumber関数でチェックして値を返します。 '%' は余りを産出する演算子なので、`number % 2`の答えが`0`の時に偶数ということになります。 >>そうなのですね。 ご丁寧にご教示くださりありがとうございます。 あの~returnについては戻り値を返すと認識しているのですがその戻り値は他で再利用することも可能ということで合ってますでしょうか?
kota_yamashita

2020/01/13 08:42

はい、合ってます。 下記のように戻り値を`modorichi`に格納して、2倍した結果を表示したりできます。 ``` def EvenNumber(number): if number % 2 == 0: return number / 2 else: return number modorichi = EvenNumber(7) print(modorichi * 2) ```
GuMasi

2020/01/14 08:34

>はい、合ってます。 >>returnを使用した例まで示していただきましてありがとうございます。
guest

0

def Even number(Odd number):
^
SyntaxError: invalid character in identifier

は、括弧が全角のためです。
これを直しても、メソッド名がおかしいので、別のエラーになります。

そもそも、ゼロからやり直したほうがいいと思います。

投稿2020/01/15 17:35

otn

総合スコア84555

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

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

GuMasi

2020/01/16 10:13

回答していただきましてありがとうございます。 >これを直しても、メソッド名がおかしいので、別のエラーになります。 そもそも、ゼロからやり直したほうがいいと思います。 >>そうですね、親身になってもろもろご指摘くださりましてありがとうございます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問