实验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}')

运行截图

 

posted @ 2023-05-20 00:52  仲益君  阅读(37)  评论(0)    收藏  举报