实验4 函数与异常处理编程
实验任务1
源代码
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=55,f=33)) 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 3 print(sorted(list1)) 4 print(sorted(list1,reverse=True)) 5 print(sorted(list1,True))
运行截图

task2-3
源代码
1 def func(a,b,c,/,*,d,e,f): 2 return([a,b,c,d,e,f]) 3 4 print(func(1,2,3,d=4,e=5,f=6))
运行截图

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

实验任务4
源代码
1 def list_generator(a,b,c=1): 2 if a==b: 3 return a 4 else: 5 x=[] 6 while a<=b: 7 x.append(a) 8 a+=c 9 return x 10 11 list1=list_generator(-5,5) 12 print(list1) 13 14 list2=list_generator(-5,5,2) 15 print(list2) 16 17 list3=list_generator(1,5,0.5) 18 print(list3)
运行截图

实验任务5
源代码
1 def is_prime(n): 2 if n % 2==0: 3 return True 4 else: 5 return False 6 7 num=4 8 while num<=20: 9 for i in range(2,num): 10 if is_prime(i): 11 if is_prime(num-i): 12 print(f'{num}={i}+{num-i}') 13 break 14 15 num+=2
运行截图

实验任务6
源代码
1 def encoder(text): 2 text=list(text) 3 i=0 4 while i <len(text): 5 if text[i].isalpha(): 6 if text[i].islower(): 7 if ord(text[i])<=117: 8 text[i]=chr(ord(text[i])+5) 9 else: 10 text[i]=chr(ord(text[i])+5-26) 11 if text[i].isupper(): 12 if ord(text[i])<=85: 13 text[i]=chr(ord(text[i])+5) 14 else: 15 text[i]=chr(ord(text[i])+5-26) 16 i+=1 17 return ''.join(text) 18 19 def decoder(text): 20 text=list(text) 21 i=0 22 while i <len(text): 23 if text[i].isalpha(): 24 if text[i].islower(): 25 if ord(text[i])>=102: 26 text[i]=chr(ord(text[i])-5) 27 else: 28 text[i]=chr(ord(text[i])-5+26) 29 if text[i].isupper(): 30 if ord(text[i])>=46: 31 text[i]=chr(ord(text[i])-5) 32 else: 33 text[i]=chr(ord(text[i])-5+26) 34 i+=1 35 return ''.join(text) 36 37 text = input('输入英文文本: ') 38 encoded_text = encoder(text) 39 print('编码后的文本: ', encoded_text) 40 decoded_text = decoder(encoded_text) 41 print('对编码后的文本解码: ', decoded_text)
运行截图

实验任务7
源代码
1 def collatz(n): 2 if n%2==0: 3 return n//2 4 else: 5 return (n*3)+1 6 7 8 try: 9 n=eval(input('Enter a positive integer:')) 10 if type(n) is float or type(n) is str or n<=0: 11 raise ValueError('Error:must be a positive integer') 12 except ValueError as e: 13 print(repr(e)) 14 print() 15 except: 16 print('Error:must be a positive integer') 17 else: 18 num=collatz(n) 19 list=[n,num] 20 while True: 21 if num!=1: 22 num=collatz(num) 23 list.append(num) 24 else: 25 break 26 print(list)
运行截图

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


浙公网安备 33010602011771号