实验四 付子安 202183820035
1,第一个:sum函数未创建,在内建函数作用域中只能读不能改变
第二个:sum被赋予全局变量42
第三个:sum被赋予局部变量n+1
第四个;改变sum的全局变量为inc(7)+inc(7)
2,在line33后加入显示
在line38后加显示
python内置函数sorted()中,参数reverse的传递方式是必须使用关键字传递
def func(a, b, c, /, *, d, e, f): return( [a,b,c,d,e,f] ) print(func(1,2,3,d=4,e=5,f=6))

3
被打印出来
4
def list_generator(x,y,z=1): list1=[] while x<y: list1.append(x) x=x+z return list1 list1 = list_generator(-5, 5) print(list1) list2 = list_generator(-5, 5, 2) print(list2) list3 = list_generator(1, 5, 0.5) print(list3)

5
def is_prime(n): if n==2: return True else: a=2 for i in range(2,n): if n%i==0: return False else: a=a+1 if a==n: return True list1=[] list2=[] for i in range(1,21): if is_prime(i)==True: list1.append(i) elif is_prime(i)==False: list2.append(i) for i in range(len(list2)): z=1 x=0 y=0 while z!=0: if int(list2[i])==int(list1[x])+int(list1[y]): print(list2[i],'=',list1[x],'+',list1[y]) z=0 else: y=y+1 if y==7: x=x+1 y=x

6
z=0 x=str(input('输入英文文本:')) for i in range(len(x)): if 128>ord(x[i])+5>122 or 96>ord(x[i])+5>90: a=ord(x[i])-21 z=z+1 elif 65<=ord(x[i])<=85 or 97<=ord(x[i])+5<=117: a=ord(x[i])+5 z=z+1 else: a=ord(x[i]) z=z+1 if z==1: print('编码后的文本',end='') print(chr(a),end='') print() print('对编码后的文本解码',x)
7
def collatz(n): list1=[] while n!=1: if n%2==1: list1.append(n) n=n*3+1 elif n%2==0: list1.append(n) n=n/2 if n==1: list1.append(n) return list1 y=input() z=y try: z==int(y) except: print('must be a positive integer') else: n=int(y) print(collatz(n))

实验总结'
加强了对构建函数的理解,学会了自定义默认值,对变量的范围,以及传递方式有了更加深刻的印象,练习了try except 函数,补全了学习中的漏洞,

浙公网安备 33010602011771号