在编码方面,我是个初学者。我试图在python上运行一个以公里为单位(用户输入)并以英里(输出)返回的程序。我知道如何完成这个任务,但是我想通过使用if语句来检查用户是否输入了一个数字来挑战自己:
Kilometers = input("Please insert number of Kilometers: ")
if type(Kilometers) == int or float:
print("This is equivalent to", float(Kilometers)/1.609344, "Mile(s)")
else:
print("This is not a number")我知道,不管用户输入的是什么,都会被保存为字符串。但是,每当我运行代码时,程序总是尝试将输入转换为英里数。
我在if语句中指定,类型必须等于浮点或int,所以在我将第一行更改为:
Kilometers = float(input("Please insert number of Kilometers: "))或
Kilometers = int(input("Please insert number of Kilometers: "))发布于 2022-02-01 22:59:17
在用Python编写if语句时,必须完全重写每个条件。例如,您可以编写if type(Kilometers) == int or type(Kilometers) == float而不是if type(Kilometers) == int or float。代码中另一件重要的事情是,如果有人输入5.5,您将期望一个浮点值,但是Python将其解释为一个字符串。为了避免这种情况,可以使用以下try/except子句:
Kilometers = input("Please insert number of Kilometers: ")
try:
Kilometers = float(Kilometers)
print("This is equivalent to", Kilometers/1.609344, "Mile(s)")
except ValueError:
print("This is not a number")这是在尝试将Kilometers设置为浮点数类型,如果用户输入一个不能解释为浮点数的字符串,它将导致一个ValueError,然后运行except中的代码。您可以在这里找到关于try/here子句的更多信息:Python除了- W3Schools
我注意到的另一件事是,您应该根据标准命名约定命名变量,因此Kilometers应该是kilometers。您可以在这里找到更多关于命名约定的信息:PEP 8
https://stackoverflow.com/questions/70948462
复制相似问题