带inpu的mersene

2024-05-14 23:46:01 发布

您现在位置:Python中文网/ 问答频道 /正文

有人能解释一下为什么我会收到错误信息和/或如何修复它吗?你知道吗

def mersenne(n):
    return (2**n-1)

print('Enter a number')
numberOne = input()
mersenne(numberOne)
print('Enter a number')
numberTwo = input()
mersenne(numberTwo)
print('Enter a number')
numberThree = input()
mersenne(numberThree)
print('Your Mersenne numbers are ' + numberOne + ', ' + numberTwo + ', ' + numberThree + '.')

我在空闲时收到的错误消息是

TypeError: unsupported operand type(s) for ** or pow(): 'int' and 'str'

Tags: numberinputyourreturndefareprintenter
3条回答

将输入强制转换为int,并将mersenne的返回值赋给一个变量:

def mersenne(n):
    return (2**n-1)

print('Enter a number')
numberOne = int(input())
mersenneOne = mersenne(numberOne)
print('Enter a number')
numberTwo = int(input())
mersenneTwo = mersenne(numberTwo)
print('Enter a number')
numberThree = int(input())
mersenneThree = mersenne(numberThree)
print('Your Mersenne numbers are ', mersenneOne, ', ', mersenneTwo, ', ', mersenneThree, '.', sep='')

也不能用+将整数连接到字符串。(这不是JavaScript)。上面的代码在python3中使用print函数。如果您使用的是Python 2,则始终可以回溯到str

print('Your Mersenne numbers are ' + str(mersenneOne) + ', ' + str(mersenneTwo) + ', ' + str(mersenneThree) + '.')

您需要像这样强制转换输入:int(input("Enter a number: "))

你得把输入从字符串转换成整数。您可以通过以下任一方法来实现:

numberOne = int(input())

它会自动使输入成为整数或:

return (2**int(n)-1)

在运行函数时将输入转换为数字。也可以使用float()和/或raw_input()。只需记住将输入更改为整数或浮点数!我希望这对你有帮助!

不使用函数return行中的int,您可以使用:

print('Your Mersenne numbers are ' + int(numberOne) + ', ' + int(numberTwo) + ', ' + int(numberThree) + '.')

相关问题 更多 >

    热门问题