Python giriş kontrol döngüsü

0

Soru

Python acemi burada. Kullanıcı girişi denetimi uygulama. 1 İle 10 arasında bir tam sayı dışında bir şey kullanılırsa, kullanıcı giriş döngüsünü en başa döndürmeye çalışıyorum. Saatlerce uğraştım, Try ve Except komutlarını kullanmayı denedim ama doğru yapamadım. Neyi yanlış yapıyorum? Teşekkür ederim.

Düzenlemek: Herkese yardımlarınız için çok teşekkür ederim, ancak sorun hala çözülmedi (ama çok yakın!) Tam sayı dışında bir şey yazılırsa başa nasıl dönüleceğini anlamaya çalışıyorum. Agent Biscuit (yukarıda) kayan sayılar için harika bir cevap verdi, ancak yazılan herhangi bir kelime veya harf hala bir hata üretiyor. Rastgele bir şey (1 ile 10 arasındaki tam sayılar hariç) yazıldığında nasıl döngü yapılacağını anlamaya çalışıyorum. Yukarıdaki örneklerin hiçbiri corrcct sonuçları üretmedi. Yardımlarınız için teşekkür ederiz

while True:
    print("Enter a number between 1 and 10")
    number = int(input())
    if (number > 0) and (number < 10):
        print("Thank you, the end.")
        break
    else number != (> 0 and < 10):
        print("It has to be a whole number between 1 and 10.")
        print("Please try again:")
controls input loops python
2021-11-15 08:25:06
3
0

Bazı problemler tespit ettim.

İlk olarak, kullandığınız giriş deyimi, bir float değeri girilirse yalnızca bir hata oluşturur, çünkü int başlangıçta, girişin tüm öğelerinin bir sayı olmasını gerektirir ve . bu bir sayı değil.

İkincisi, diğer ifadeniz. else sadece olduğu gibi kaldı else: ve daha sonra herhangi bir argüman veya parametre almaz.

Şimdi, numaranın tam olup olmadığını nasıl kontrol edebilirim? Bunu dene:

while True:
    print("Enter a number between 1 and 10")
    number = float(input())
    if (number > 0) and (number < 10) and (round(number)==number):
        print("Thank you, the end.")
        break
    else:
        print("It has to be a whole number between 1 and 10.")
        print("Please try again:")

Bu, bir float değerini kabul eder, ancak yalnızca bir tam sayıya eşitse kabul eder, dolayısıyla (round(number)==number).

Umarım sorunuza cevap verir.

2021-11-15 08:32:00
0

Her şeyden önce, bir koşulda bir koşul kullanamazsınız. else açıklama. Ayrıca, kullanmanız gerekir or operatör yerine and koşullardan biri kabul edilebilirse.
Yani, kodunuzun böyle olması gerekiyor

while True:
    print("Enter a number between 1 and 10")
    number = int(input())
    if (number > 0) and (number < 10):
        print("Thank you, the end.")
        break
    elif number < 0 or number >10:
        print("It has to be a whole number between 1 and 10.")
        print("Please try again:")
2021-11-15 08:32:15
0

Beni yararlı bir bağlantıya yönlendirdiğiniz için ack'ye (yukarıda) teşekkürler. Başka bir konuyu inceleyerek çözümü buldum. Mükemmel bir kod olmayabilir, ancak 100 çalışıyor%:

while True:
    try:
        print("Enter a number between 1 and 10")
        number = float(input())
        if (number > 0) and (number < 10) and (round(number)==number):
            print("Thank you, the end.")
            break
        else:
            print("\n")
            print("It has to be a whole number between 1 and 10.")
            print("Please try again:")
            print("\n")
            continue
    except ValueError:
        print("It has to be a whole number between 1 and 10.")
        print("Please try again:")
        print("\n")
2021-11-16 06:21:03

Diğer dillerde

Bu sayfa diğer dillerde

Русский
..................................................................................................................
Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
हिन्दी
..................................................................................................................
Français
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
ไทย
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................