python程序填空试题求解答

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

# 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


# 2

def Fun(x, y, z):
    print(x + y + z)


d = dict(x=1, y=2, z=3)
Fun(**d)

3

# 3

n = eval(input())
i, rlt = 1, 1
while i <= n:
    rlt *= i
    i += 1
print(rlt)

4

# 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()

输出结果为:

img


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=' ')