使用String而不是Try / Except可以防止崩溃 - 如何?

时间:2016-10-10 21:43:13

标签: string python-3.x try-except

我正在编写一份关于大学作业的风寒指数的代码。 教授希望我们防止代码在用户输入空格或字母时崩溃,而不使用Try / Except Blocks。 (他只引用字符串方法。)

而不是崩溃它应该输出错误信息,例如。 ("无效输入,仅数字和#34;)

我尝试使用string.isdigit和string.isnumeric,但它不接受负度作为整数。

有什么建议吗? (以下代码) 另一个" if"陈述工作?

This is the code so far.

2 个答案:

答案 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():