Pythonでストップウォッチを作成 | プログラミング学習 初心者向け入門ガイド

ホーム › >>

Pythonでストップウォッチを作成

記事掲載:https://laptrinhcanban.com/ja

Pythonでストップウォッチの作り方のチュートリアル。このレッスンの後、timeモジュール、 datetimeモジュール、およびtkinterモジュール(GUI を操作する) を python に適用することにより、 pythonで作成された本当に優れた時計を作成できます。

Pythonでストップウォッチ作成 | デジタル

Pythonのtimeモジュールをpython tkinter モジュールと組み合わせて使用して、次のコード行で非常に優れたストップウォッチを作成できます。

clock.pyファイルを保存し、コンピューターで実行してストップウォッチのタイマーを表示するようにしましょう。

clock.py

from tkinter import *
from datetime import datetime
import time
c = Canvas(width = 700, height = 300, background = '#00ffff')
c.pack()

try:
while True:
now = datetime.now()

s = '{0:0>2d}:{1:0>2d}:{2:0>2d}'.format(now.hour, now.minute, now.second)

c.create_rectangle(0, 0, 700, 300, outline = '#00ffff', fill = '#00ffff')

c.create_text(350, 150, text = s, font = ('', 100), fill = 'blue')

c.update()

time.sleep(0.1)
except:
pass

上記のclock.pyファイルを実行すると、次のような本物の時計が表示されます。
Pythonでストップウォッチを作成

線の塗りつぶし値のc.creat_rectangleを変更することで、時計の色を変更することもできます。たとえば、次のようなオレンジ色の時計です。

Pythonでストップウォッチを作成 màu cam

コードの説明

まず、import コマンドを使用して、必要なモジュール tkinter と datetime を time モジュールと共にインポートします。
コードの 4 行目で、Tinker Canvas を作成します。これは、画像やその他の複雑なレイアウトを描画するために使用される長方形の領域です。グラフィック、テキスト、ウィジェット、またはフレームをキャンバスに配置できます。

c = Canvas(width = 700, height = 300, background = '#00ffff')

上記のように幅700px、高さ300pxのフォトキャンバスを作成し、青い木製の棚を置いたら、時間を描いていきます。

クロックは無限に実行されるため、while True を使用して無限ループを作成します。
各ループで:

  1. datetime.now() を使用して現在の時刻を取得します。
  2. 次のコード行を使用して、上記の瞬間を時:分:秒の形式に変換します。
s = '{0:0>2d}:{1:0>2d}:{2:0>2d}'.format(now.hour, now.minute, now.second)
  1. 今回は create_rectagle() および create_text() メソッドを使用してフレームに入力します
  2. 現在の時刻を更新するため、0.1 秒待ってから次の時刻の入力に進みます。次のコード行を使用します。
    c.update()
    time.sleep(0.1)

最後に、プログラムを実行して結果を楽しみます。

Pythonでストップウォッチ作成 | アナログ時計

上記の長方形の電子時計に満足できない場合は、次のプログラムで美しいアナログ時計を作成してみましょう。

clock_analog.py

from tkinter import *  ##GUI 操作用の tkinter。Python の実行時にウィンドウを作成します
from datetime import datetime #現在の時刻

import time #0.1秒ごとに時刻を変更
import math # 時計の文字盤として円を描く

WINwidth = 800 #時計のサイズ
WINcolor = '#ffffff' #M時計の 色

WINheight = WINwidth #ウィンドウの幅
S_length = WINwidth / 2 * 0.75 #秒針の長さ
M_length = S_length * 0.95 #分針の長さ
H_length = S_length * 0.8 #時針の長さ
H_LINEwidth = 8 # 時針の総計
M_LINEwidth = H_LINEwidth / 2 #分針 の総計
S_LINEwidth = 1 #秒針 の総計

#Create Windo
Clock = Tk()
Clock.title("AnalogClock")

w = Canvas(Clock, width = WINwidth, height = WINheight, background = WINcolor)
w.pack()

w.create_oval(WINwidth / 2 - 5, WINheight / 2 - 5, WINwidth / 2 + 5, WINheight / 2 + 5, fill="black")
w.create_oval(5, 5, WINwidth-5, WINheight-5, width = 2) #時計の外側に円を描く

FontSize = int(WINwidth / 14) #フォントのサイズ
Fx = 0 #時間表示テキストの固定位置
Fy = FontSize / 10
R = S_length + FontSize * 0.9 #時間表示テキストの半径
A = 0 #作成される角度の大きさの時間表示ワード
for i in range(1,13): #文字を 表示
A = A + 30
Tx = R * math.cos(A / 180 * math.pi)
Ty = R * math.sin(A / 180 * math.pi)
w.create_text(WINwidth / 2 + Ty - Fx, WINheight / 2 - Tx + Fy, text = i, font = ("", FontSize))

try:
while True:
#時間ループを開始
now = datetime.now() #現在時刻を取得i
if now.hour > 12: #時刻を 12h として表現
nowhour = now.hour - 12
else:
nowhour = now.hour
# the秒針が動き、分針も追従する
nowhour = nowhour + now.minute / 60 + now.second / 3600 #時間形式の変更
nowminute = now.minute + now.second / 60 #時間形式の変更

H_A = nowhour / 12 * 360 * math.pi /180 #針で作った角度の大きさ
M_A = nowminute / 60 * 360 * math.pi / 180
S_A = now.second / 60 * 360 * math.pi / 180

H_x = math.cos(H_A) * H_length #時計の中心に対する針の長さを
H_y = math.sin(H_A) * H_length
M_x = math.cos(M_A) * M_length
M_y = math.sin(M_A) * M_length
S_x = math.cos(S_A) * S_length
S_y = math.sin(S_A) * S_length

w.create_text(WINwidth / 2 , WINheight / 2 + WINwidth / 8, text = datetime.now().strftime('%Y/%m/%d %H:%M:%S'), font = ("", int(FontSize / 1.5)), tag="Y") #Show年 月 日 時 分 秒

w.create_line(WINwidth / 2, WINheight / 2, WINwidth / 2 + H_y, WINheight / 2 - H_x, width = H_LINEwidth, tag="H") #Kim giờ
w.create_line(WINwidth / 2, WINheight / 2, WINwidth / 2 + M_y, WINheight / 2 - M_x, width = M_LINEwidth, tag="M") #Kim phút
w.create_line(WINwidth / 2, WINheight / 2, WINwidth / 2 + S_y, WINheight / 2 - S_x, width = S_LINEwidth, tag="S") #Kim giây

w.update() #新しい時刻を更新

w.delete("H") #古い時刻を削除
w.delete("M")
w.delete("S")
w.delete("Y")

time.sleep(0.1) #0.1 秒ごとに時計を更新
except:
pass

このプログラムには、sin、cos を使用して円を描くためのmath モジュールもあり、Python での Piの記事で詳細を確認できます。

上記のコード行をanalog.pyファイルに保存してプログラムを実行すると、本物のアナログ時計が表示されます。

Pythonでストップウォッチを作成 | analog

まとめ

上記 Kiyoshi は、 python ストップウォッチの作成方法を示しました。Python を使用して、よりユニークで奇妙な製品を作成します。é.

URL Link

https://laptrinhcanban.com/ja/python/nhap-mon-lap-trinh-python/datetime-trong-python/dong-ho-bam-gio-python/

この記事は役立つと思ったらいいね!とシェアをお願いします
">

ホーム  › >>

Profile
きよしです!笑

Author: Kiyoshi (Chis Thanh)

Kiyoshi was a former international student in Japan. After graduating from Toyama University in 2017, Kiyoshi is currently working as a BrSE in Tokyo, Japan.