slow-starter

なにをやるにもslow start……。

python_024

fraction function

pythonでは標準ライブラリのfractionsモジュールで分数を扱えるようになるらしい。

>>> from fractions import Fraction
# 英語で分数は「fraction」
>>> a=Fraction(1,3)
>>> a
Fraction(1, 3)
# 「分子を"1"、分母を"3"と指定した。
>>> print(a)
1/3
# 分数になった!
>>> a.numerator
1
# 分子は英語で「numerator」
>>> a.denominator
3
# 分母は英語で「denominator」
>>>

分数の足し算

昨日の記事で紹介したpythonスクリプトをfractions.Fractionに対応させてみた。

import tkinter
from fractions import Fraction
# 約分


def Yaku(event):

    # 分数の計算
    fraction1 = Fraction(int(numerator1.get()), int(denominator1.get()))
    fraction2 = Fraction(int(numerator2.get()), int(denominator2.get()))
    fraction3 = fraction1+fraction2

    # 計算結果を出力
    sLabel = tkinter.Label(text=int(fraction3.numerator))
    bLabel = tkinter.Label(text=int(fraction3.denominator))
    sLabel.place(x=140, y=50)
    bLabel.place(x=140, y=80)


# GUIの作成
root = tkinter.Tk()
root.title("Yakubun Test")
root.geometry("300x200")

numerator1 = tkinter.Entry(width=3)
denominator1 = tkinter.Entry(width=3)
numerator2 = tkinter.Entry(width=3)
denominator2 = tkinter.Entry(width=3)

numerator1.place(x=20, y=50)
denominator1.place(x=20, y=80)
numerator2.place(x=80, y=50)
denominator2.place(x=80, y=80)

pLabel = tkinter.Label(text="+")
eLabel = tkinter.Label(text="=")
pLabel.place(x=64, y=70)
eLabel.place(x=120, y=70)

# ボタンの作成およびイベントの設定
button1 = tkinter.Button(text="Done", width=10)
button1.bind("<Button-1>", Yaku)
button1.place(x=30, y=120)

root.mainloop()

組み込み関数、便利!