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

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

新規登録して質問してみよう
ただいま回答率
85.48%
Windows 10

Windows 10は、マイクロソフト社がリリースしたOSです。Modern UIを標準画面にした8.1から、10では再びデスクトップ主体に戻され、UIも変更されています。PCやスマホ、タブレットなど様々なデバイスに幅広く対応していることが特徴です。

Python 3.x

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

Python

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

Q&A

解決済

2回答

1716閲覧

【python 3.9.0】七連if文が作動しない

noah._.

総合スコア23

Windows 10

Windows 10は、マイクロソフト社がリリースしたOSです。Modern UIを標準画面にした8.1から、10では再びデスクトップ主体に戻され、UIも変更されています。PCやスマホ、タブレットなど様々なデバイスに幅広く対応していることが特徴です。

Python 3.x

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

Python

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

0グッド

1クリップ

投稿2020/11/03 05:32

#問題内容

以下のオールランダムじゃんけんプログラムを作って
実行したところ、勝ちのメッセージ(print関数)が出ない。

##ソースコード

python

1# xgpt = gtp + pgtp 2 3print(" ---------------") 4print("< じゃんけんゲーム! >") 5print(" ---------------") 6print("") 7 8#1:グー 2:チョキ 3:パー 9 10import random 11 12 13 14 15#ここからwhileループ突入 16 17while 1 == 1: 18 gtpNumber = random.randint(1,3) 19 if gtpNumber == 1: 20 #グー 21 gtp = "グー" 22 elif gtpNumber == 2: 23 #チョキ 24 gtp = "チョキ" 25 else: 26 #パー 27 gtp = "パー" 28 preyergtp = input("あなたの手は? (グー チョキ パー)") 29 xgtp =" " + gtp + preyergtp 30 print("---------") 31 print("CPU:" + gtp) 32 print("YOU:" + preyergtp) 33 print("") 34 35 #勝ち負け処理 36 #負け処理&あいこ処理 37 if preyergtp == gtp: 38 print("あいこ!") 39 elif preyergtp == "パー": 40 if gtpNumber == 2: 41 print("負け!") 42 elif preyergtp == "グー": 43 if gtpNumber == 3: 44 print("負け!") 45 elif preyergtp == "チョキ": 46 if gtpNumber == 1: 47 print("負け!") 48 49 #こっから勝ち&エラー処理 50 51 elif preyergtp == "パー": 52 if gtpNumber == 1: 53 print("勝ち!") 54 elif preyergtp == "グー": 55 if gtpNumber == 2: 56 print("勝ち!") 57 elif preyergtp == "チョキ": 58 if gtpNumber == 3: 59 print("勝ち!") 60 else : 61 print("ERROR") 62 print("正しく回答してください。もし、何度もこのエラーが発生する場合、再度起動してください。") 63 print("") 64

###ほっ!ほっ!補足!

エラー等なし

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

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

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

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

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

meg_

2020/11/03 05:50

デバッグはされましたか?
noah._.

2020/11/03 05:57

具体的にどのようなデバッグですか?
meg_

2020/11/03 06:05

使用するツールにもよりますが、1行ずつ実行していって条件分岐の動きを確かめると良いと思います。
noah._.

2020/11/03 06:07

あ、それ僕ついてないやつですね。
guest

回答2

0

ベストアンサー

elifはそれ以前のifelifが偽の時だけ条件判断します。elseifなので。
別の言い方をすると、一回でもif/elifで真になれば、一連のif/elifは終了します。

Python

1 if preyergtp == gtp: 2 print("あいこ!") 3 elif preyergtp == "パー": 4 if gtpNumber == 2: 5 print("負け!") 6 elif preyergtp == "パー": 7 if gtpNumber == 1: 8 print("勝ち!")

preyergtp"パー"の時、最初のelifが真になるので、その次の2行が実行されるとそれでこの一連のif/elifは終わりです。

投稿2020/11/03 05:43

編集2020/11/03 05:45
otn

総合スコア84566

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

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

noah._.

2020/11/03 05:56 編集

ありがとうございます!勝ち処理、負け処理別々にしたらできました! え、何ここ煽るための場所なの? ん? "基本的な文法ぐらい覚えておこうよw" お前もな? 何ならてめぇ幼稚園からやり直せば?
otn

2020/11/03 05:59 編集

学習を始めたばかりであれば、if/elif/elseの意味が理解できていない状態というのも十分あり得ることです。文法の学習途上なら初心者マークのアイコンを付けておくと良かったかと思います。初心者に「基本文法も知らないのか?」的なコメントをする人はいないと思いますので。
noah._.

2020/11/03 06:04

ありがです!次から気を付けます!
guest

0

elif preyergtp == "パー":

.... elif preyergtp == "パー":

このうしろのパーは実行されることはありえません。
else とかelif がどういう意味なのかをちょっと考えてみましょう

投稿2020/11/03 05:41

編集2020/11/03 05:42
y_waiwai

総合スコア87776

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

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

noah._.

2020/11/11 09:21

や↑ったぜ
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問