import time
name=input("Enter your name:")
currentTime = int(time.strftime('%H'))

if currentTime < 12 :
     print('Good morning,'+name)
elif currentTime > 12 :
     print('Good afternoon,'+name)
else :
     print('Good evening,'+name)

def main():
    import random
    guess: int = input('Enter a number the between 1 and 2 :')
    if guess <= "2":
        num: int = random.randint(1, 2)
        print("the number is ", num)
        if  num == guess:      #### this if statement is not working
            print('you won'
                  'your promote to level 2')
        else:
            print("You lost", ",Lets try again")
            repeat = input('Do you want to try again:')
            if repeat == "yes":
                main()
            else:
                print("Good bye")
                exit()
    else:
        print("the number you entered is grater than 5,Please enter a number between 1 and 2")
        main()

main()

Pernyataan if dalam kode ini tidak berfungsi (Saya telah menyoroti pernyataan if dalam kode) Tetapi pernyataan else berfungsi untuk kedua kondisi tersebut.

1
Yasindu Gamage 11 Mei 2021, 14:21

1 menjawab

Jawaban Terbaik

Dalam kode Anda guess bertipe str, baca dokumen masukan:

Fungsi kemudian membaca baris dari input, mengubahnya menjadi string (menghapus baris baru yang tertinggal), dan mengembalikannya

Saat melakukan guess: int, Anda menggunakan petunjuk ketik. Dokumen mengatakan:

Waktu proses Python tidak menerapkan fungsi dan jenis variabel anotasi. Mereka dapat digunakan oleh alat pihak ketiga seperti type checker, IDE, linter, dll.

Di if Anda, Anda mencoba membandingkan int dengan str. Jalankan ini di konsol Python untuk melihat:

print(1 == '1') # --> False
print(1 == 1) # --> True

Jadi yang perlu Anda lakukan adalah mengonversinya secara eksplisit ke int:

guess = int(input('Enter a number the between 1 and 2 :'))

Dan ubah if pertama menjadi:

if guess <= 2:
    ...

(menghapus tanda kutip di "2").

Dengan perubahan ini, pernyataan if Anda akan berfungsi.

2
Franco Morero 11 Mei 2021, 13:14