如何正确地写这个,以便任何非数字的输出都不能通过价格检查,所有打印出来的都是“非有效价格”。
目前,“非有效价格”部分正在更新到字典中。
name_input=input('OK. Please input the name of the person: ')
system_input=input('OK. Please input the favorite system: ')
line_input=input('OK. Please input the product line: ')
#
try:
price_input=price_check(input('OK. Please input the product price: '))
except ValueError:
print('Not a Valid Price')
products1={"id": str(int(products[-1]['id'])+1),
"name": name_input,
"system": system_input,
"line": line_input,
'price': price_input}
products.append(products1)
答案 0 :(得分:0)
def price_check(value):
if value.isdigit():
return value
else:
return False
然后是这样的:
price_input = false
while not price_input:
price_input = price_check(input('OK. Please input the product price: '))
if not price_input:
print('Invalid input')
products1={"id": str(int(products[-1]['id'])+1),
"name": name_input,
"system": system_input,
"line": line_input,
'price': price_input}
products.append(products1)
如果您不希望用户在字典中输入无效输入,这将有效。您可以轻松地自定义此项以使用try和excepts,但似乎您可能正在做作业,所以我会让您弄清楚。
如果您希望它只是打印“无效”'并且继续前进而不保存,然后你想做:
price_input = price_check(input('OK. Please input the product price: '))
if not price_input:
print('Invalid input')
else:
products1={"id": str(int(products[-1]['id'])+1),
"name": name_input,
"system": system_input,
"line": line_input,
'price': price_input}
products.append(products1)
答案 1 :(得分:0)
你没有显示方法price_check的代码但是你需要写这个来验证你读取整数
name_input=input('OK. Please input the name of the person: ')
system_input=input('OK. Please input the favorite system: ')
line_input=input('OK. Please input the product line: ')
#
try:
price_input=int(input('OK. Please input the product price: '))
except ValueError:
print('Not a Valid Price')
`
当您编写任何不是整数引发ValueError异常
的内容时