[英]Python Input Validation With Multiple Conditions: Correct Syntax?
我創建了一個簡單的程序,提示用戶猜測 1 到 20 之間的數字。最初,我的程序只是提示用戶輸入是太高還是太低。 后來我添加了一個 function,當用戶的輸入超出范圍(低於 1 或高於 20)時會提示用戶。 該程序運行良好,但是我想知道我的格式和語法是“正確”還是“正確”。
magic_number = 12
# get input from user
user_number = int(input('What is the magic number between 1 and 20 ? '))
# attempting to create an efficient while loop
while True:
if user_number < 12 and user_number >= 1:
# error message
print('Your number is too low. Please try again.')
# ask for input again
user_number = int(input('What is the magic number between 1 and 20 ? '))
elif user_number > 12 and user_number <= 20:
# error message
print('Your number is too high. Please try again.')
# ask for input again
user_number = int(input('What is the magic number between 1 and 20? '))
elif user_number < 1 or user_number > 20:
# error message
print('Your number is out of range. Please try again.')
# ask for input again
user_number = int(input('What is the magic number between 1 and 20? '))
elif user_number == magic_number:
print('Congratulations! You have guessed the magic number.')
break
如果您對格式化代碼的官方“Pythonic”方式感興趣,這就是 PEP8 規范的全部內容: https://www.python.org/dev/peps/pep-0008/ 。
查看您的代碼,我有一些建議可以使事情變得更清潔和更易於維護:
您可以做很多事情,但這里有一個示例,說明僅遵循這兩條評論可能會是什么樣子:
magic_number = 12
min_number = 1
max_number = 20
# attempting to create an efficient while loop
while True:
# get input from user
user_number = int(input('What is the magic number between {} and {} ? '.format(min_number, max_number)))
if user_number < magic_number and user_number >= min_number:
print('Your number is too low. Please try again.')
elif user_number > magic_number and user_number <= max_number:
print('Your number is too high. Please try again.')
elif user_number < min_number or user_number > max_number:
print('Your number is out of range. Please try again.')
elif user_number == magic_number:
print('Congratulations! You have guessed the magic number.')
break
也許將來要嘗試的一些事情可能是弄清楚如果用戶不輸入數字時如何處理,或者每次使用random
模塊生成不同的幻數而不是將其硬編碼為 12。
祝你好運,希望能有所幫助。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.