简单 Python 临时脚本
Simple Python Temp Script
我写了一个非常简单的临时脚本,它会提示用户输入并给出答案。正如您在下面看到的,我提示用户输入 1,2 或 3。1 是 fah 到 cel,2 是 cel 到 feh,3 退出程序。如果用户输入 1 或 2,另一个提示将要求他们输入他们想要转换的度数。此条目保存在变量中:
scale
我编写的函数应该将浮点数计算为正确的转换,并在打印正确的温度后循环回到主菜单。 try/except 语句中有一些逻辑会尝试将此输入转换为浮点数,如果不能,它将打印一个讨厌的克。当我 运行 这段代码时,一切似乎都工作正常,直到它到达函数调用 fahtoCel:
fc = fahtoCel(scale)
我很确定我的所有缩进都是正确的,并且研究了声明函数并在脚本中调用它们。我唯一的怀疑是我的函数调用在我的 try/except 语句中,也许范围不正确?我的代码:
def fahtoCel(number):
return(number - 32.0) * (5.0/9.0)
while True:
x = raw_input("""Please enter 1,2 or 3: """)
if x == "3":
exit(0)
if x == "1":
scale = raw_input("""Enter degrees in Fah: """)
try:
scale = float(scale)
fc = fahtoCel(scale)
except:
print("Invalid Entry")
continue
print("%.2f degrees fah equals %.2f degrees Cel" % (scale, fc))
if x == "2":
#Do the same for cel to fah#
continue
将执行转移到 while
循环的开头,因此无论 try
语句的结果如何,您永远不会到达 print
语句。您需要进一步缩进:
try:
scale = float(scale)
fc = fahtoCel(scale)
except Exception: # Don't use bare except! You don't want to catch KeyboardInterrupt, for example
print("Invalid entry")
continue
print("%.2f degrees fah equals %.2f degrees Cel" % (scale, fc))
不过,您的 try
陈述确实过于宽泛。您应该担心捕获的唯一例外是 float
可能引发的 ValueError
。
try:
scale = float(scale)
except ValueError:
print("Invalid entry")
continue
fc = fahtoCel(scale)
print("%.2f degrees fah equals %.2f degrees Cel" % (scale, fc))
我写了一个非常简单的临时脚本,它会提示用户输入并给出答案。正如您在下面看到的,我提示用户输入 1,2 或 3。1 是 fah 到 cel,2 是 cel 到 feh,3 退出程序。如果用户输入 1 或 2,另一个提示将要求他们输入他们想要转换的度数。此条目保存在变量中:
scale
我编写的函数应该将浮点数计算为正确的转换,并在打印正确的温度后循环回到主菜单。 try/except 语句中有一些逻辑会尝试将此输入转换为浮点数,如果不能,它将打印一个讨厌的克。当我 运行 这段代码时,一切似乎都工作正常,直到它到达函数调用 fahtoCel:
fc = fahtoCel(scale)
我很确定我的所有缩进都是正确的,并且研究了声明函数并在脚本中调用它们。我唯一的怀疑是我的函数调用在我的 try/except 语句中,也许范围不正确?我的代码:
def fahtoCel(number):
return(number - 32.0) * (5.0/9.0)
while True:
x = raw_input("""Please enter 1,2 or 3: """)
if x == "3":
exit(0)
if x == "1":
scale = raw_input("""Enter degrees in Fah: """)
try:
scale = float(scale)
fc = fahtoCel(scale)
except:
print("Invalid Entry")
continue
print("%.2f degrees fah equals %.2f degrees Cel" % (scale, fc))
if x == "2":
#Do the same for cel to fah#
continue
将执行转移到 while
循环的开头,因此无论 try
语句的结果如何,您永远不会到达 print
语句。您需要进一步缩进:
try:
scale = float(scale)
fc = fahtoCel(scale)
except Exception: # Don't use bare except! You don't want to catch KeyboardInterrupt, for example
print("Invalid entry")
continue
print("%.2f degrees fah equals %.2f degrees Cel" % (scale, fc))
不过,您的 try
陈述确实过于宽泛。您应该担心捕获的唯一例外是 float
可能引发的 ValueError
。
try:
scale = float(scale)
except ValueError:
print("Invalid entry")
continue
fc = fahtoCel(scale)
print("%.2f degrees fah equals %.2f degrees Cel" % (scale, fc))