1
程序填空-迭代器(5分)
题目内容:
请在(1)处填上合适的代码。
class seq:
n=0
def (1)(self):
self.n+=1
return self.n
def __iter__(self):
return self
if __name__=='__main__':
s=seq()
for i in range(5):
print(next(s),end=' ')
输出样例:
1 2 3 4 5
2.程序填空-拆分参数列表(5分)
题目内容:
请在(1)处填上合适的代码
def Fun(x,y,z):
print(x+y+z)
d=dict(x=1,y=2,z=3)
Fun((1)d)
输出样例:
6
3.程序改错题-while循环和索引(5分)
题目内容:
请改正下面程序中存在的错误。
n=eval(input())
i,rlt=1,0
while i<=n:
rlt*=i
i+=1
print(rlt)
输入样例:
3
输出样例:
6
输入样例:
5
输出样例:
120
4.程序改错题-全局变量和global关键字(5分)
题目内容:
请改正程序中存在的错误。
def f1():
print(x)
def f2():
x=50
print(x)
x=10
f2()
f1()
输出样例:
50
50
第一题:
def next(self): # (1)
第二题:
def Fun(x,y,z):
print(x+y+z)
d=dict(x=1,y=2,z=3)
Fun(**d) # (1)
第三题:
n=eval(input())
i,rlt=1,1 # rlt初始化为1
while i<=n:
rlt*=i
i+=1
print(rlt)
第四题:
def f1():
print(x)
def f2():
global x # 声明x为全局变量
x=50
print(x)
x=10
f2()
f1()
答案如下: 粘贴复制即可:
# 1
class seq:
n = 0
def __next__(self):
self.n += 1
return self.n
def __iter__(self):
return self
if __name__ == '__main__':
s = seq()
for i in range(5):
print(next(s), end=' ')
# 2
def Fun(x, y, z):
print(x + y + z)
d = dict(x=1, y=2, z=3)
Fun(**d)
# 3
n = eval(input())
i, rlt = 1, 1
while i <= n:
rlt *= i
i += 1
print(rlt)
# 4
def f1():
print(x)
def f2():
global x
x = 50
print(x)
x = 10
f2()
f1()
第一题是:
def __next__(self):
实现迭代器就看有没有这两个方法
第四个是缩进的:
def f1():
print(x)
def f2():
global x # 声明x为全局变量
x = 50
print(x)
x = 10
f2()
f1()
输出结果为:
1
# 1
class seq:
n = 0
def __next__(self):
self.n += 1
return self.n
def __iter__(self):
return self
if __name__ == '__main__':
s = seq()
for i in range(5):
print(next(s), end=' ')