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

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

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

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

Q&A

解決済

1回答

279閲覧

Pythonで間違った答えが出力されてしまいます!助けてくださいお願いします!

eno702

総合スコア3

Python

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

0グッド

1クリップ

投稿2020/09/13 09:53

前提・実現したいこと

#2問目 と #3問目 が 「不正解」を出してくれない

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

2問目と3問目においてifで条件に当てはまらないのにifの方へ行ってしまいます。

該当のソースコード

Python

1import random 2 3 4print("Enterでスタート") 5e = 0 6e = input() 7i = 30 8OK = 0 9s = 3#問題数 10A=0 11x=0 12 13while(i >= 0): 14 ran = int(random.randint(1,s)) 15 16#1問目 17 if ran == 1: 18 print("彼は決して誘惑に乗らなかった。") 19 print("He never () way to temptation.") 20 print("1.found 2.gave 3.made 4.took") 21 A = 2 22 x = int(input("番号入力:")) 23 if x == A: 24 print("正解") 25 OK = OK + 1 26 else: 27 print("不正解") 28 print("2.gave:He never (gave) way to temptation.") 29 print("give way to ~ 「~に道を譲る/~に屈する」\n") 30 31#2問目 32 elif ran == 2: 33 print("They will never (give in to) unfair pressure.\n①yield to ②respect to ③desagree to ④speak to") 34 A == 1 35 x == int(input("番号入力:")) 36 if x == A: 37 print("正解") 38 OK = OK +1 39 else: 40 print("不正解") 41 print("彼らは不当な圧力には決して屈しないだろう\ngive in to ~ 「~に負ける/~に屈する\n") 42 43#3問目 44 elif ran == 3: 45 print("Please (keep an eye on) my luggage for a while.\n①look ②play ③scold ④watch") 46 A == 4 47 x == int(input("番号入力:")) 48 if x == A: 49 print("正解") 50 OK = OK + 1 51 else: 52 print("不正解") 53 print("keep an [one's] eye on ~ 「~から目を離さないでいる」(=watch)\n") 54 55 56 57 i = i-1 58 59else: 60 print("終了") 61 print("スコア="+OK)

試したこと

なぜか1問目ではちゃんと仕訳けてくれています。
改行が原因とも思ったのですが、そうでもないみたいで、謎が深まってしまいました。

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

Visual Stdio code と GOOGLEを使用しています。

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

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

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

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

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

hentaiman

2020/09/13 10:10

ちゃんと見りゃ即分かるミスがあるが、前回の質問も併せて考えるとデバッグの仕方が分からないというところでしょうか? 最も初歩的なデバッグの仕方でも回答しましょうか?
meg_

2020/09/13 10:20

課題でしょうか?
guest

回答1

0

ベストアンサー

原因は、2問目以降の変数Aへの代入方法が間違えているからです。
変数への代入はA = 1と、イコールの数は1つです。
==とイコールが2つ連続する場合には等号演算子いうものになってしまいます。

従って、全てのA == となっている部分を=のみに修正すれば正常に動作するでしょう。

投稿2020/09/13 10:14

nto

総合スコア1438

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

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

eno702

2020/09/13 12:47

ありがとうございます! 変数のイコールの数と x == int(input("番号入力:)) を = 一つにしたら治りました。 本当にありがとうございました!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.46%

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

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

質問する

関連した質問