from random import randint
hitung_kepala = 0
hitung_total = 0
while True:
  
  # angka integer acak: 0 atau 1
  putar  = randint(0,1)
  
  if putar:
    hitung_kepala  = hitung_kepala + 1
    print str(hitung_total) + " kepala " + str(hitung_kepala)
  else:
    hitung_kepala = 0
    print str(hitung_total) + " buntut"
    
  hitung_total = hitung_total + 1
  if not (hitung_kepala < 3 and hitung_total < 100):
    break
print "Muncul kepala " + str(hitung_kepala) + " kali berturut-turut."
""" selesai """
Saya kesulitan memahami bagian ini.
Saya belum yakin bagaimana While akan berhenti. Sejauh yang saya tau, loop while akan berakhir jika nilai false dengan syarat Kepala keluar 3 kali berturut-turut
nilai false ini ditentukan dari baris:
if not (hitung_kepala < 3 and hitung_total < 100):
    break
Bagiamana baris tsb bekerja?
Saya berterimakasih jika ada yg berkenan membantu menjelaskan :)
        0 jempol
        
            ZihxS 
            300
            816
            
             ·
            7 tahun, 10 bulan yang lalu
            ·
            2 jempol
            
        
    
    Hai coder ianfreecs,
from random import randint
1) hitung_kepala = 0
2) hitung_total = 0
3) while True:
  
  # angka integer acak: 0 atau 1
  4) putar  = randint(0,1)
  
  5) if putar:
    6) hitung_kepala  = hitung_kepala + 1
    7) print str(hitung_total) + " kepala " + str(hitung_kepala)
  8) else:
    9) hitung_kepala = 0
    10) print str(hitung_total) + " buntut"
    
  11) hitung_total = hitung_total + 1
  12) if not (hitung_kepala < 3 and hitung_total < 100):
    13) break
14) print "Muncul kepala " + str(hitung_kepala) + " kali berturut-turut."
Penjelasan :
Di bagian 1,2 :
Mendeklarasikan variabel hitung_kepala dan hitung_total dimana masing masing isinya berupa integer yang bernilai 0
Di bagian 3:
While akan otomatis berjalan karena belum anda kondisi false pada programnya pada saat di run.
Di bagian 4:
Mendeklarasikan variabel putar yang mana isinya akan di acak selama perulangan berlangsung yang akan menghasilkan hanya dua isi yaitu 0 atau 1.
Di bagian 5:
Jika variabel putar itu isinya 1 maka perintah yang di dalamnya akan di jalankan (di bagian 6,7 akan di jalankan di bagian 9,10 tidak akan di jalankan).
Di bagian 6:
Variabel hitung_kepala isi sebelumnya akan di tambahkan 1. Misal isi sebelumnya 2 maka nantinya akan di tambahkan 1 yang menghasilkan angka 3.
Di bagian 7:
Akan mengeluarkan output jumlah hitung_total dan mengeluarkan string " kepala " juga mengeluarkan isi baru dari variabel hitung_kepala.
Di bagian 8:
Jika variabel putar isinya 0 maka perintah atau pernyataan ini akan di jalankan dan bagian 5,6,7 akan diabaikan.
Di bagian 9:
Variabel hitung_kepala akan di ubah lagi menjadi 0.
Di bagian 10:
Akan mengeluarkan output jumlah variabel hitung_total dan string " buntut"
Di bagian 11:
Mendeklarasikan variabel hitung_total pada awal perulangan dimulai, dan selama proses perulangan berjalan variabel hitung_total akan di tambah 1 setiap 1 perulangan berjalan.
Di bagian 12: 
Jika variabel hitung_kepala isinya tidak lebih kecil daripada 3 dan variabel_total tidak lebih kecil daripada 100 maka output akan menghasilkan boolean True dan bagian 13 tidak akan di eksekusi maka perulangan akan terus berjalan. Dan jika variabel hitung_kepala isinya sudah sampai 3 dan variabel isi hitung_totalnya masih dibawah 100, bagian ke 13 akan dijalankan maka output akan mencetak (Muncul kepala 3 kali berturut-turut.) Tetapi jika hitung_kepala isinya sudah sampai 3 dan variabel isi hitung_totalnya diatas 100, bagian ke 13 akan dijalankan tetapi output akan mencetak (Muncul kepala (1 atau 2) kali berturut-turut.) karena jumlah totalnya sudah sampai 100.
Semoga membantu ^_^
    
            ianfreecs 
            272
            10
            
            penanya
            
             ·
            7 tahun, 10 bulan yang lalu
            ·
            0 jempol
            
        
    
    Terimakasih coder ZihxS atas penjelasannya.
berarti kalau saya ubah baris:
  12) if not (hitung_kepala < 3 and hitung_total < 100):
    13) break
menjadi:
  12) if hitung_kepala >= 3 or hitung_total >= 100:
    13) break
Akan sama kah fungsinya?
Terimakasih =)
    
            ZihxS 
            300
            816
            
             ·
            7 tahun, 10 bulan yang lalu
            ·
            1 jempol
            
        
    
    Sama sama @ianfreecs, Tentu akan berbeda fungsinya ^_^
            ayato 
            136
            0
            
             ·
            7 tahun, 10 bulan yang lalu
            ·
            0 jempol
            
        
    
    kenapa if putar: tidak ditulis if putar == 1: saja?
            ZihxS 
            300
            816
            
             ·
            7 tahun, 10 bulan yang lalu
            ·
            1 jempol
            
        
    
    Hai coder ayato, Lebih cepat lebih baik :D
            ayato 
            136
            0
            
             ·
            7 tahun, 7 bulan yang lalu
            ·
            0 jempol
            
        
    
    jadi kalo gak ada pembandingnya otomatis nilai pembandingnya itu = 1 atau True ya?. True dan 1 itu sama ya?