fork download
  1. def teka_teki_teko(batas: int) -> None:
  2. """
  3. Mencetak urutan angka dari 1 hingga batas dengan aturan "TekaTekiTeko".
  4.  
  5. Args:
  6. batas (int): Angka integer batas atas perulangan (minimal 20).
  7.  
  8. Raises:
  9. ValueError: Jika 'batas' tidak memenuhi kriteria yang ditentukan.
  10. """
  11. # Guard Clause: Validasi input di awal untuk memastikan integritas data.
  12. if not isinstance(batas, int) or batas < 20:
  13. raise ValueError("Input 'batas' harus berupa integer dengan nilai minimal 20.")
  14.  
  15. for i in range(1, batas + 1):
  16. # Logic: Membangun output secara dinamis agar mudah diperluas.
  17. output = ""
  18. if i % 2 == 0:
  19. output += "Teka"
  20. if i % 3 == 0:
  21. output += "Teki"
  22. if i % 5 == 0:
  23. output += "Teko"
  24.  
  25. # Pythonic Trick: Mencetak 'output' jika tidak kosong, jika kosong cetak 'i'.
  26. # Ini memanfaatkan 'short-circuit evaluation' dari operator 'or'.
  27. print(output or i)
  28.  
  29. # Standard entry point untuk script Python.
  30. if __name__ == "__main__":
  31. # Menjalankan fungsi dengan nilai 'batas' sesuai contoh di gambar.
  32. teka_teki_teko(30)
Success #stdin #stdout 0.12s 14044KB
stdin
Standard input is empty
stdout
1
Teka
Teki
Teka
Teko
TekaTeki
7
Teka
Teki
TekaTeko
11
TekaTeki
13
Teka
TekiTeko
Teka
17
TekaTeki
19
TekaTeko
Teki
Teka
23
TekaTeki
Teko
Teka
Teki
Teka
29
TekaTekiTeko