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

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

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

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

Q&A

1回答

520閲覧

Pythonで途中の結果を記録する際、エラーが生じてしまう。

退会済みユーザー

退会済みユーザー

総合スコア0

Python

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

0グッド

0クリップ

投稿2023/02/20 10:37

実現したいこと

あっち向いてほいゲームを作成しています。コンピュータの出した0から3までの数字と、我々が入力する0から3までの数字が当たればあたり!とし、あたりがはずれより多ければ勝ち、少なければ負け、としています。
ここで、最後にあたりの総数、そしてはずれの総数を出すためにあたるごとにwin = win +1ではずれの時はlose = lose + 1にしているのですが、ここでエラーという表示になってしまいます。どこが間違っていますでしょうか?
指摘していただけると嬉しいです。

Python

1import random 2print("あっち向いてほいゲームをします!上,下,右,左はそれぞれ0, 1, 2, 3とします") 3s= "あたり!" 4k= "はずれ!" 5M = "あっち向いてほい!" 6N = int(input("何回やりたいか自分で決めてください")) 7win = 0 8lose = 0 9def lookthere_game(): 10 num = random.randint(0,3) 11 for i in range (N): 12 if i < N-1: 13 print("第",i + 1,"回戦目!") 14 ipt = int(input("上下左右どちらかなぁ,上は0,下は1,左は2,右は3です")) 15 else: 16 ipt = int(input("最後だ。上下左右どちらかなぁ,上は0,下は1,左は2,右は3です")) 17 if ipt == num: 18 print(M,s,"プレイヤーは",ipt,"を出し、コンピュータは",num,"を出しました!") 19 win = win + 1 20 if ipt != num: 21 print(M,k,"プレイヤーは",ipt,"を出し、コンピュータは",num,"を出しました!") 22 lose = lose + 1 23while(not lookthere_game()): 24 print("結果発表をします!あなたは",win,"回勝ち、コンピュータは",lose,"回勝ちました!") 25 if win > lose: 26 print("あなたの勝利数の方が多いため、あなたの勝ちです!") 27 if win == lose: 28 print("引き分けです。") 29 else: 30 print("コンピュータの勝利数の方が多いため、コンピュータの勝ちです!") 31 ipt = input("終了したい場合は0を入力,続けたい場合はその他を入力") 32 if ipt == "0": 33 break 34 35

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

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

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

meg_

2023/02/20 11:06

> ここでエラーという表示になってしまいます。 何のエラーですか?
TakaiY

2023/02/20 12:54

上の質問と同じですし、正しい回答ついていますが、 > ここでエラーという表示になってしまいます。 エラーになったときに表示される内容は問題を特定するために約に立つ情報満載です。 それをすべて貼っていただけると、アドバイスをする助けになります。 また、ご自分で内容をちゃんと調べてみれば、他人に聞くまでもなく解決できたかもしれません。
guest

回答1

0

lookthere_game関数内でwinloseに値をセットしたい場合は以下のようにglobalをつける必要があります。
参考:なぜ変数に値があるのに UnboundLocalError が出るのですか?

Python

1def lookthere_game(): 2 global win, lose 3 # 略

投稿2023/02/20 12:11

can110

総合スコア38228

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.53%

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

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

質問する

同じタグがついた質問を見る

Python

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