类型错误:不支持的操作数类型:'str' 和 'str

31 投票
5 回答
381481 浏览
提问于 2025-04-17 18:04
name = input('Enter name here:')
pyc = input('enter pyc :')
tpy = input('enter tpy:')
percent = (pyc / tpy) * 100;
print (percent)
input('press enter to quit')

每次我运行这个程序时,我都会得到这个结果。

TypeError: unsupported operand type(s) for /: 'str' and 'str'

我该怎么做才能把pyc除以tpy呢?

5 个回答

4

还有一个错误,就是关于正斜杠的问题。

if we get this : def get_x(r): return path/'train'/r['fname']
is the same as def get_x(r): return path + 'train' + r['fname']
19

你首先要学会看错误信息。它告诉你什么呢?比如说,你不能用除法运算符去处理两个字符串。

所以,你要问自己,为什么它们是字符串?怎么才能让它们变成不是字符串的东西?它们之所以是字符串,是因为所有输入都是以字符串的形式进行的。而要把它们变成不是字符串的东西,就需要进行转换。

将字符串转换为整数的一种方法是使用 int 函数。举个例子:

percent = (int(pyc) / int(tpy)) * 100
35

通过把它们变成整数来解决问题:

percent = (int(pyc) / int(tpy)) * 100;

在Python 3中,input()这个函数总是返回一个字符串。也就是说,不管你输入什么,它都会把你输入的内容当作文本来处理。这和Python 2不一样;在Python 2中,有个叫raw_input()的函数,它的功能和现在的input()是一样的,只不过名字换了。

撰写回答