Hẹn giờ Python 1 phút

Thời gian đếm ngược trong Python

import time

def countdown[time_sec]:
    while time_sec:
        mins, secs = divmod[time_sec, 60]
        timeformat = '{:02d}:{:02d}'.format[mins, secs]
        print[timeformat, end='\r']
        time.sleep[1]
        time_sec -= 1

    print["stop"]

countdown[5]
  • Phương thức
    python
    >>> import tkinter
    0 lấy hai số và trả về một cặp số [một bộ] bao gồm thương và số dư của chúng
  • python
    >>> import tkinter
    1 ghi đè đầu ra cho mỗi lần lặp
  • Giá trị của
    python
    >>> import tkinter
    2 được giảm dần vào cuối mỗi lần lặp

Đồng hồ đếm ngược là một cách lý tưởng để đặt mục tiêu hoàn thành các tác vụ, ví dụ: giữ lời nhắc cho lò nướng, v.v. Đối với các ứng dụng quy mô lớn như công nghiệp, bộ hẹn giờ phức tạp được sử dụng, được thiết kế tùy chỉnh cho các mục đích khác nhau, chẳng hạn như kích hoạt hoặc bật công tắc sau một khoảng thời gian đã đặt. Chúng tôi có thể đã nhận thấy một trình bảo vệ màn hình xuất hiện trên màn hình nền khi không hoạt động trong một thời gian. Điều này xảy ra do bộ đếm thời gian tính toán thời gian nhàn rỗi của chúng tôi. Tương tự, tự động đăng xuất khỏi trang web, hết hạn OTP, hết hạn captcha đều dựa trên bộ hẹn giờ sẽ vô hiệu hóa các mật khẩu này sau khi hết khoảng thời gian

Dự án đồng hồ đếm ngược Python

Chúng tôi sẽ tạo đồng hồ đếm ngược đơn giản bằng python và hiển thị 2 thông báo, một thông báo có ứng dụng đã tạo và một thông báo khác trên màn hình để nhắc người dùng về thời gian đã trôi qua. Hiểu biết tốt về các chức năng và tiện ích Tkinter để hiểu luồng mã là lý tưởng

Điều kiện tiên quyết của dự án

Dự án đồng hồ đếm ngược python sử dụng tkinter để phát triển GUI, mô-đun thời gian để tạo độ trễ và plyer để tạo thông báo trên màn hình. Chúng tôi sử dụng Tkinter, một thư viện GUI tích hợp trong python. Để kiểm tra tính khả dụng của nó, hãy nhập nó

python
>>> import tkinter

Nếu thư viện được cài đặt, nó sẽ không hiển thị lỗi. Trong trường hợp lỗi xuất hiện, hãy sử dụng lệnh sau để cài đặt Tkinter trên hệ thống Linux

sudo apt-get install python3-tkinter

Trên hệ thống Windows, cài đặt lại python sẽ khắc phục sự cố. Mô-đun thời gian là một thư viện tích hợp và do đó không yêu cầu bất kỳ cài đặt nào

Bây giờ, để cài đặt plyer, vui lòng chạy lệnh bên dưới bằng pip

pip install plyer

Tải xuống mã Python Đồng hồ đếm ngược

Bạn có thể tải xuống mã nguồn cho Đồng hồ đếm ngược trong liên kết đã cho. Đồng hồ đếm ngược và hẹn giờ

Cấu trúc tệp dự án

Có nhiều thư viện GUI được hỗ trợ bởi python như PyQT5, Kivy, Pyside2, v.v. Tkinter được nhiều nhà phát triển sử dụng rộng rãi và dễ dàng cho người mới bắt đầu thực hành

Chúng ta hãy xem các bước để thực hiện dự án đồng hồ đếm ngược python

  1. Nhập mô-đun. thời gian, tkinter và plyer
  2. Khởi tạo cửa sổ và khai báo kích thước
  3. Xác định chức năng cho bộ đếm thời gian và trình giữ chỗ
  4. Tạo giao diện nhập liệu của người dùng
  5. Thêm một nút để kích hoạt bộ đếm thời gian

Bây giờ hãy thảo luận chi tiết về việc triển khai hoàn chỉnh

Vui lòng chơi với các giá trị và thay đổi phương thức nhập liệu của bạn

1. Nhập các mô-đun cần thiết

#DataFlair Guide for python Countdown Timer
#Import necessary modules
from plyer import notification
from tkinter import messagebox
from tkinter import *
import time

Giải thích mã

  • từ thông báo nhập lớp. Plyer là thư viện cung cấp cho chúng ta các tính năng truy cập bluetooth, wifi, chi tiết pin, gửi email, gps, v.v. Ở đây chúng tôi sử dụng thông báo để cung cấp thông báo trên màn hình được hiển thị khi hoàn thành đồng hồ đếm ngược python
  • từ hộp thư nhập tkinter. Để hiển thị lời nhắc, chúng tôi sử dụng hộp thư. Nó có thể tạo các hộp thông báo lỗi, để hiển thị thông tin, đặt câu hỏi, v.v.
  • Nhập từ tkinter *. Chúng tôi sử dụng Tkinter để tạo giao diện người dùng cho ứng dụng. Tkinter phù hợp cho người mới bắt đầu và chứa nhiều widget
  • thời gian nhập khẩu. Để tạo độ trễ giữa mỗi giây, chúng tôi sử dụng mô-đun thời gian

2. Khởi tạo cửa sổ và khai báo kích thước

#Assign class and set dimensions of the interface
window = Tk[]
window.geometry["300x200"]
window.title["DataFlair - python Countdown timer and notification"]

giải thích mã

  • Cửa sổ = Tk[]. Lớp Tkinter, Tk[] được gán cho một cửa sổ đối tượng. Chúng tôi sử dụng cửa sổ đồng hồ đếm ngược python này để đặt các thành phần trên đối tượng, chẳng hạn như hộp văn bản, nút, v.v.
  • cửa sổ. hình học[]. Chỉ định chiều dài và chiều rộng của cửa sổ ứng dụng của ứng dụng bằng hình học
  • cửa sổ. Tiêu đề[]. Chỉ định tiêu đề của ứng dụng. nó là tùy chọn

3. Xác định chức năng cho bộ đếm thời gian và trình giữ chỗ

#Remove the placeholders for every entry field based on click   
def h_click[event]:
       hour_entry.delete[0, 'end']        
def m_click[event]:
       min_entry.delete[0, 'end']
def s_click[event]:         
 sec_entry.delete[0, 'end']

Giải thích mã.
Các chức năng giữ chỗ là tùy chọn.

  • def h_click[sự kiện]. Chúng tôi thêm một trình giữ chỗ trong tiện ích nhập giờ, phút và giây. Do đó, khi người dùng chọn một tiện ích mục nhập, trình giữ chỗ sẽ bị xóa bằng cách xóa bằng cách sử dụng entry_widget. mục nhập [0,'end'], trong đó 0 là bắt đầu của ký tự giữ chỗ và 'end' biểu thị phần cuối của chuỗi giữ chỗ. Tương tự, chúng tôi mở rộng điều này cho các lần nhấp chuột của tiện ích mục nhập phút và giây
#Function to activate python countdown timer and show notifications once timer is up
def timer[]:
   #Since we use placeholders, we check if the user entered an integer
   try:
       timer_time = int[hour_entry.get[]]*3600 + int[min_entry.get[]]*60 + int[sec_entry.get[]]
      
   except:
       messagebox.showerror[message="Enter Valid Time"]
   #The user cannot activate a timer with no time set
   #To update the timer with every decreasing second and display a notification   
   if timer_time >0:
       hour = 0
       min = 0
       sec = 0   
       #If minutes is more than 60, it has to be set to the next hour
       while timer_time >= 0:
           min, sec = divmod[timer_time,60]
           if min > 60:
               hour, min = divmod[min,60]
           #Set the declared variables with the new values to display               
           hours.set[hour]
           mins.set[min]
           secs.set[sec]
           #Sleep for 1 creates a delay of 1 second
           time.sleep[1]  
           #Update the changes on the window for every second
           window.update[]
           #Decrement the timer value by 1
           timer_time -= 1
       #Create a desktop notification
       notification.notify[
           #Title of the notification,
           title = "TIMER ALERT",
           #Body of the notification
           message = "Hey amigo!\nDid you do what you wanted to achieve? \nIf not, try again with a new timer",
app_icon="/home/data-flair/Downloads/python-countdown-timer/bell.ico",
           #Notification stays for 30 seconds
           timeout  = 30,
       ]
       #This notification is provided by tkinter with the created app
       messagebox.showinfo[message="Timer Complete!"]

giải thích mã

  • chắc chắn show_entry_fields[]. Khai báo hàm gọi bộ đếm thời gian
  • hẹn_giờ. Đặt biến hẹn giờ để chứa thời lượng của bộ hẹn giờ người dùng tính bằng giây. Một giờ có 3600 giây và một phút có 60 giây tương ứng. Do đó, chúng tôi nhân giờ với 3600 và phút với 60, tổng chúng bằng giây
  • thử…ngoại trừ. Nếu người dùng nhập một số nguyên, khối thử sẽ không chuyển vào khối ngoại trừ. Điều này là do chúng tôi đặt các biến giờ, phút và giây thành kiểu dữ liệu số nguyên. Nếu người dùng đưa ra một số float hoặc để trống, một cảnh báo sẽ bật lên
  • Nếu timer_time > 0. Bộ hẹn giờ chỉ có thể bắt đầu khi người dùng nhập tối thiểu 1 giây
  • giờ = 0, phút = 0, giây = 0. Khai báo và khởi tạo biến
  • trong khi timer_time >= 0. Vòng lặp giảm timer_time cho đến khi nó đạt 0, đánh dấu thời gian trễ kết thúc
  • phút, giây. Chuyển đổi timer_time thành phút và giây để hiển thị trên ứng dụng. divmod[value, divisor] là hàm trả về 2 giá trị. Giá trị đầu tiên là thương số của phép chia timer_time cho 60 và giá trị thứ hai là phần còn lại thu được trong phép chia
  • nếu tối thiểu > 60. Nếu phút lớn hơn 60, nó được chuyển đổi thành giờ và phút bằng cách sử dụng giờ, min = divmod[min,60]
  • giờ. đặt [giờ], phút. đặt [phút], giây. đặt [giây]. Đặt giờ, phút và giây thu được cho các biến số nguyên được khai báo bên ngoài hàm
  • thời gian. ngủ[1]. Tạo độ trễ 1 giây
  • timer_time -= 1. Giảm timer_time đi 1 để mô phỏng đồng hồ đếm ngược
  • thông báo. thông báo[]. Tạo thông báo trên màn hình. Nó nhận các thông số. title – tiêu đề của cảnh báo, message – nội dung của thông báo, app_icon – [tùy chọn], ảnh hoặc biểu tượng, timeout – khoảng thời gian sau đó thông báo trôi qua. Thay thế đường dẫn cho app_icon bằng đường dẫn tuyệt đối cho biểu tượng của bạn
  • hộp tin nhắn. showinfo[]. Hộp nhắc dùng làm thông báo trong ứng dụng đồng hồ đếm ngược python

4. Tạo giao diện nhập liệu của người dùng

________số 8

giải thích mã

  • tiêu đề_nhãn. Để hiển thị văn bản không thể chỉnh sửa trong cửa sổ đồng hồ đếm ngược, chúng tôi sử dụng nhãn. Label[] có 2 tham số bắt buộc. cửa sổ và văn bản để hiển thị. Định vị nhãn hoặc bất kỳ tiện ích nào bằng pack[]
  • IntVar[]. Khai báo biến số nguyên giờ, phút, giây. Một lời nhắc, trong thử. ngoại trừ chức năng hẹn giờ, được nâng lên nếu người dùng cung cấp số thập phân hoặc các ký tự khác
  • Lối vào[]. Để nhận đầu vào của người dùng, chúng tôi sử dụng tiện ích Mục nhập. Các tham số là cửa sổ, chiều rộng của trường nhập, textvariable biểu thị biến số nguyên đã khai báo trước đó. Kiểu dáng phông chữ là tùy chọn
  • giờ_mục nhập. chèn[]. Để chèn một trình giữ chỗ 00 bắt đầu bằng chỉ mục 0. Chúng tôi mở rộng tương tự cho các tiện ích nhập phút và giây
  • giờ_mục nhập. nơi[]. Tương tự như pack[], place[] là một chức năng định vị khác. Hàm này lấy 2 tham số là khoảng cách từ lề trái và lề trên làm tọa độ [x,y]
  • hour_entry.bind[]: Removal of the placeholder when the mouse clicks on the entry fields. indicates mouse button 1 which is the left click.

5. Thêm một nút để kích hoạt bộ đếm thời gian

#button to activate the timer function
button = Button[window,text='Activate Timer',bg='Red', command=timer].pack[pady=40]
#Close the window and exit the app
window.mainloop[]

Giải thích mã.
Đoạn mã này là tùy chọn

  • Cái nút[]. Khi người dùng chọn hoặc nhấp vào một nút, một chức năng được gọi là. Do đó, để gọi các chức năng hoặc một tác vụ cụ thể dựa trên đầu vào của người dùng [tương tác], chúng tôi sử dụng các nút

Đầu ra đồng hồ đếm ngược Python

Nhập thời gian cho đồng hồ đếm ngược và xem thông báo

Tóm lược

Chúng tôi đã tạo thành công đồng hồ đếm ngược python với các mô-đun plyer, tkinter và time. Dự án khám phá nhiều tính năng của Tkinter như tiện ích nhập cảnh, nhấp chuột, nút và trình giữ chỗ. Sử dụng hai cách, thông báo đã được tạo và sử dụng

Bạn có thể viết mã hẹn giờ bằng Python không?

Các nhà phát triển Python có thể tạo bộ hẹn giờ với sự trợ giúp của các mô-đun thời gian của Python . Có hai loại timer cơ bản. đồng hồ đếm ngược và đồng hồ đếm ngược.

Làm cách nào để tạo đồng hồ đếm ngược trong Python với khả năng tạm dừng và tiếp tục?

Hãy xem thứ tự thực hiện các câu lệnh của bạn. .
Bạn tạo đối tượng đếm ngược
Bạn chạy đếm. phương pháp chạy
Bạn ngủ trong 3 giây
Bạn tạm dừng sử dụng số đếm. phương pháp tạm dừng

Chủ Đề