变量与数字相乘遇到问题

1 投票
7 回答
46714 浏览
提问于 2025-04-16 17:31

我想让我的代码更简洁,同时增加一些功能,但现在运行得不太对。

这是我的代码(大致上):

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() 函数可以把这个字符串转换成整数形式。

撰写回答