2016-09-25 87 views
-1

我想允許用戶使用前提(支持你的論點的句子)和結論來構建一個參數。如果用戶想要在第一個房屋之後添加額外的房屋,我希望該計劃提出一個問題(是/否)。如果是 - >房屋:____,如果不是 - >結論:____。問題是,我可以爲附加的前提問題(或任何其他問題)寫入否,它會採取這種輸入,並建立另一個前提。我正確使用while循環中的isalpha()方法(Python)嗎?

非常感謝您的幫助!

print("Welcome to the argument-validity test!")  

def premises_conclusion(): 

    premises_1 = raw_input("Premises: ") 
    premises_qstn = raw_input("Would you like an additional premises(yes/no)? ") 
    additional_premises = raw_input("Premises: ") 

    while premises_qstn.isalpha(): 

     additional_premises = raw_input("Premises: ") 

     if premises_qstn == 'yes': 
      additional_premises = raw_input("Premises: ") 

     elif premises_qstn == "no": 
      break 

     else: 
      print("Please enter yes or no.") 

    conclusion = input("Conclusion: ") 

premises_conclusion() 




# When i use additional_premises in line 7, the while statement asks the additional 
# premises even if i say 'no'. 

# When i delete additional_premises in line 7, the while statement only skips 
# to the conclusion (acts like i said no for yes). No matter what I say it 
# skips to the conclusion. 
+0

如果你的循環的原因是反覆查詢用戶,直到他們給出一個有效的響應,看看這個SO q&a,[詢問用戶輸入,直到他們給出有效的響應](http:// stackoverflow。 COM /問題/ 23294658 /要價最用戶的輸入,直到 - 他們放棄的一個有效響應)。除了驗證用戶的響應外,您應該從循環中刪除所有內容。 – wwii

回答

1

這些線條看起來有問題的:

premises_qstn = raw_input("Would you like an additional premises(yes/no)? ") 
additional_premises = raw_input("Premises: ") 

它會詢問是否要增設的處所,但立即更不管什麼要求前不檢查輸入(premises_qstn)。

然後,while循環內的第一行再次請求,但是elif premises_qstn == "no":的斷環條件仍未被檢查。

+0

哎呀,這是一個錯誤,我忘了檢查,對不起,重複additional_premises。不過謝謝 –