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

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

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

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

Q&A

解決済

1回答

687閲覧

AttributeErrorの対処法

Ritsuki

総合スコア3

Python

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

0グッド

0クリップ

投稿2021/08/23 04:34

前提・実現したいこと

tkinterを利用してクイズを作りたいです。

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

ボタンを押したときに答えがあっているか確認したいですが、入力内容をうまく取得できずにエラーが起こってしまいます。
このエラーをけすためにはどうしたらよいですか?

エラーメッセージ answer = entry.get() AttributeError: 'int' object has no attribute 'get'

該当のソースコード

python

1import tkinter 2from tkinter import messagebox 3from tkinter import font 4 5 6entry = 0 7root1 = 0 8answer = 0 9 10answers = 0 11 12 13def cms():#スタートメッセージを閉じる関数。 14 roots.destroy() 15 shutudai() 16 17 18def shutudai(): 19 count = 0 20 21 with open("question.txt", "r", encoding = "utf-8") as f: 22 for questions in f: 23 question = questions.split("|") 24 quiz = question[0] 25 answers = question[1] 26 count += 1 27 root1 = tkinter.Tk() 28 root1.title('') 29 root1.state('zoomed') 30 label = tkinter.Label(text="第" + str(count) + "問", font=('ゴシック', 20)) 31 label.pack() 32 label = tkinter.Label(text=quiz, font=('ゴシック', 20)) #text = "問題文" 33 label.pack() 34 label = tkinter.Label(text='↓ここに解答を入力', font=('ゴシック', 20)) 35 label.pack() 36 entry = tkinter.Entry(width=20, font=('ゴシック', 20)) 37 entry.pack() 38 button = tkinter.Button(text='解答する', font=('ゴシック', 20), command=cm, width=10) 39 button.pack() 40 root1.mainloop() 41 42def cm():#正解か判断して分岐させる関数。 43 answer = entry.get() 44 45 if answer == answers: 46 root1.destroy() 47 else: 48 messagebox.showerror('', '残念、不正解です。')#間違えたらエラーメッセージ 49 50 51def cmg():#ゴールメッセージを閉じる関数。 52 rootg.destroy() 53 54roots = tkinter.Tk()#スタート画面 55roots.title('')#タイトルは無し。 56roots.state('zoomed') 57label = tkinter.Label(text='', font=('ゴシック', 50)) 58label.pack() 59button1 = tkinter.Button(text='クイズを作る', font=('ゴシック', 20), command=cms, width=15).place(x = 850, y = 100) 60button2 = tkinter.Button(text="クイズを解く", font=("ゴシック", 20), command=cms, width=15).place(x = 850, y = 160) 61roots.mainloop() 62 63 64rootg = tkinter.Tk()#ゴール画面 65rootg.title('') 66rootg.state('zoomed') 67label = tkinter.Label(text=' \n\n全問正解おめでとう!!\n ', font=('ゴシック', 50)) 68label.pack() 69button = tkinter.Button(text='終了', font=('ゴシック', 20), command=cmg, width=10) 70button.pack() 71roots.mainloop()

試したこと

answer = entory.get()を
answer = str(entory.get())にしてみましたが、変化はありませんでした。

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

ここにより詳細な情報を記載してください。

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

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

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

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

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

guest

回答1

0

ベストアンサー

entry はグローバル変数ですが、関数 shutudai() での entry はローカル変数ですね。関数 shutudai()に globl entry を追加してください。

投稿2021/08/23 04:43

ikapy

総合スコア1167

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

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

Ritsuki

2021/08/23 04:59

できました!本当にありがとうございます!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.46%

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

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

質問する

関連した質問