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

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

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

Deviseとは、Ruby-on-Railsの認証機能を追加するプラグインです。

Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

Ruby on Rails 6

Ruby on Rails 6は、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

受付中

if文で条件分岐させて、それに合う文字を出力したい

hurousyotoku500
hurousyotoku500

総合スコア0

Devise

Deviseとは、Ruby-on-Railsの認証機能を追加するプラグインです。

Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

Ruby on Rails 6

Ruby on Rails 6は、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

1回答

0評価

0クリップ

30閲覧

投稿2020/11/05 21:12

前提・実現したいこと

if文で条件分岐させて、それに合う文字を出力したい

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

Answer_button 関数でEntry_appとansのそれぞれの値を比べて条件どうりの処理がした

import tkinter as tk import tkinter.ttk as ttk from sympy import * import pandas as pd import numpy as np import random import matplotlib.pyplot as plt from sympy.matrices import common #シンボルを定義 x = Symbol("x") y = Symbol("y") z = Symbol("z") a = Symbol("a") b = Symbol("b") c = Symbol("c") #基礎問題生成 for i in range(10): Question_No = random.randint(1,3) Val_No_1 = random.randint(1,9) Val_No_2 = random.randint(1,9) Val_No_3 = random.randint(1,9) if Question_No == 1: if Val_No_1 == 1: Integ = x ans = integrate(Integ) out_Integ = "∮"+"x"+" "+"dx" else: Integ =Val_No_1*x ans = integrate(Integ) out_Integ ="∮"+str(Val_No_1)+"x"+" "+"dx" elif Question_No == 2: if Val_No_1 and Val_No_2 == 1: Integ = x**2+x ans = integrate(Integ) out_Integ = "∮"+"x**2"+"+"+"x"+" "+"dx" else: Integ = Val_No_1*x**2+Val_No_2*x ans = integrate(Integ) out_Integ = "∮"+str(Val_No_1)+"x**2"+"+"+str(Val_No_2)+"x"+" "+"dx" else: if Val_No_1 and Val_No_2 and Val_No_3 == 1: Integ = x**3+x**2+x ans = integrate(Integ) out_Integ = "∮"+"x**3"+"+"+"x**2"+"+"+"x"+"+"+" "+"dx" else: Integ = Val_No_1*x**3+Val_No_2*x**2+Val_No_3 ans = integrate(Integ) out_Integ = "∮"+str(Val_No_1)+"x**3"+"+"+str(Val_No_2)+"x**2"+"+"+str(Val_No_3)+"x"+" "+"dx" #ウィンドウ切り替え def change_window(frame_name): frame_name.tkraise() #フレームワーク作成 def frame_create(): Frame_name = ttk.Frame(root) Frame_name.grid(row=0,column=0,sticky="nsew",pady=20) return Frame_name #問題ページの作成 def create_question(frame_name,change_frame): label_1 = ttk.Label(frame_name,text="以下の問題を解いてください") label_2 = ttk.Label(frame_name,text="回答を表示します") label_app = ttk.Label(frame_name,text=out_Integ) Entry_app = ttk.Entry(frame_name,width=30) button_home = ttk.Button(frame_name,text="ホームに戻る",command=lambda:change_window(change_frame)) answer_button = ttk.Button(frame_name,text="回答",command=lambda:Answer_button(Entry_app,frame_name)) label_1.pack() label_2.place(x=350,y=350) label_app.pack() Entry_app.place(x=300,y=300) button_home.place(x=350,y=420) answer_button.place(x=350,y=520) #回答ボタン def Answer_button(Entry_name,frame_name): Entry_ans = Entry_name.get() print(Entry_ans) print(ans) if ans == Entry_ans: Label = ttk.Label(frame_name,text="正解") Label.place(x=359,y=650) else: Label = ttk.Label(frame_name,text="不正解") Label.place(x=350,y=650) #ラベル生成 def label_create(frame_name,text_name): label_name = ttk.Label(frame_name,text=text_name) return label_name #ボタン生成 def button_create(frame_name,text_name,button_name,change_window_name): button_frame = ttk.Button(frame_name,text=text_name,command=lambda:button_name(change_window_name)) return button_frame #ラベル配置 def label_placcement(label_name,x_coord,y_coord): label_name.place(x=x_coord,y=y_coord) #ボタン配置 def button_placcement(button_name,x_coord,y_coord): button_name.place(x=x_coord,y=y_coord) if __name__ == "__main__": root = tk.Tk() root.geometry("800x800") root.grid_rowconfigure(0,weight=1) root.grid_columnconfigure(0,weight=1) #フレーム作成 frame = frame_create() frame_app_1 = frame_create() frame_app_2 = frame_create() frame_app_3 = frame_create() frame_app_4 = frame_create() frame_app_5 = frame_create() frame_app_6 = frame_create() #ホームウィジェット作成 label_1 = label_create(frame,"あなたの成長する積分アプリ") label_2 = label_create(frame,"⚠️x**2はxの2乗x**3はxの3乗を表しています") label_3 = label_create(frame,"1:基本レベル") label_4 = label_create(frame,"2:定期テストレベル") label_5 = label_create(frame,"3:センター試験レベル") label_6 = label_create(frame,"4:難関私立レベル") label_6 = label_create(frame,"5:難関国公立レベル") label_7 = label_create(frame,"6:弱点レベル") #ラベル配置 label_placcement(label_1,290,50) label_placcement(label_2,290,150) label_placcement(label_3,330,250) label_placcement(label_4,330,350) label_placcement(label_5,330,450) label_placcement(label_6,330,550) label_placcement(label_7,330,650) #問題ページボタン作成 button_1 = button_create(frame,"問題へ",change_window,frame_app_1) button_2 = button_create(frame,"問題へ",change_window,frame_app_2) button_3 = button_create(frame,"問題へ",change_window,frame_app_3) button_4 = button_create(frame,"問題へ",change_window,frame_app_4) button_5 = button_create(frame,"問題へ",change_window,frame_app_5) button_6 = button_create(frame,"問題へ",change_window,frame_app_6) #ボタン配置 button_placcement(button_1,350,280) button_placcement(button_2,350,380) button_placcement(button_3,350,480) button_placcement(button_4,350,580) button_placcement(button_5,350,580) button_placcement(button_6,350,680) #問題作成 create_question(frame_app_1,frame) frame.tkraise() root.mainloop()

試したこと

print文で.getで取得した値と#基本問題作成のasnに入っている値を確認したところ、同じものが
入っているにも関わらず正しい処理がされない
どっちも"不正解"と表示されてしまいます

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

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

良い質問の評価を上げる

以下のような質問は評価を上げましょう

  • 質問内容が明確
  • 自分も答えを知りたい
  • 質問者以外のユーザにも役立つ

評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

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

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

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

teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

  • プログラミングに関係のない質問
  • やってほしいことだけを記載した丸投げの質問
  • 問題・課題が含まれていない質問
  • 意図的に内容が抹消された質問
  • 過去に投稿した質問と同じ内容の質問
  • 広告と受け取られるような投稿

評価を下げると、トップページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

まだ回答がついていません

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

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

ただいまの回答率
87.20%

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

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

質問する

関連した質問

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

Devise

Deviseとは、Ruby-on-Railsの認証機能を追加するプラグインです。

Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

Ruby on Rails 6

Ruby on Rails 6は、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。