ವಿಷಯಕ್ಕೆ ತೆರಳಿ

ಪ್ರಾಜೆಕ್ಟ್ 7: ಕೌಂಟ್‌ಡೌನ್ ಟೈಮರ್ (Countdown Timer)

ಈ ಪ್ರಾಜೆಕ್ಟ್‌ನಲ್ಲಿ, ನಾವು ಒಂದು ಸರಳ ಕೌಂಟ್‌ಡೌನ್ ಟೈಮರ್ ಅನ್ನು ನಿರ್ಮಿಸುತ್ತೇವೆ. ಬಳಕೆದಾರರು ಸೆಕೆಂಡುಗಳಲ್ಲಿ ಸಮಯವನ್ನು ನಮೂದಿಸುತ್ತಾರೆ, ಮತ್ತು ಪ್ರೋಗ್ರಾಂ ಆ ಸಮಯದಿಂದ ಸೊನ್ನೆಗೆ ಪ್ರತಿ ಸೆಕೆಂಡಿಗೆ ಎಣಿಕೆ ಮಾಡುತ್ತದೆ.

ಕಲಿಕೆಯ ಪರಿಕಲ್ಪನೆಗಳು

  • time ಮಾಡ್ಯೂಲ್, ವಿಶೇಷವಾಗಿ time.sleep()
  • while ಲೂಪ್
  • ಬಳಕೆದಾರರಿಂದ ಇನ್‌ಪುಟ್ ಪಡೆಯುವುದು ಮತ್ತು ಅದನ್ನು ಇಂಟಿಜರ್‌ಗೆ ಪರಿವರ್ತಿಸುವುದು.
  • print() ಫಂಕ್ಷನ್‌ನ end ಮತ್ತು flush ಪ್ಯಾರಾಮೀಟರ್‌ಗಳು.

ಕೋಡ್

import time


def countdown_timer(seconds):
    """ನೀಡಿದ ಸೆಕೆಂಡುಗಳಿಂದ ಕೆಳಗೆ ಎಣಿಸುವ ಟೈಮರ್."""

    while seconds > 0:
        # ನಿಮಿಷಗಳು ಮತ್ತು ಸೆಕೆಂಡುಗಳನ್ನು ಲೆಕ್ಕಾಚಾರ ಮಾಡುವುದು
        mins, secs = divmod(seconds, 60)

        # MM:SS ಫಾರ್ಮ್ಯಾಟ್‌ನಲ್ಲಿ ಸಮಯವನ್ನು ಪ್ರದರ್ಶಿಸುವುದು
        # :02d ಎಂದರೆ ಸಂಖ್ಯೆಯನ್ನು ಎರಡು ಅಂಕಿಗಳಲ್ಲಿ ಪ್ರದರ್ಶಿಸು, ಅಗತ್ಯವಿದ್ದರೆ ಮುಂದೆ ಸೊನ್ನೆ ಸೇರಿಸು
        timer_format = f'{mins:02d}:{secs:02d}'

        # ಅದೇ ಲೈನ್‌ನಲ್ಲಿ ಸಮಯವನ್ನು ಅಪ್‌ಡೇಟ್ ಮಾಡಲು '\r' ಬಳಸುವುದು
        print(timer_format, end='\r', flush=True)

        # ಒಂದು ಸೆಕೆಂಡ್ ಕಾ���ುವುದು
        time.sleep(1)

        seconds -= 1

    print("ಸಮಯ ಮುಗಿಯಿತು! (Time's up!)")


def main():
    """ಮುಖ್ಯ ಫಂಕ್ಷನ್."""
    print("ಕೌಂಟ್‌ಡೌನ್ ಟೈಮರ್‌ಗೆ ಸ್ವಾಗತ!")

    try:
        user_input = input("ಕೌಂಟ್‌ಡೌನ್‌ಗಾಗಿ ಸಮಯವನ್ನು ಸೆಕೆಂಡುಗಳಲ್ಲಿ ನಮೂದಿಸಿ: ")
        total_seconds = int(user_input)

        if total_seconds <= 0:
            print("ದಯವಿಟ್ಟು ಸೊನ್ನೆಗಿಂತ ಹೆಚ್ಚಿನ ಸಂಖ್ಯೆಯನ್ನು ನಮೂದಿಸಿ.")
        else:
            countdown_timer(total_seconds)

    except ValueError:
        print("ತಪ್ಪಾದ ಇನ್‌ಪುಟ್. ದಯವಿಟ್ಟು ಪೂರ್ಣ ಸಂಖ್ಯೆಯನ್ನು ಮಾತ್ರ ನಮೂದಿಸಿ.")


if __name__ == "__main__":
    main()

ವಿವರಣೆ

  1. import time: ಸಮಯಕ್ಕೆ ಸಂಬಂಧಿಸಿದ ಫಂಕ್ಷನ್‌ಗಳನ್ನು ಬಳಸಲು ನಾವು time ಮಾಡ್ಯೂಲ್ ಅನ್ನು ಇಂಪೋರ್ಟ್ ಮಾಡಿಕೊಳ್ಳುತ್ತೇವೆ.
  2. countdown_timer(seconds) ಫಂಕ್ಷನ್:
    • while seconds > 0:: ಕೌಂಟ್‌ಡೌನ್ ಸೊನ್ನೆಯನ್ನು ತಲುಪುವವರೆಗೆ ಈ ಲೂಪ್ ಚಾಲನೆಯಲ್ಲಿರುತ್ತದೆ.
    • mins, secs = divmod(seconds, 60): divmod() ಒಂದು ಉಪಯುಕ್ತ ಬಿಲ್ಟ್-ಇನ್ ಫಂಕ್ಷನ್. ಇದು seconds ಅನ್ನು 60 ರಿಂದ ಭಾಗಿಸಿ, ಭಾಗಲಬ್ಧ (ನಿಮಿಷಗಳು) ಮತ್ತು ಶೇಷ (ಸೆಕೆಂಡುಗಳು) ಎರಡನ್ನೂ ಒಂದೇ ಬಾರಿಗೆ ಹಿಂತಿರುಗಿಸುತ್ತದೆ.
    • timer_format = f'{mins:02d}:{secs:02d}': ನಾವು ಸಮಯವನ್ನು MM:SS ಫಾರ್ಮ್ಯಾಟ್‌ನಲ್ಲಿ ಪ್ರದರ್ಶಿಸಲು f-ಸ್ಟ್ರಿಂಗ್ ಅನ್ನು ಬಳಸುತ್ತಿದ್ದೇವೆ. :02d ಫಾರ್ಮ್ಯಾಟಿಂಗ್, 5 ಅನ್ನು 05 ಎಂದು ಪ್ರದರ್ಶಿಸುವಂತೆ ಮಾಡುತ್ತದೆ.
    • print(..., end='\r', flush=True):
      • end='\r': \r (Carriage Return) ಕ್ಯಾರೆಕ್ಟರ್ ಕರ್ಸರ್ ಅನ್ನು ಪ್ರಸ್ತುತ ಲೈನ್‌ನ ಆರಂಭಕ್ಕೆ ಸರಿಸುತ್ತದೆ. ಇದರಿಂದ, ಮುಂದಿನ print ಸ್ಟೇಟ್‌ಮೆಂಟ್ ಹಳೆಯ ಸಮಯದ ಮೇಲೆ ಹೊಸ ಸಮಯವನ್ನು ಓವರ್‌ರೈಟ್ ಮಾಡುತ್ತದೆ. ಇದು ಒಂದೇ ಲೈನ್‌ನಲ್ಲಿ ಟೈಮರ್ ಅಪ್‌ಡೇಟ್ ಆಗುವಂತೆ ಕಾಣುವಂತೆ ಮಾಡುತ್ತದೆ.
      • flush=True: print ನ ಔಟ್‌ಪುಟ್ ಅನ್ನು ತಕ್ಷಣವೇ ಟರ್ಮಿನಲ್‌ನಲ್ಲಿ ಪ್ರದರ್ಶಿಸಲು ಇದು ಖಚಿತಪಡಿಸುತ್ತದೆ.
    • time.sleep(1): ಪ್ರೋಗ್ರಾಂನ ಎಕ್ಸಿಕ್ಯೂಶನ್ ಅನ್ನು 1 ಸೆಕೆಂಡ್ ಕಾಲ ನಿಲ್ಲಿಸುತ್ತದೆ.
    • seconds -= 1: ಪ್ರತಿ ಇಟರೇಶನ್‌ನ ನಂತರ ಕೌಂಟ್‌ಡೌನ್‌ನಿಂದ ಒಂದು ಸೆಕೆಂಡ್ ಅನ್ನು ಕಳೆಯುತ್ತದೆ.
  3. main() ಫಂಕ್ಷನ್: ಬಳಕೆದಾರರಿಂದ ಸೆಕೆಂಡುಗಳಲ್ಲಿ ಇನ್‌ಪುಟ್ ಪಡೆಯುತ್ತದೆ, ಅದನ್ನು int ಗೆ ಪರಿವರ್ತಿಸುತ್ತದೆ ಮತ್ತು countdown_timer ಫಂಕ್ಷನ್ ಅನ್ನು ಕಾಲ್ ಮಾಡುತ್ತದೆ. try-except ಬ್ಲಾಕ್ ಬಳಸಿ ತಪ್ಪಾದ ಇನ್‌ಪುಟ್‌ಗಳನ್ನು ಹ್ಯಾಂಡಲ್ ಮಾಡಲಾಗುತ್ತದೆ.