2016-04-04 20 views
0

cevaplarınız için teşekkür ederim, o zamandan beri biraz değişti ama sonsuz bir döngü elde istekli. Kullanıcı 1-5 arası seçeneği dahil ettiğinde, bu işlem devam eder, ancak kullanıcı 6 veya daha fazla girerse, geçerli bir seçenek (1-5) sormaya devam eder, ancak bu çalıştığında, 1-5 arası bir seçenek verdiğimde bile geçersiz olduğunu söyleyip duruyor.kullanıcı girişi ile fonksiyonları çağırıyor ve döngüler

def get_user_input(): 
    user_input = int(input("Enter your choice: ")) 
    while user_input > 5: 
     print("Invalid menu option.") 
     int(input("Please try again: ")) 
    if user_input <= 5: 
     return user_input 
+0

Kodunuzu biçimlendirebilir misiniz? Bu uygun bir python değil ve koşmuyor. – LtWorf

+0

Lütfen girintinizi düzeltin, yapmaya çalıştığınızı ve ne tür bir hata yaptığınızı açıklayın. İpuçları için [soru] 'ya bakın. – tzaman

+0

Cevabınız için teşekkür ederim, o zamandan beri biraz değiştirdim ama sonsuz bir döngü elde etmeye istekli oldum. Kullanıcı 1-5 arası seçeneği dahil ettiğinde, bu işlem devam eder, ancak kullanıcı 6 veya daha fazla girerse, geçerli bir seçenek (1-5) sormaya devam eder, ancak bu çalıştığında, 1-5 arası bir seçenek verdiğimde bile geçersiz olduğunu söyleyip duruyor. def get_user_input(): user_input = int (giriş ("Seçiminizi girin: ")) user_input> 5 ise: baskı (". Geçersiz menü seçeneği") int (giriş ("Lütfen tekrar deneyin: ")) Eğer user_input <= 5: geri dön Kullanıcı_kimliği –

cevap

0

Döngüsünüzde, yeni bir kullanıcı girdisi istiyor, ancak bununla hiçbir şey yapmıyorsunuz.

def get_user_input(): 
    user_input = int(input("Enter your choice: ")) 
    while user_input > 5: 
     print("Invalid menu option.") 
     user_input = int(input("Please try again: ")) ### add the assignment on this line! 
    return user_input ### no if needed here, return unconditionally 

Ben de döngü sonra gelen if hattını kaldırdık: Eğer döngü durumunda test ediliyor sizin user_input değişkene yeni girdi atamanız gerekir. Döngü başarılı bir şekilde çıkardıysanız, giriş zaten 5'dan daha az bilinir, dolayısıyla tekrar kontrol etmeniz gerekmez.