类型错误:不支持的操作数类型(一个或多个),用于DIV:“STR”和“INT” [线14]
问题描述:
我建立为一个谷歌foobar的该计数列表中的某个字符的量的函数,它创建这个错误,类型错误:不支持的操作数类型(一个或多个),用于DIV:“STR”和“INT” [线14]
TypeError: unsupported operand type(s) for div: 'str' and 'int' [line 14]
这是代码
def answer(s):
sl2 = []
ol = '10'
if(len(s) != 0):
if(len(s) > 200):
print("That is too long")
else:
s = " ".join(s[i:i+1] for i in range(0, len(s), 1))
sl = s.split()
sl_a = sl.count('a')
sl_b = sl.count('b')
sl_c = sl.count('c')
smallest_int = min(sl_a, sl_b, sl_c)
final_amount = ol/smallest_int #line 14 (the problem)
print(final_amount)
answer(raw_input('Describe the M&Ms'))
我不知道,如果这只是谷歌的foobar的编译器或我有限的知识蟒蛇。
答
的问题是,您要除以整型值STR类型值。转换ol
在除法运算使用它或ol设置为10
而非'10'
之前为int类型。
def answer(s):
sl2 = []
ol = 10
if(len(s) != 0):
if(len(s) > 200):
print("That is too long")
else:
s = " ".join(s[i:i+1] for i in range(0, len(s), 1))
sl = s.split()
sl_a = sl.count('a')
sl_b = sl.count('b')
sl_c = sl.count('c')
smallest_int = min(sl_a, sl_b, sl_c)
final_amount = ol/smallest_int #line 14 (the problem)
print(final_amount)
answer(raw_input('Describe the M&Ms'))
NOTE :-
顺便说一句,在JavaScript中,这个事情的作品,JavaScript就隐含使用它与除法运算之前将“10”至10。但是,python不会允许你这样做。
+1
另外值得一提的整个分工与浮子除法,即蟒2对比蟒3中,作为纪尧姆Jacquenot指出。 – imranal
答
的错误是由于你是企图分裂对抗整数的字符串。 使用int到01转换从字符串到int
final_amount = int(ol)/smallest_int
尝试改变3行至O1 = 10而不“”,在划分的字符串“10”到整数smallest_int – Skycc
用'/'操作者与Python2和Python3行为不同当心。 3/2 = 1与Python2和3/2 = 1.5与Python3 –
为什么不直接计数输入字符串中的字符? –