实验任务1
task1:
1 print(sum) 2 sum = 42 3 print(sum) 4 5 def inc(n): 6 sum = n + 1 7 print(sum) 8 return sum 9 10 sum = inc(7) + inc(7) 11 print(sum)
运行结果:

实验任务2
task2_1:
1 def func1(a, b, c, d, e, f): 2 return [a, b, c, d, e, f] 3 4 def func2(a, b, c, *, d, e, f): 5 return [a, b, c, d, e, f] 6 7 def func3(a, b, c, /, d, e, f): 8 return [a, b, c, d, e, f] 9 10 print(func1(1,9,2,0,5,3)) 11 print(func1(a=1, b=9, c=2, d=0, e=5, f=3)) 12 print(func1(1, 9, 2, f=3, d=0,e=5)) 13 14 print(func2(11, 99, 22, d=0, e=55, f=33)) 15 print(func2(a=11, b=99, c=22, d=0, e=555, f=333)) 16 17 print(func3(111, 999, 222, 0, 555, 333)) 18 print(func3(111, 999, 222, d=0, e=555, f=333))
运行结果:

task2_2:
1 list1 = [1, 9, 8, 4] 2 print(sorted(list1)) 3 print(sorted(list1, reverse=True)) 4 print(sorted(list1, True))
运行结果:

task3:
1 def func(a, b, c, /, *, d, e, f): 2 return( [a,b,c,d,e,f] ) 3 print(func(1,2,3, d=4, e=5, f=6))
运行结果:

实验任务3
task3:
1 def solve(a, b, c): 2 """文本实验""" 3 delta = b*b - 4*a*c 4 delta_sqrt = abs(delta)**0.5 5 p1 = -b/2/a 6 p2 = delta_sqrt/2/a 7 8 if delta >= 0: 9 root1 = p1 + p2 10 root2 = p1 - p2 11 else: 12 root1 = complex(p1, p2) 13 root2 = complex(p1 - p2) 14 15 return root1, root2 16 17 print(solve.__doc__) 18 while True: 19 try: 20 t = input('输入一元二次方程系数a b c,或者输入#结束:') 21 if t == '#': 22 print('计算结束') 23 break 24 a, b, c = map(float, t.split()) 25 if a == 0: 26 raise ValueError('a = 0,不是一元二次方程') 27 except ValueError as e: 28 print(repr(e)) 29 print() 30 except: 31 print('其他错误发生\n') 32 else: 33 root1, root2 = solve(a, b, c) 34 print(f'root1 = {root1:.2f}, root2 = {root2:.2f}') 35 print()
运行结果:

实验任务4
task4:
1 def list_generator(*s): 2 a = s[0] 3 b = s[1] 4 5 if len(s) < 3: 6 list0 = [a] 7 while a < b: 8 a += 1 9 list0.append(a) 10 11 else: 12 c = s[2] 13 list0 = [a] 14 while a < b: 15 a += c 16 list0.append(a) 17 return list0 18 list1 = list_generator(-5, 5) 19 print(list1) 20 list2 = list_generator(-5, 5, 2) 21 print(list2) 22 list3 = list_generator(1, 5, 0.5) 23 print(list3)
运行结果:

实验任务5
task5:
1 def is_prime(n): 2 if n < 3: 3 if n == 2: 4 return True 5 return False 6 else: 7 for i in range(2, n): 8 if n%i == 0: 9 return False 10 else: 11 return True 12 13 for i in range(4,21,2): 14 for x in range(2,i): 15 y = i - x 16 if is_prime(x) and is_prime(y): 17 print(f'{i}={x}+{y}') 18 break
运行结果:

实验任务6
task6:
1 def encoder(text): 3 new_text = [] 5 for i in text: 6 if i.isalpha(): 8 if'a' <= i <= 'u': 9 new_text.append(chr(ord(i)+5)) 10 elif 'v' <= i <= 'z': 11 new_text.append(chr(ord('a')+ord(i)+4 - ord('z'))) 12 elif'A' <= i <= 'U': 13 new_text.append(chr(ord(i)+5)) 14 elif 'V' <= i <= 'Z': 15 new_text.append(chr(ord('A')+ord(i)+4 - ord('Z'))) 16 else: 17 new_text.append(i) 18 return ''.join(new_text) 20 def decoder(text): 21 new_text = [] 22 23 for i in text: 24 if i.isalpha(): 26 if 'f' <= i <= 'z': 27 new_text.append(chr(ord(i) - 5)) 28 elif 'a' <= i <= 'e': 29 new_text.append(chr(ord('z') - (4-ord(i) + ord('a')))) 30 elif 'F' <= i <= 'Z': 31 new_text.append(chr(ord(i)-5)) 32 elif 'A' <= i <= 'E': 33 new_text.append(chr(ord('Z') - (4-ord(i) + ord('A')))) 34 else: 35 new_text.append(i) 36 return ''.join(new_text) 39 text = input('输入英文文本: ') 40 encoded_text = encoder(text) 41 print('编码后的文本: ', encoded_text) 43 decoded_text = decoder(encoded_text) 44 print('对编码后的文本解码: ', decoded_text)
运行结果:

实验任务7
task7:
1 def Collatz(n): 2 if n%2 ==0: 3 return n//2 4 else: 5 return n*3+1 6 try: 7 n = int(input('Enter a positive integer:')) 8 if n <= 0: 9 raise ValueError 10 num = [n] 11 while True: 12 n = Collatz(n) 13 num.append(n) 14 if n == 1: 15 print(num) 16 break 17 except ValueError: 18 print('Error: must be a positive integer')
运行结果:

实验任务8
task8:
1 def func(n): 2 while True: 3 if n==1: 4 return 1 5 else: 6 return 2*func(n-1)+1 7 while True: 8 x = input() 9 if x == '#': 10 print('计算结束') 11 break 12 n = int(x) 13 ans = func(n) 14 print(f'n = {n}, ans = {ans}')
运行结果:
