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

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

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

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

Q&A

解決済

1回答

1713閲覧

txtファイルを読み込んだ時の if 文の判定

Ritsuki

総合スコア3

Python

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

0グッド

0クリップ

投稿2021/08/25 11:03

前提・実現したいこと

pythonを利用して、.txtファイルから問題を読みこみクイズを作りたいです。

発生している問題

.txtファイルから読み込んだ時、print関数で表示してみても同じなのに、if文ですると、Trueになりません。

該当のソースコード

python

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

txt

1問題|答え 2もんだい|こたえ

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

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

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

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

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

guest

回答1

0

ベストアンサー

answers = question[1].replace("\n", " ")だと最後に空白文字が入っていませんか?
print('['+answers+']')で確認してみてください。

投稿2021/08/25 11:32

can110

総合スコア38278

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.46%

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

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

質問する

関連した質問