实验4
task 1.py
print(sum) sum=42 print(sum) def inc(n): sum=n+1 print(sum) return sum sum = inc(7) +inc(7) print(sum)

答:不是。
line1:内置
line3,line11:全局
line7:局部
task 2_2.py
list1= [1, 9, 8, 4] print(sorted(list1)) print(sorted(list1, reverse=True)) print(sorted(list1, True))

答:必须使用关键字传递。
task 2_3.py
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))

task 3.py
def solve(a, b, c): ''' 求解一元二次方程, 返回方程的两个根 :para: a,b,c: int 方程系数 :return: tuple ''' delta = b*b-4*a*c delta_sqrt = abs(delta)**0.5 p1=-b/2/a; p2=delta_sqrt/2/a if delta>=0: root1 = p1+p2 root2 = p1-p2 else: root1 = complex(p1, p2) root2 = complex(p1, -p2) return root1, root2 print(solve.__doc__) while True: try: a,b,c=eval(input('Enter eqution coefficient: ')) if a==0: raise except: print('invalid input, or, a is zero') break else: root1, root2=solve(a, b, c) print(f'root1 = {root1:.2f}, root2 = {root2:.2f}') print()

答:无法打印出来。
task 4.py
def list_generator(begin,end,step=1): x = [] i = begin while i >= begin and i<= end: x.append(i) i += step return x list1=list_generator(-5, 5) print(list1) list2=list_generator(-5, 5, 2) print(list2) list3=list_generator(1, 5, 0.5) print(list3)

task 5.py
def is_prime(n): if n < 2: return False for i in range(2,int(n**0.5)+1): if n % i == 0: return False return True y=[i for i in range(21)] for x in y[::2]: for a in range(0,20): if is_prime(a) == True: if is_prime(x-a)==True: print(f'{x}={a}+{x-a}') break else: a+=1 else: a+=1

task 6.py
def encoder(z): a = list(z) i = 0 while i < len(z): x = ord(a[i]) if 65 <= x <= 85 or 97 <= x <= 117: y = chr(x + 5) elif 85 < x <= 90 or 117 < x <= 122: y = chr(x - 21) else: y = chr(x) a[i]=y i += 1 return ''.join(a) def decoder(z): a = list(z) i = 0 while i < len(z): x = ord(a[i]) if 70 <= x <= 90 or 102 <= x <= 122: y = chr(x - 5) elif 65 <= x < 70 or 97 <= x < 102: y = chr(x + 21) else: y = chr(x) a[i]=y i += 1 return ''.join(a) z = input('输入英文文本:') print(f'''编码后的文本:{encoder(z)} 对编码后的文本解码:{decoder(encoder(z))}''')

task 7.py
def Collatz(n): if n % 2 == 0 and n > 0: return int(n / 2) if n % 2 != 0 and n > 0: return int(3 * n + 1) x = [] a = int(input('Enter a positive integer: ')) while True: try: if a != 1: x.append(a) a = Collatz(a) else: x.append(a) break except: print('Error : must be a positive integer') break print(x)






浙公网安备 33010602011771号