我正在编写一份关于大学作业的风寒指数的代码。 教授希望我们防止代码在用户输入空格或字母时崩溃,而不使用Try / Except Blocks。 (他只引用字符串方法。)
而不是崩溃它应该输出错误信息,例如。 ("无效输入,仅数字和#34;)
我尝试使用string.isdigit和string.isnumeric,但它不接受负度作为整数。
有什么建议吗? (以下代码) 另一个" if"陈述工作?
答案 0 :(得分:1)
使用无限循环并检查一切是否正确。 只要出现错误,请使用continue语句。完成所有检查和转换后,请使用break语句。
import re
import sys
while True:
print("Temperature")
s = sys.stdin.readline().rstrip('\n')
if re.match("^-?[0-9]+(\\.[0-9]+)?$", s) is None:
print("Doesn't look like a number")
continue
if '.' in s:
print("Number will be truncated to integer.")
temp = int(float(s))
if not (-50 <= temp <= 5):
print("Out of range")
continue
break
答案 1 :(得分:1)
替换标点符号:
if temperature.replace('-','').replace('.','').isnumeric():