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

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

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

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

Q&A

0回答

539閲覧

電卓アプリ作成時に四則演算記号が表示されない

kurinoi

総合スコア1

Python

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

0グッド

0クリップ

投稿2021/11/25 07:32

前提・実現したいこと

 プログラミング演習として単純な電卓アプリを作成しようとしているのですが、ボタンが表示されない不具合が発生してしまっています。問題が起きた箇所を抜粋したプログラムを作ったので、そちらについて何が問題であるかをご教授頂けると幸いです。(演習目的ですので、想定外の挙動が起きる理由を把握した上で問題を回避したいです。)

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

ウインドウにボタンが表示されません。(これはエラーメッセージではないです)

該当のソースコード

python3

1 2import tkinter as tk 3from tkinter import ttk 4#メインウインドウ 5root=tk.Tk() 6#四則演算ボタンを生成 7plus=tk.Button(root,text="+") 8minus=tk.Button(root,text="-") 9times=tk.Button(root,text="×") 10divide=tk.Button(root,text="÷") 11#四則演算ボタンを貼り付け 12plus.grid(column=0,row=0) 13minus.grid(column=1,row=0) 14times.grid(column=0,row=1) 15divide.grid(column=1,row=1) 16#メインループ 17root.mainloop()

試したこと

以下、実験を行う度に元のソースコードに戻しています。
①:"÷"を"a"、"あ"、"あ3a"、"3あ%"などに変更する
結果:想定通り、左上に+、右上に-、左下に×、右下に変更した文字が表示される
②:'minus=tk.Button(root,text="-")'及び'minus.grid(column=1,row=0)'を削除する
結果:ウインドウにボタンが表示されない
③:'divide=tk.Button(root,text="÷")'及び'divide.grid(column=1,row=1)'を削除する
結果:想定通り、左上に+、右上に-、左下に×が表示される
④:'times=tk.Button(root,text="×")'及び'times.grid(column=0,row=1)'を削除する
結果:想定通り、左上に+、右上に-、右下に÷が表示される
⑤:"÷"を"→"、"×"などに変更する
結果:どちらの場合も、ウインドウにボタンが表示されない
⑥:'divide.grid(column=1,row=1)'の中の'column=1,row=1'を'column=2,row=2'に変更する
結果:ウインドウにボタンが表示されない

これらの実験から、×、÷、→等の特殊記号を2つ以上使った場合に問題が発生していそうなのですが、pythonの仕様に照らし合わせて最初のソースコードの問題点を理解するには至っていません。「tkinter ボタン 特殊文字」「tkinter 特殊文字」等でgoogle検索してみましたが、有用な情報には至りませんでした。

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

python3.10.0 64-bitをWindows10で使用しております。

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

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

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

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

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

TakaiY

2021/11/25 07:56

該当のソースコードにあるコードをこちらで実行すると、2行2列にならんだ 4つのボタンが表示されますが、それが表示されないということでしょうか?
jbpb0

2021/11/26 01:42 編集

> 2行2列にならんだ 4つのボタンが表示されます 当方のMacのPython 3.7でも大丈夫でした
kurinoi

2021/11/25 12:02

TakaiYさん、その認識であってます。他の環境で試してみると上手く行くのですね。
TakaiY

2021/11/25 15:01

フォントを変えてみたり、ボタンのサイズを変えてみたり、マージンやpaddingを変えてみるなど、ボタンの中に入れるもののサイズが関係しているような。
HRCo4

2021/11/26 01:49 編集

windows10 64bitを使用。 pyenv+python(コンソール)を使用して、python 3.8.10, 3.10.0a1, 3.10.0b1, 3.10.0b3 で試してみましたが、どれも4つのボタン(+-×÷)が表示されました。 "python"や"ipython"などコンソールから試した場合はどうなりますか? ~.py としてファイルを読み込ませている場合、文字コードが影響している可能性もあります。 【追記】 ipythonで上のコードをそのままコピペすると”×”と"÷"はコピペされずに貼り付けられるので、入力し直せば表示されます。
jbpb0

2021/11/26 02:05 編集

>> 2行2列にならんだ 4つのボタンが表示されます > 当方のMacのPython 3.7でも大丈夫でした 当方のWin 10のPython 3.7では、上の「+」と「-」は表示されましたが、下の二つのボタンは文字が表示されませんでした 【追記】 訂正します Win 10のPython 3.7でも大丈夫でした 【追記2】 当初は、AnacondaプロンプトでPythonを対話モードで起動して、コードを質問からコピペして実行したのですが、その際に「×」と「÷」がコピペされてませんでした それに気付かずに、「下の二つのボタンは文字が表示されませんでした」とコメントしてしまいました 質問のコードを「*.py」ファイルとして保存して python *.py で実行したら、大丈夫でした
kurinoi

2021/11/26 11:35

質問を受けて色々試してみた結果、質問のソースコード全体を「部分実行」により実行した場合ボタンが表示されず、▷ボタンでファイル全体を実行した場合きちんとボタンが表示されました。(エディターはvscode)
jbpb0

2021/11/26 12:11 編集

> 質問のソースコード全体を「部分実行」により実行した場合ボタンが表示されず、 は、Anacondaプロンプト上で起動してる対話モードのPythonにコードをコピペした場合と近い状態で、 > ▷ボタンでファイル全体を実行した場合きちんとボタンが表示されました。 は、コードを「*.py」ファイルとして保存して「python *.py」で実行した場合と近い状態なのかも
jbpb0

2021/11/29 00:23

print("×") print("÷") だけのコードを、VS Codeで「ソースコード全体を部分実行」と「▷ボタンでファイル全体を実行」をそれぞれ行ったら、どうなるのでしょうか?
kurinoi

2021/11/29 05:51

その場合は、全て問題なく記号が表示されました。
jbpb0

2021/11/29 07:25

そうなんですか その記号が常にダメってわけではないのですね 謎だ
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

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

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

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問