/ / Cách tạo đồng hồ báo thức đơn giản bằng Python

Cách tạo đồng hồ báo thức đơn giản bằng Python

Nếu bạn là người mới bắt đầu sử dụng Python, đồng hồ báo thức đơn giản này là một phần giới thiệu thực tế tuyệt vời.


Có rất nhiều bài tập bạn có thể sử dụng để củng cố kỹ năng Python của mình. Một trong những bài tập này là đồng hồ báo thức, bạn có thể viết dưới dạng một tệp kịch bản duy nhất. Bạn cũng có thể chạy nó bằng dấu nhắc lệnh.


Trong kịch bản đồng hồ báo thức, người dùng cần đặt thời gian họ muốn báo thức kêu. Sau đó, tập lệnh Python sẽ hiển thị thông báo “Thức dậy” cho người dùng khi chuông báo thức kêu.

Bạn cũng có thể thêm bộ đếm ngược để cho người dùng biết họ phải đợi bao lâu cho đến khi báo thức kêu.


Cách đặt báo thức

Tạo Tập lệnh Python và thêm các câu lệnh in đầu tiên để hỏi người dùng khi nào họ muốn đặt báo thức. Nếu bạn không quen với một số cú pháp Python, bạn có thể xem một số ví dụ cơ bản về python để giúp bạn hiểu các nguyên tắc cơ bản.

  1. Tạo một tệp mới và gọi nó alert.py.
  2. Mở tập lệnh Python bằng bất kỳ trình soạn thảo văn bản nào chẳng hạn như Notepad ++.
  3. Ở đầu tệp, nhập cả mô-đun ngày giờ và thời gian. Chương trình sẽ sử dụng chúng khi tính toán thời gian cần chờ cho đến khi chuông báo thức kêu. Bạn có thể sử dụng mô-đun thời gian của Python để trì hoãn việc thực thi, trong số các hành động khác.
    import datetime
    import time
  4. Thêm một vòng lặp trong khi. Bên trong vòng lặp while, hãy yêu cầu người dùng nhập thời gian báo thức hợp lệ, theo định dạng [hour:minute]. Vòng lặp while sẽ lặp lại nếu người dùng nhập số không hợp lệ.
    invalid = True

    while(invalid):
    print("Set a valid time for the alarm (Ex. 06:30)")
    userInput = input(">> ")

  5. Bên trong vòng lặp while, chuyển đổi đầu vào của người dùng thành một mảng phân tách giá trị giờ với giá trị phút.
        
    alarmTime = [int(n) for n in userInput.split(":")]
  6. Vẫn bên trong vòng lặp while, xác thực cả giá trị giờ và phút. Giờ phải là một số từ 0 đến 23 và phút phải là một số từ 0 đến 59. Nếu các điều kiện này không được đáp ứng, boolean không hợp lệ sẽ khiến vòng lặp while lặp lại và yêu cầu người dùng nhập một giá trị mới .
        
    if alarmTime[0] >= 24 or alarmTime[0] < 0:
    invalid = True
    elif alarmTime[1] >= 60 or alarmTime[1] < 0:
    invalid = True
    else:
    invalid = False

Làm thế nào để đếm bao lâu để chờ cho đến khi báo thức tắt

Chờ cho đến khi chuông báo thức kêu bằng cách đếm chương trình sẽ phải chờ bao nhiêu giây.

  1. Bên dưới vòng lặp while, chuyển đổi thời gian báo thức thành thời gian thứ hai trong ngày. Để tham khảo, có 86400 giây trong một ngày. Nếu người dùng nhập 00:01 (một phút sau nửa đêm), thời gian báo thức tính bằng giây sẽ là 60. Nếu người dùng nhập 23:59, thời gian báo thức tính bằng giây sẽ là 86340.

    seconds_hms = [3600, 60, 1]
    alarmSeconds = sum([a*b for a,b in zip(seconds_hms[:len(alarmTime)], alarmTime)])
  2. Sử dụng hàm datetime.now () để xác định thời gian hiện tại. Chuyển đổi thời gian hiện tại trong ngày tính bằng giây.
    now = datetime.datetime.now()
    currentTimeInSeconds = sum([a*b for a,b in zip(seconds_hms, [now.hour, now.minute, now.second])])
  3. Tính số giây cho đến khi chuông báo thức kêu.
    secondsUntilAlarm = alarmSeconds - currentTimeInSeconds
  4. Nếu thời gian khác nhau là âm, điều đó có nghĩa là báo thức cần được đặt cho ngày hôm sau.
    if secondsUntilAlarm < 0:
    secondsUntilAlarm += 86400
  5. Hiển thị thông báo cho người dùng để họ biết rằng báo thức đã được đặt thành công.
    print("Alarm is set!")
    print("The alarm will ring at %s" % datetime.timedelta(seconds=secondsUntilAlarm))

Cách đổ chuông báo thức

Để đổ chuông báo thức, hãy đợi những giây còn lại trước khi in thông báo “Thức dậy!” thông báo cho người dùng.

  1. Sử dụng time.sleep để đợi khoảng giây cần thiết cho đến khi báo thức kêu.
    time.sleep(secondsUntilAlarm)
  2. Hiển thị thông báo “Đánh thức” cho người dùng khi chuông báo thức kêu.
    print("Ring Ring... time to wake up!")

Cách thêm đếm ngược trước khi đổ chuông báo thức

Để thêm bộ đếm ngược cho mỗi giây, hãy sử dụng vòng lặp for để in số giây còn lại cho người dùng.

  1. Thay thế dòng time.sleep. Thêm vòng lặp for cho mỗi giây cho đến khi chuông báo thức kêu và hiển thị số giây còn lại cho người dùng.
    for i in range(0, secondsUntilAlarm):
    time.sleep(1)
    secondsUntilAlarm -= 1
    print(datetime.timedelta(seconds=secondsUntilAlarm))

Cách chạy chương trình đồng hồ báo thức

Chạy tập lệnh bằng cách điều hướng đến tệp bằng dòng lệnh. Sử dụng lệnh python để bắt đầu tập lệnh và đặt thời gian báo thức.

  1. Mở dấu nhắc lệnh hoặc thiết bị đầu cuối. Điều hướng đến vị trí của tệp alert.py của bạn. Ví dụ: nếu bạn đã lưu trữ tệp Python của mình trên Máy tính để bàn, hãy sử dụng cd Máy tính để bàn.
    cd Desktop
  2. Sử dụng lệnh python để chạy tập lệnh Python.
    python alarm.py
  3. Đặt thời gian hợp lệ cho báo thức, ở định dạng [hour:minute]. Ví dụ, 4:30.

  4. Báo thức sẽ đặt và bắt đầu đếm ngược mỗi giây cho đến khi báo thức cần kêu. Chờ báo thức kết thúc đếm ngược.

  5. Khi chương trình đã hoàn thành việc đếm ngược, chương trình sẽ hiển thị thông báo cho bạn biết rằng chuông báo thức đang đổ chuông.

Tạo các chương trình đơn giản bằng Python

Đồng hồ báo thức là một bài tập tốt mà bạn có thể thực hành để rèn luyện kỹ năng Python của mình. Bạn có thể viết ứng dụng đồng hồ báo thức trong một tệp kịch bản duy nhất và chạy ứng dụng đó bằng dòng lệnh. Trong thời gian chạy chương trình sẽ yêu cầu người dùng nhập thời gian hợp lệ để đặt báo thức.

Sau khi báo thức được đặt, hãy tính xem bạn sẽ cần đợi bao nhiêu giây cho đến khi đồng hồ báo thức kêu. Để chương trình chờ lâu trước khi hiển thị thông báo cho người dùng khi chuông báo thức kêu.

Bạn cũng có thể tạo lại bài tập báo thức này bằng các ngôn ngữ khác. Bạn có thể tìm hiểu cách tạo đồng hồ kỹ thuật số bằng HTML, CSS và JavaScript.

Similar Posts

Leave a Reply

Your email address will not be published. Required fields are marked *