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
- Nhập mô-đun. thời gian, tkinter và plyer
- Khởi tạo cửa sổ và khai báo kích thước
- Xác định chức năng cho bộ đếm thời gian và trình giữ chỗ
- Tạo giao diện nhập liệu của người dùng
- 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ố 8giả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