为什么在下面的代码中使用x
和y
字符串而不是int?
(注意:在Python 2.x中使用raw_input()
。在Python 3.x中使用input()
。raw_input()
在Python 3.x中被重命名为input()
)
play = True
while play:
x = input("Enter a number: ")
y = input("Enter a number: ")
print(x + y)
print(x - y)
print(x * y)
print(x / y)
print(x % y)
if input("Play again? ") == "no":
play = False
对于一行中的多个整数,^{} 可能更好。
如果这个数字是已知的(如2个整数),可以使用
在Python 3.x中,
raw_input
被重命名为input
,Python 2.xinput
被删除。这意味着,就像Python 3.x中的} 总是返回一个字符串对象。
raw_input
,^{要解决此问题,需要通过将这些输入放入^{} 来显式地将它们转换为整数:
TLDR
input
函数接收的数据,但Python 2的input
函数计算(阅读下一节了解其含义)。input
函数。Python 2.x
有两个函数可以获取用户输入,分别称为^{} 和^{} 。它们之间的区别是,
raw_input
不计算数据,而是以字符串形式返回。但是,input
将计算您输入的内容,并返回计算结果。例如计算数据} 调用组成的
5 + 17
,结果为22
。当它计算表达式5 + 17
时,它检测到您正在添加两个数字,因此结果也将是相同的int
类型。因此,类型转换是免费的,并且22
作为input
的结果返回并存储在data
变量中。你可以把input
看作是由^{raw_input
。注意:在Python 2.x中使用
input
时应该小心。我在this answer中解释了为什么使用它时应该小心。但是,
raw_input
不计算输入,而是以字符串的形式返回。Python 3.x
Python 3.x的^{} 和Python 2.x的
raw_input
是相似的,并且raw_input
在python3.x中不可用解决方案
要回答您的问题,因为Python 3.x不计算和转换数据类型,您必须显式地转换为} ,如下所示
int
s,使用^{可以接受任意基数的数字,并使用
int
函数将其直接转换为基数10,如下所示第二个参数告诉输入的数字的基数,然后在内部理解并转换它。如果输入的数据是错误的,它将抛出一个
ValueError
。对于可以有小数部分的值,类型应该是
float
,而不是int
:除此之外,你的程序可以稍微改变一下,像这样
通过使用
break
和while True
,可以去掉play
变量。相关问题 更多 >
编程相关推荐