Python 返回和返回类型错误:';int';对象是不可编辑的
我是Python新手。 下面是我为打印Python 返回和返回类型错误:';int';对象是不可编辑的,python,return,yield,Python,Return,Yield,我是Python新手。 下面是我为打印x^3 def f(n): for x in range(n): yield x**3 for x in f(5): print x 打印正确答案 def f(n): return [x**3 for x in range(n)] for x in f(5): print x 也可以打印正确的答案 def f(n): for x in range(n): return x**3 fo
x^3
def f(n):
for x in range(n):
yield x**3
for x in f(5):
print x
打印正确答案
def f(n):
return [x**3 for x in range(n)]
for x in f(5):
print x
也可以打印正确的答案
def f(n):
for x in range(n):
return x**3
for x in f(5):
print x
我有一个
TypeError: 'int' object is not iterable
那么第三段代码有什么问题呢
def f(n):
for x in range(n):
yield x**3
for x in f(5):
print x
使用
返回x**3
将返回一个int,该int不可编辑,因此不能与一起用于为函数f(n)编写的第三个代码:
实际上返回一个整数
正如错误所暗示的那样,这是不可接受的
测试这一点的一个简单方法是打开python shell
复制你的代码
def f(n):
for x in range(n):
return x**3
f(5)
输出:
0
0是不可数的。因此,错误消息
要使其工作,只需更改返回数组或任何iterable对象的方法
def f(n):
for x in range(n):
return [x**3]
f(5)
输出:
[0]
如果我理解你的意思,我想你这里有一些问题
(1) 当你在做某件事情的时候,没有理由使用循环
def cube(n):
return n**3
(2) 要打印输出,只需打印它,不需要循环
print cube(5)
(3) 如果要打印多维数据集列表
for x in xrange(5):
print cube(x)
(4) 你可能不想使用收益率,因为它似乎不是你想要的
def f(n):
for x in range(n):
return x**3
此函数返回整数而不是列表
f(5)将等于0^3(循环将在第一次迭代中退出),正如您所看到的,它是一个整数,并且
因此无法迭代。f(5)
为第三个函数返回一个整数f
返回一次整数(第一次迭代)(提醒调用返回将立即退出一个方法)其他两个函数返回一个i。迭代器和aⅡ。利斯特纳。这正是我想理解的,这是错误的。f(5)将等于0^3并返回0。是的,Vikash,你是对的,它将仅为0^3,因为在第一次迭代期间,循环将在获得返回后立即退出,我将根据你的反馈更改解决方案,谢谢你指出