一、使用turtle模塊顯示時鐘錶盤
turtle是Python自帶的一個圖形庫,可以用於在繪圖窗口中繪製圖形。我們可以使用turtle模塊繪製一個時鐘錶盤,然後在錶盤上顯示時間。
import turtle import time # 繪製時鐘錶盤 def draw_clock(radius): # 繪製錶盤的外圓 turtle.pensize(7) turtle.color("black") turtle.penup() turtle.goto(0, -radius) turtle.pendown() turtle.circle(radius) # 繪製錶盤上的刻度 turtle.penup() turtle.goto(0, 0) turtle.pendown() for i in range(12): turtle.forward(radius * 0.8) turtle.pencolor("red") turtle.pensize(5) turtle.write(i+1, align="center", font=("Courier", 14, "bold")) turtle.back(radius * 0.8) turtle.right(30) def main(): turtle.setup(width=800, height=800) turtle.speed(0) radius = 300 draw_clock(radius) main()
以上代碼中,我們使用turtle模塊繪製了一個錶盤的外圓和刻度線,其中的時間刻度用紅色標註出來。可以通過修改半徑和刻度線長度等參數來適應不同大小的錶盤。
二、獲取當前時間
使用Python內置的time模塊可以獲取當前時間,代碼如下:
import time def get_current_time(): return time.localtime() current_time = get_current_time() hour = current_time.tm_hour minute = current_time.tm_min second = current_time.tm_sec
以上代碼中,我們調用time模塊的localtime函數獲取當前本地時間,並從中提取出小時、分鐘和秒數。
三、在錶盤上顯示時間
有了時鐘錶盤和當前時間的數據,我們可以在錶盤上顯示時間了。
import turtle import time # 繪製時鐘錶盤 def draw_clock(radius): # 繪製錶盤的外圓 turtle.pensize(7) turtle.color("black") turtle.penup() turtle.goto(0, -radius) turtle.pendown() turtle.circle(radius) # 繪製錶盤上的刻度 turtle.penup() turtle.goto(0, 0) turtle.pendown() for i in range(12): turtle.forward(radius * 0.8) turtle.pencolor("red") turtle.pensize(5) turtle.write(i+1, align="center", font=("Courier", 14, "bold")) turtle.back(radius * 0.8) turtle.right(30) # 獲取當前時間 def get_current_time(): return time.localtime() # 在錶盤上顯示時間 def show_time(hour, minute, second, radius): # 顯示時針 turtle.pensize(12) turtle.color("black") turtle.penup() turtle.goto(0, 0) turtle.pendown() turtle.right(hour * 30 + minute * 0.5) turtle.forward(radius * 0.6) # 顯示分針 turtle.pensize(8) turtle.color("blue") turtle.penup() turtle.goto(0, 0) turtle.pendown() turtle.right(minute * 6) turtle.forward(radius * 0.8) # 顯示秒針 turtle.pensize(3) turtle.color("red") turtle.penup() turtle.goto(0, 0) turtle.pendown() turtle.right(second * 6) turtle.forward(radius * 0.9) def main(): turtle.setup(width=800, height=800) turtle.speed(0) radius = 300 draw_clock(radius) while True: turtle.clear() current_time = get_current_time() hour = current_time.tm_hour minute = current_time.tm_min second = current_time.tm_sec show_time(hour, minute, second, radius) turtle.update() time.sleep(1) main()
以上代碼中,我們使用show_time函數將時針、分針和秒針分別繪製在錶盤上。其中,時針每小時旋轉30度,每分鐘旋轉0.5度;分針每分鐘旋轉6度;秒針每秒旋轉6度。
最後,在主函數中使用while循環來不斷更新錶盤上的時間,調用turtle.update()函數將圖形更新到屏幕上,每一秒鐘暫停一次,以達到實時顯示時間的效果。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/237931.html