4.函数与异常处理应用编程

1 print(sum)
2 sum = 42
3 print(sum)
4 def inc(n):
5     sum = n+1
6     print(sum)
7     return sum
8 sum = inc(7) + inc(7)
9 print(sum)

 

2.实验任务2

task2_1.py

def func1(a, b, c, d, e, f):
    '''
    返回参数a,b,c,d,e,f构成的列表
    默认,参数按位置传递; 也支持关键字传递
    '''
    return [a,b,c,d,e,f]
def func2(a, b, c,*, d, e, f):
    '''
    返回参数a,b,c,d,e,f构成的列表
    *后面的参数只能按关键字传递
    '''
    return [a,b,c,d,e,f]
def func3(a, b, c, /, d, e, f):
    '''
    返回参数a,b,c,d,e,f构成的列表
    /前面的参数只能按位置传递
    '''
    return [a,b,c,d,e,f]
# func1调用:按位置传递、按参数传递都可以
print( func1(1,9,2,0,5,3) )
print( func1(a=1, b=9, c=2, d=0, e=5, f=3) )
print( func1(1,9,2, f=3, d=0, e=5))
# func2调用:d,e,f必须按关键字传递
print( func2(11, 99, 22, d=0, e=55, f=33) )
print( func2(a=11, b=99, c=22, d=0, e=55, f=33) )
print( func2(11, 99, 22, 0, 55, 33) )

# func3调用:a,b,c必须按位置传递
print( func3(111, 999, 222, 0, 555, 333))
print( func3(111, 999, 222, d=0, e=555, f=333))
print(func3(a=111, b=999, c=222, 0, 555, 333))

 

 

task2_2.py

list1 = [1, 9, 8, 4]
print( sorted(list1) )
print( sorted(list1, reverse=True) )
print( sorted(list1, True) )

 

 

task2_3.py

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.实验任务3

task3.py

 1 def solve(a, b, c):
 2     '''
 3     求解一元二次方程, 返回方程的两个根
 4     :para: a,b,c: int 方程系数
 5     :return: tuple
 6     '''
 7     delta = b*b - 4*a*c
 8     delta_sqrt = abs(delta)**0.5
 9     p1 = -b/2/a;
10     p2 = delta_sqrt/2/a
11     if delta>=0:
12         root1 = p1 + p2
13         root2 = p1 - p2
14     else:
15         root1 = complex(p1, p2)
16         root2 = complex(p1, -p2)
17     return root1, root2
18 print(solve.__doc__)
19 while True:
20     try:
21         a,b,c = eval(input('Enter eqution coefficient: '))
22         if a == 0:
23             raise
24     except:
25         print('invalid input, or, a is zero')
26         break
27     else:
28         root1, root2 = solve(a, b, c)
29         print(f'root1 = {root1:.2f}, root2 = {root2:.2f}')
30         print()

 

 

4.实验任务4

task4.py

 1 def list_generator(x,y,z=1):
 2     list1=[]
 3     while x<=y:
 4         list1.append(x)
 5         x=x+z
 6     return list1
 7 list1=list_generator(-5,5)
 8 print(list1)
 9 list2=list_generator(-5,5,2)
10 print(list2)
11 list3=list_generator(1,5,0.5)
12 print(list3)

 

 

5.实验任务5

task5.py

 1 def is_prime(n):
 2     if n == 1:
 3         return False
 4     elif n == 2:
 5         return True
 6     else:
 7         for i in range(2,n):
 8             if n%i == 0:
 9                 return False
10             return True
11 
12 
13 k = 0
14 for i in range(2,21,2):
15     for j in range(1,i):
16         m = i-j
17         if is_prime(m) and is_prime(j) and j<=m:
18             print(i,'=',j,'+',m,)
19             k += 1
20             if k%6==0:
21                 print('\n')

 

6.实验任务6

task6.py

 1 x=str(input('输入英文文本:'))
 2 z=0
 3 for i in range(len(x)):
 4     if 128>ord(x[i])+5>122 or 96>ord(x[i])+5>90:
 5         a=ord(x[i])-21
 6         z=z+1
 7     elif 65<=ord(x[i])<=85 or 97<=ord(x[i])+5<=117:
 8         a=ord(x[i])+5
 9         z=z+1
10     else:
11         a=ord(x[i])
12         z=z+1
13     if z==1:
14         print('编码后的文本',end='')
15     print(chr(a),end='')
16 print()
17 print('对编码后的文本解码',x)

 

 

7.实验任务7

task7.py

 1 def collatz(n):
 2     l=[n]
 3     while l[-1] != 1:
 4         if l[-1] % 2 == 0 :
 5             l.append((l[-1])//2)
 6         else:
 7             l.append((l[-1])*3+1)
 8     return l
 9 
10 try:
11     x=int(input('enter a positive integer:'))
12     if x <= 0:
13         raise
14 except:
15     print('Error: must be a positive integer')
16 else:
17     print(collatz(x))

 

posted @ 2022-05-10 00:08  张满月的衣橱  阅读(27)  评论(1编辑  收藏  举报