🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Q&A

解決済

2回答

2074閲覧

pyhon 摂氏⇔華氏変換について

nobi0820

総合スコア9

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

0グッド

0クリップ

投稿2019/12/22 07:11

コード ```import tkinter window = tkinter.Tk() # model f = tkinter.StringVar() c = tkinter.StringVar() # controller def f2c(): c.set(5 / 9 * (int(f.get()) - 32)) # view frame = tkinter.Frame(window) frame.pack() label = tkinter.Label(frame, text='華氏表現の温度')### label.pack() entry = tkinter.Entry(frame, textvariable=f) entry.pack() label = tkinter.Label(frame, textvariable=c) label.pack() button = tkinter.Button(frame, text='変換', command=f2c) button.pack() button = tkinter.Button(frame, text='終了', command=lambda:window.destroy()) button.pack() window.mainloop() このように、華氏表現の温度を入力すれば摂氏温度が出力されるというコードは書くことができたのですが、最初に摂氏か華氏かを選ぶことができて、かつ、摂氏表現を入力すれば華氏表現が出力され、華氏表現を入力すれば摂氏表現が出力されるためにはどのようにすればよいでしょうか?

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

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

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

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

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

y_waiwai

2019/12/22 08:20

このままではコードが読めないので、質問を編集し、<code>ボタンを押し、出てくる’’’の枠の中にコードを貼り付けてください
guest

回答2

0

おはようございます。

問題文読ませていただきました。

こんな感じでいかがでしょうか?

python

1import tkinter as tk 2 3 4class Application(tk.Frame): 5 # 華氏温度入力用変数 6 f = None 7 # 摂氏温度入力用変数 8 c = None 9 10 # 華氏温度から摂氏温度へ変換する関数 11 def f2c(self): 12 self.c.set(5 / 9 * (float(self.f.get()) - 32)) 13 14 # 摂氏温度から華氏温度へ変換する関数 15 def c2f(self): 16 self.f.set(float(self.c.get()) * 9 / 5 + 32) 17 18 def __init__(self, master=None): 19 # Windowの初期設定を行う。 20 super().__init__(master) 21 22 # Windowの画面サイズを設定する。 23 # geometryについて : https://kuroro.blog/python/rozH3S2CYE0a0nB3s2QL/ 24 self.master.geometry("300x200") 25 26 ############################################## frame Widget START ############################################## 27 28 # Windowを親要素として、frame Widget(Frame)を作成する。 29 # frameについて : https://kuroro.blog/python/P20XOidA5nh583fYRvxf/ 30 frame = tk.Frame(self.master) 31 32 # Windowを親要素とした場合に、frame Widgetをどのように配置するのか? 33 # packについて : https://kuroro.blog/python/UuvLfIBIEaw98BzBZ3FJ/ 34 frame.pack() 35 36 ############################################## frame Widget END ############################################## 37 38 # self.fをstring型の変数と初期化する。 39 # StringVarについて : https://kuroro.blog/python/K53voPjJuKFfYrjmP8FP/ 40 self.f = tk.StringVar() 41 # self.cをstring型の変数と初期化する。 42 # StringVarについて : https://kuroro.blog/python/K53voPjJuKFfYrjmP8FP/ 43 self.c = tk.StringVar() 44 45 # frame Widget(Frame)を親要素として、label Widgetを作成する。 46 # text : テキスト情報 47 # Labelについて : https://kuroro.blog/python/Pj4Z7JBNRvcHZvtFqiKD/ 48 label = tk.Label(frame, text='摂氏温度') 49 # frame Widget(Frame)を親要素とした場合に、label Widgetをどのように配置するのか? 50 # gridについて : https://kuroro.blog/python/JoaowDiUdLAOj3cSBxiX/ 51 label.grid(row=0, column=0, padx=10, pady=10) 52 53 # frame Widget(Frame)を親要素として、entry Widgetを作成する。 54 # textvariable : entry Widget内に格納される値をself.cとする。 55 # Entryについて : https://kuroro.blog/python/PUZp77YFxrXvMCjpZbUg/ 56 entry = tk.Entry(frame, textvariable=self.c) 57 # frame Widget(Frame)を親要素とした場合に、entry Widgetをどのように配置するのか? 58 # gridについて : https://kuroro.blog/python/JoaowDiUdLAOj3cSBxiX/ 59 entry.grid(row=0, column=1, padx=10, pady=10) 60 61 # frame Widget(Frame)を親要素として、button Widgetを作成する。 62 # text : テキスト情報 63 # command : ボタンがクリックされた場合に実行する関数を指定する。self.f2cとする。 64 # Buttonについて : https://kuroro.blog/python/oFju6EngDtcYtIiMIDf1/ 65 button = tk.Button(frame, text='華氏温度を摂氏温度に変換', command=self.f2c) 66 # frame Widget(Frame)を親要素とした場合に、button Widgetをどのように配置するのか? 67 # gridについて : https://kuroro.blog/python/JoaowDiUdLAOj3cSBxiX/ 68 button.grid(row=0, column=2, padx=10, pady=10) 69 70 # frame Widget(Frame)を親要素として、label Widgetを作成する。 71 # text : テキスト情報 72 # Labelについて : https://kuroro.blog/python/Pj4Z7JBNRvcHZvtFqiKD/ 73 label = tk.Label(frame, text='華氏温度') 74 # frame Widget(Frame)を親要素とした場合に、label Widgetをどのように配置するのか? 75 # gridについて : https://kuroro.blog/python/JoaowDiUdLAOj3cSBxiX/ 76 label.grid(row=1, column=0, padx=10, pady=10) 77 78 # frame Widget(Frame)を親要素として、entry Widgetを作成する。 79 # textvariable : entry Widget内に格納される値をself.fとする。 80 # Entryについて : https://kuroro.blog/python/PUZp77YFxrXvMCjpZbUg/ 81 entry = tk.Entry(frame, textvariable=self.f) 82 # frame Widget(Frame)を親要素とした場合に、entry Widgetをどのように配置するのか? 83 # gridについて : https://kuroro.blog/python/JoaowDiUdLAOj3cSBxiX/ 84 entry.grid(row=1, column=1, padx=10, pady=10) 85 86 # frame Widget(Frame)を親要素として、button Widgetを作成する。 87 # text : テキスト情報 88 # command : ボタンがクリックされた場合に実行する関数を指定する。self.c2fとする。 89 # Buttonについて : https://kuroro.blog/python/oFju6EngDtcYtIiMIDf1/ 90 button = tk.Button(frame, text='摂氏温度を華氏温度に変換', command=self.c2f) 91 # frame Widget(Frame)を親要素とした場合に、button Widgetをどのように配置するのか? 92 # gridについて : https://kuroro.blog/python/JoaowDiUdLAOj3cSBxiX/ 93 button.grid(row=1, column=2, padx=10, pady=10) 94 95# Tkinter初学者参考 : https://docs.python.org/ja/3/library/tkinter.html#a-simple-hello-world-program 96if __name__ == "__main__": 97 root = tk.Tk() 98 app = Application(master=root) 99 # Windowをループさせて、継続的にWindow表示させる。 100 # mainloopについて : https://kuroro.blog/python/DmJdUb50oAhmBteRa4fi/ 101 app.mainloop()

ご確認のほど、よろしくお願いいたします。????‍♂️

投稿2021/06/09 21:46

退会済みユーザー

退会済みユーザー

総合スコア0

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

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

0

ベストアンサー

分ければ簡単です。

python

1import tkinter 2 3window = tkinter.Tk() 4 5f = tkinter.StringVar() 6c = tkinter.StringVar() 7 8def f2c(): 9 c.set(5 / 9 * (float(f.get()) - 32)) 10 11def c2f(): 12 f.set(float(c.get()) * 9 / 5 + 32) 13 14frame = tkinter.Frame(window) 15frame.pack() 16label = tkinter.Label(frame, text='華氏温度') 17label.grid(row=0, column=0, padx=5, pady=5) 18entry = tkinter.Entry(frame, textvariable=f) 19entry.grid(row=0, column=1, padx=5, pady=5) 20button = tkinter.Button(frame, text='華氏温度を摂氏温度に変換', command=f2c) 21button.grid(row=0, column=2, padx=5, pady=5) 22label = tkinter.Label(frame, text='摂氏温度') 23label.grid(row=1, column=0, padx=5, pady=5) 24entry = tkinter.Entry(frame, textvariable=c) 25entry.grid(row=1, column=1, padx=5, pady=5) 26button = tkinter.Button(frame, text='摂氏温度を華氏温度に変換', command=c2f) 27button.grid(row=1, column=2, padx=5, pady=5) 28button = tkinter.Button(frame, text='終了', command=lambda:window.destroy()) 29button.grid(row=2, column=0, columnspan=3) 30 31window.mainloop()

投稿2019/12/22 09:01

編集2019/12/22 09:03
shiracamus

総合スコア5406

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

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

nobi0820

2019/12/22 09:31

組み合わせればよかったのですね 正しく出力されました。ご回答ありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.36%

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

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

質問する

関連した質問