2017-09-13 34 views
0

這個問題沒有被問到與Python 3.6有關。 我需要一個解決方案來重新提示一系列輸入問題中的特定用戶輸入問題,如果在這種情況下數據是以其他任何形式給出的,而不是整數或浮點數。如何在Python 3.6中給出不正確的數據類型後重新提示用戶輸入

假設他們爲第一個問題輸入了正確的浮點數據,但是可以說在第二個問題中輸入了一個字符串字符。輸出「ValueError:無法將字符串轉換爲float:」。

有沒有一種方法使用循環或其他方法來重新提示SECOND輸入問題,他們沒有把整數/浮點數據?此外,您是否可以僅提示第二個問題,而不必重新開始並重新提示第一個問題?

counter = 0 
counter += float(input("What is number 1?")) 
counter += float(input("What is number 2?")) 
counter += float(input("What is number 3?")) 
print(counter) 

編輯:我看過含有9個回答類似於所寄物品,但其中不涉及多個輸入的問題一個接一個。所提供的答案是有幫助的,但我仍然不完全知道如何在輸入不正確的數據類型後重新提示第2個或第3個問題。總結:我想程序重新提示失敗,而不是讓用戶不得不開始在討論的問題1.

+0

到的答案你已經發現的問題仍然是有效的python 3.6 – roganjosh

+0

我編輯我的原始問題更清晰。 –

+0

用於重新提示一個問題的構造可以根據需要多次重複,只要您希望有多少個問題。你需要在'while'循環中有問題,並且在循環中包含'try' /'except'以包裝'input',並且在輸入正確答案時以某種方式打破'while'循環。 100%你需要的是重複的,你只需要推斷它到你的單一用例。換句話說,不要在一個'while'塊中擁有所有'輸入'並且你已經設置好了。 – roganjosh

回答

0

這樣的僞代碼的東西會工作:

for q in questions: 
    while True: 
     ask_question 
     if question_result_validated: 
      break 
相關問題