/:' str'不支持的操作数类型和' int'但不同

时间:2018-02-20 01:22:39

标签: python

我做了一个随机的回文生成器。程序计算set char限制的可能回答数,使用char限制计算它,使用math.ceil函数计算英语字母。我遇到问题的部分如下:

import math
maximum = input('Max length?')
for i in range (math.ceil(maximum / 2)):        
    power = power * 26    

maximum是包含set char限制的变量。我使用这个脚本是因为Python不支持LaTEX形式的等式。

但是,每当我运行此脚本时,都会出现此错误:

for i in range (math.ceil(maximum / 2)):
TypeError: unsupported operand type(s) for /: 'str' and 'int'        

我已尝试将int()函数用作int(math.ceil(maximum / 2)),但它将其作为标准下拉窗口将其推回到SyntaxError。

我的问题是什么? 谢谢!

1 个答案:

答案 0 :(得分:2)

你是如此接近:)在该行上使用int()的正确轨道上,只是确定了错误的变量。

在Python 3中,input()默认返回str。错误消息清楚地表明错误发生在/运算符上,这是因为变量maximum是str(因为另一个参数是int)。不能将str除以int。

您可以通过

向自己证明这一点

type(input('some input'))

>>> <class 'str'>

要修复,请将maximum强制转换为int():

for i in range (math.ceil(int(maximum) / 2)):

或编辑输入行:

maximum = int(input('Max length?'))