变量与数字相乘遇到问题
我想让我的代码更简洁,同时增加一些功能,但现在运行得不太对。
这是我的代码(大致上):
def times4():
number = droid.dialogGetInput('Input', 'Enter a number between 1 and 10').result
number4 = number * 4
if number == '1':
droid.dialogCreateAlert(number,number + ' * 4 =' + number4)
droid.dialogSetPositiveButtonText('Ok')
droid.dialogShow()
droid.dialogGetResponse()
然后我得到了这个:
1,1 * 4 = 1111
而我想要的是这个:
1,1 * 4 = 4
7 个回答
2
问题在于,当用户输入一个数字(或者其他任何东西)时,这个输入会被当作字符串来存储。所以,当你获取用户的输入时,你得到的不是数字 1
,而是字符串 '1'
。
>>> '1' * 4
'1111'
>>> 1 * 4
4
解决办法是把
number = droid.dialogGetInput('Input', 'Enter a number between 1 and 10').result
改成
number = int(droid.dialogGetInput('Input', 'Enter a number between 1 and 10').result)
谢谢
3
你的变量“number”是一个字符串,而不是整数。所以它在进行的是“字符串乘法”。试着把“number”转换成整数或浮点数。
number = int (number)
number = float (number)
6
你想要的是:
number = int(number)
现在,'number' 是一个字符串(也就是说,它是 '1' 而不是 1),所以把它乘以四自然就会得到 '1111'。使用 int() 函数可以把这个字符串转换成整数形式。