如何让用户输入 int 而不是 float?
How do I get the user to input an int rather than a float?
我正在编写一个程序,在控制台中从用户那里获取一个值,然后将其转换为 int
,如下所示:
num = int(input("Enter a number: "))
我需要我的程序只与 ints
一起工作。这可以将输入到控制台的实际 int 转换为我可以在程序中使用的 int,但是如果用户输入 float,比如 3.1,那么它不会通过截断或四舍五入等方式转换为 int。
如何让用户输入整数而不是浮点数?或者如何将浮点输入转换为 int?
使用abs()
它returns给定数字的绝对值
您可以使用 try catch 块来确保它们只给您 int
:
while True:
try:
num = int(input("Enter a number: "))
#do something with num and then break out of the while loop with break
except ValueError:
print("That was not a number, please do not use decimals!")
当 ValueError(当它无法转换为 int)被排除在外时,它会返回请求一个数字,一旦你得到你的数字,你就可以用这个数字做一些事情,或者跳出循环然后在其他地方使用 num .
您可以使用 try
except
来测试用户输入是否为整数。示例代码:
while True:
try:
value=int(input("Type a number:"))
break
except ValueError:
print("This is not a whole number.")
如果用户输入的内容不是 int
。
,此代码将循环回到开头
因此像“3.1”这样的字符串的 int() 当然不起作用。但是您可以将输入转换为浮点数,然后转换为 int:
num = int(float(input("Enter a number: ")))
它总是向下取整。如果你想让它四舍五入 if >= .5:
num = float(input("Enter a number: "))
num = round(num, 0)
num = int(num)
您可以简单地使用 eval python 内置函数。
num = int(eval(input("Enter a number: ")))
。
对于将字符串转换为 python 代码和计算数学表达式,主要使用 eval 函数。例如,eval("2 + 3")
会给你 5。但是,如果你写 "2 + 3"
,那么你将只得到 '2 + 3'
作为字符串值。
尝试:
num = int(float(input("Enter number: ")))
并且浮点数将四舍五入为整数。
如果由于任何原因无法转换数字,您还可以添加一个 try...except 方法向用户提供错误:
while True:
try:
num = int(float(input("Enter number: ")))
print(num)
break
except ValueError:
print("This is not a whole number")
我正在编写一个程序,在控制台中从用户那里获取一个值,然后将其转换为 int
,如下所示:
num = int(input("Enter a number: "))
我需要我的程序只与 ints
一起工作。这可以将输入到控制台的实际 int 转换为我可以在程序中使用的 int,但是如果用户输入 float,比如 3.1,那么它不会通过截断或四舍五入等方式转换为 int。
如何让用户输入整数而不是浮点数?或者如何将浮点输入转换为 int?
使用abs()
它returns给定数字的绝对值
您可以使用 try catch 块来确保它们只给您 int
:
while True:
try:
num = int(input("Enter a number: "))
#do something with num and then break out of the while loop with break
except ValueError:
print("That was not a number, please do not use decimals!")
当 ValueError(当它无法转换为 int)被排除在外时,它会返回请求一个数字,一旦你得到你的数字,你就可以用这个数字做一些事情,或者跳出循环然后在其他地方使用 num .
您可以使用 try
except
来测试用户输入是否为整数。示例代码:
while True:
try:
value=int(input("Type a number:"))
break
except ValueError:
print("This is not a whole number.")
如果用户输入的内容不是 int
。
因此像“3.1”这样的字符串的 int() 当然不起作用。但是您可以将输入转换为浮点数,然后转换为 int:
num = int(float(input("Enter a number: ")))
它总是向下取整。如果你想让它四舍五入 if >= .5:
num = float(input("Enter a number: "))
num = round(num, 0)
num = int(num)
您可以简单地使用 eval python 内置函数。 num = int(eval(input("Enter a number: ")))
。
对于将字符串转换为 python 代码和计算数学表达式,主要使用 eval 函数。例如,eval("2 + 3")
会给你 5。但是,如果你写 "2 + 3"
,那么你将只得到 '2 + 3'
作为字符串值。
尝试:
num = int(float(input("Enter number: ")))
并且浮点数将四舍五入为整数。 如果由于任何原因无法转换数字,您还可以添加一个 try...except 方法向用户提供错误:
while True:
try:
num = int(float(input("Enter number: ")))
print(num)
break
except ValueError:
print("This is not a whole number")