【python】簡単に10進数から2進数へ変換する方法
pythonのEntryとButtonを使って10進数から2進数へ変換する電卓の作成をします。この記事では、Entryの使い方からButtonの処理の方法を学べるような記事となっております。サンプルプログラムは、そのまま活用可能ですので、16進数を追加したり、個人の工夫を追加してより良いものを作成してください。
Entryウィジェットとは
Entryウィジェットでは、ユーザーがテキストを入力できる、いわゆる1行のテキストボックスを生成できます。前回までの記事で出てきた「Label」「Entry」「Button」の関係は、下記の図の通りです。
Entryウィジェットの記載方法とオプション
Entryの記載方法は、「entry = tk.Entry( frameウィジェット, options)となります。optionsは、下表の通りとなります。表示例は、画像を参考にしてください。今回のサンプルでは、Frameを利用していないので、「frameウィジェット」部分は省いてあります。
cursorのデザインは、本家のページより確認してくださいーーー>ここをクリック
オプション | 説明 |
---|---|
width | 横幅を指定(半角の文字数) |
font | テキストのフォントタイプ・大きさの指定 |
command | テキストボックス内部の変更がある度に呼び出される関数を指定 |
cursor | マウスホバー時のカーソルの種類 |
relief | テキストボックスのボーダーデザイン |
show | テキスト入力時に指定した文字を入力文字の代わりに表示 |
Entryのオプション使用例
下記のプログラムを実行した画面は、下の画像を参考にしてください。最後に動画にまとめているのでそちらも視聴をお願いいたします。様々な用途でEntryを利用できるようにオプションが多くあります。フォントは、使用しているパソコン内にインストールされているフォントを利用できるので参考までに下の「フォントを検索するには下記のプログラムを実行し、コピー&ペーストしましょう」のプログラムを実行して、普段利用しているフォントにすると良いと思います。
#Entryのオプション
import tkinter as tk #インポートしてtkで使えるようにする
main_Window = tk.Tk() #main_Windowというウィンドウを作成
main_Window.title("tm-kit Entryのoptions")
main_Window.geometry("800x150")
lb1 = tk.Label(text='Entryの設定 : Width=25 font="UD デジタル 教科書体 N-R",15" cursor="star"')
lb1.place(x=30, y=30)
lb2 = tk.Label(text='Entryの設定 : show="*"')
lb2.place(x=30, y=80)
txt1 = tk.Entry(width= 25,font = ("UD デジタル 教科書体 N-R",15), cursor="star")
txt1.place(x=500, y=30)
txt2 = tk.Entry(width= 25,show="*")
txt2.place(x=200, y=80)
main_Window.mainloop()
フォントを検索するには下記のプログラムを実行し、コピー&ペーストしましょう
どのようなフォントが使用しているパソコンにインストールされているかわからないため、事前に下記のソースコードを動作させて調べておく必要があります。
import tkinter as tk
import tkinter.font
root = tk.Tk()
print(tkinter.font.families())
2進数を計算するアプリを製作しましょう
今回のアプリは、10進数の欄へ数字を入力し、「計算ボタン」をクリックすると2進数の欄へ計算結果を表示させる電卓を作成してきます。
考え方は、
1 Window枠作成
2 labelとEntryの設定(option含む)
3 配置場所の設定
4 ボタンを押すと2進数の計算
5 計算した結果をEntryの2つ目へ挿入
1から3の手順については、先のEntryの設定を見てもらうと良いと思います。Window枠作成については、こちらをクリック(過去の記事)へ飛びます
2進数の計算
通常の10進数から2進数へ変換する場合は、2で割った余りを並べていく方法をとりますが、プログラム上では、「bin(num)」を利用すると一瞬で2進数へ変換されます。
動作の説明
今回のプログラムは、tkinterというGUIライブラリを使用して、10進数から2進数への変換を行う電卓を作成しています。
ユーザーがテキストボックス(txt1)に10進数を入力し、「計算ボタン」をクリックすると、関数button_click()が呼び出されます。この関数では、テキストボックス(txt1)の内容を整数型に変換し、変数numに格納します。そして、bin()関数を使ってnumを2進数文字列に変換し、テキストボックス(txt2)に挿入します。
このようにして、txt1に入力された10進数が2進数に変換され、txt2に表示されるため、10進数から2進数への変換が行われたことがわかります。
サンプルプログラム
#10進数から2進数変換
import tkinter as tk #インポートしてtkで使えるようにする
main_Window = tk.Tk() #main_Windowというウィンドウを作成
main_Window.title("tm-kit 2進数変換")
main_Window.geometry("300x150")
#2進数計算処理
def button_click():
num = int(txt1.get())
txt2.insert(0,bin(num))
lb1 = tk.Label(text='10進数')
lb1.place(x=30, y=30)
lb2 = tk.Label(text='2進数')
lb2.place(x=30, y=80)
txt1 = tk.Entry(width= 25)
txt1.place(x=80, y=30)
txt2 = tk.Entry(width= 25)
txt2.place(x=80, y=80)
button = tk.Button(main_Window,text="計算ボタン",command=button_click) #フレームにウィジェットを貼り付け
button.place(x=120, y=120)
main_Window.mainloop()
動画
この記事で紹介している内容を動画にしてみました。
まとめ
この記事は、pythonのEntryとButtonを使って10進数から2進数へ変換する電卓を作成する方法について説明しています。記事の中では、Entryの使い方からButtonの処理の方法までを詳しく解説し、読者がこれらの機能を使って自分でプログラムを作成できるようになることを目指しています。
また、記事にはサンプルプログラムも掲載されており、そのまま使って電卓を作成することも可能です。さらに、読者は自分なりの工夫を加えて、16進数などの機能を追加することもできます。
この記事を読めば、pythonでEntryとButtonを使ったプログラミングの基礎を学ぶことができ、10進数から2進数への変換を行う電卓を作成することができます。
他の記事はこちらから