wcyear = 2000
def worldcup():
global wcyear
for i in wcyear:
wcyear = wcyear+4
print wcyear
print 'world cup year: ',wcyear
worldcup()
print 'Out of function wc year: ',wcyear
错误我得到的是:TypeError: 'int' object is not iterable
循环中不支持全局变量吗?
答案 0 :(得分:1)
你的wcyear变量是一个整数,它不能被for循环迭代。取而代之的是你可以使用以下逻辑:
for i in range(0,wcyear):
如果你需要从0开始,你可以使用范围(1,wcyear)。
答案 1 :(得分:0)
支持全局变量。要使用for
循环,您需要迭代 over iterable 对象。
在你的情况下,wcyear 一个int 。 int不可迭代。
iterable: 能够一次返回其成员的对象。迭代的示例包括所有序列类型(例如list,str和tuple)和一些非序列类型(如dict和file)以及使用 iter ()或定义的任何类的对象getitem ()方法。 Iterables可用于for循环以及需要序列的许多其他地方(zip(),map(),...)。
如果您的全局变量是一个列表,例如wcyear = [2000]
或元组wcyear = (2000,)
,那么它将起作用。