Python 3.x 类型错误:';int';对象在python中是不可编辑的错误
我试图制作一个程序,计算元音的数量,假设Python 3.x 类型错误:';int';对象在python中是不可编辑的错误,python-3.x,Python 3.x,我试图制作一个程序,计算元音的数量,假设s是一个预定义的字符串。但我有一个错误: “int”对象在python中是不可编辑的错误 len()在您的案例中,返回int类型作为字符串s的长度。 按照@Patrick Artner的建议,对s中的i使用:。 或者,您可以使用 counter = 0 for i in len(s): if i in ('a','e','i','o','u'): counter += 1 print("Number of vowels:&
s
是一个预定义的字符串。但我有一个错误:
“int”对象在python中是不可编辑的错误
len()
在您的案例中,返回int类型作为字符串s
的长度。
按照@Patrick Artner的建议,对s中的i使用:
。
或者,您可以使用
counter = 0
for i in len(s):
if i in ('a','e','i','o','u'):
counter += 1
print("Number of vowels:" + str(counter))
我会让我的答案比应该的长一点 如果循环中的操作不需要索引的数值表示形式
i
,只需迭代字符串即可:
for i in range(len(s)):
curChar=s[i]
如果您只需要数字表示法i
,例如,您有一个“字符串”,但您需要[0,1,2,3,4,5],则可以执行以下操作:
for i in s:
do_something()
for i in range(len(s)):
do_something(i)
让我们把它分解一下s
是一个str()
len
以整数值形式返回对象的长度,例如,len('string')=6
。您不能迭代整数,因为python的for
实际上是一个foreach
。所以您需要一个iterable对象,它是range(len(s))
如果同时需要符号和索引,可以执行以下操作:
for i in s:
do_something()
for i in range(len(s)):
do_something(i)
例如,以下代码片段:
for i, symbol in enumerate(s):
do_something(i,symbol)
将导致:
for i, symbol in enumerate('string'):
print(i,symbol)
对于s中的i
而不是对于s中的i
使用对于s中的i
而不是对于s中的i
——后者意味着对于i
但是你的字符串很长而且没有意义。所以:如果你想偷看,请查看解决方案。Also2:如果我在“aeiou”中:
也可以工作-我是一个字符,不是一个int,所以可以称之为c
;)