Java教程

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

本文主要是介绍实验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)

不是:

第一个sum作用的是一开始定义的42;

第二个sum作用的是调用的n+1;

第三个sum作用的是调用里的另一个;

第四个sum作用的是最后一个两者相加的。

 实验任务2:
task2_1.py:
def func1(a,b,c,d,e,f):
 2     '''
 3     返回参数a,b,c,d,e,f构成的列表
 4     默认,参数按位置传递;也支持关键字传递
 5     '''
 6     return [a,b,c,d,e,f]
 7 def func2(a,b,c,*,d,e,f):
 8     '''
 9     返回参数a,b,c,*,d,e,f构成的列表
10     *后面的参数只能按关键字传递
11     '''
12     return [a,b,c,d,e,f]
13 def func3(a,b,c,/,d,e,f):
14     '''
15     返回参数a,b,c,d,e,f构成的列表
16     /前面的参数只能按位置传递
17     '''
18     return [a,b,c,d,e,f]
19 print(func1(1,9,2,0,5,3))
20 print(func1(a=1,b=9,c=2,d=0,e=5,f=3))
21 print(func1(1,9,2,f=3,d=0,e=5))
22 print(func2(11,99,22,d=0,e=55,f=33))
23 print(func2(a=11,b=99,c=22,d=0,e=55,f=33))
24 print(func3(111,999,222,0,555,333))
25 print(func3(111,999,222,d=0,e=555,f=333))

 

实验任务2:
task2_2.py:
list1=[1,9,8,4]
2 print(sorted(list1))
3 print(sorted(list1,reverse=True))
4 print(sorted(list1,True))

问题2:

python内置函数sorted()中,参数reverse的传递方式必须使用关键字传递。

实验任务2:
task2_3.py:
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:
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 while True:
19     try:
20         a,b,c=eval(input('Enter eqution coefficient:'))
21         if a==0:
22             raise
23     except:
24         print('invalid input,or,a is zero')
25         break
26     else:
27         root1,root2=solve(a,b,c)
28         print(f'root1={root1:2f},root2={root2:.2f}')
29         print()

 

 实验任务4:
def list_generator(a,b,step=1):
 2     list=[]
 3     while a<=b:
 4         list.append(a)
 5         a=a+step
 6     return list
 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:
def is_prime(x):
 2     if x<2:
 3         return False
 4     for i in range(2,x):
 5         if x%i==0:
 6             return False
 7     return True
 8 for j in range(2,21,2):
 9     for x in range(1,21):
10         if is_prime(x)==True and is_prime(j-x)==True and x<=j-x:
11             print(f'{j}={x}+{j-x}')
12             break

实验任务6:
def encoder(x):
 2     list=[]
 3     for i in x:
 4         y=ord(i)
 5         if 65<=y<=85 or 97<=y<=117:
 6             y+=5
 7         elif 85<=y<=90 or 118<=y<=122:
 8             y-=21
 9         list.append(chr(y))
10     return ''.join(list)
11 def decoder(x):
12     list=[]
13     for i in x:
14         y=ord(i)
15         if 65<=y<=69 or 97<=y<=101:
16             y+=21
17         elif 70<=y<=90 or 102<=y<=122:
18             y-=5
19         list.append(chr(y))
20     return ''.join(list)
21 x=input('输入英文文本:')
22 a=encoder(x)
23 print('编码后的文本:',a)
24 b=decoder(a)
25 print('对编码后的文本解码:',b)

实验任务7:
def collatz(n):
 2     if n%2==0:
 3         n=n/2
 4         return int(n)
 5     else:
 6         return (n*3+1)
 7 try:
 8     n=eval(input('Enter a positive integer:'))
 9     if n<=0 or type(n)!=int:
10         raise
11 except:
12     print('Error:must be a positive integer')
13 else:
14     list=[n]
15     while n!=1:
16         n=collatz(n)
17         list.append(n)
18     print(list)

实验总结:

1、进一步学习了如何异常处理以及调用函数;

2、调用函数还不够熟练,需要多多练习。

这篇关于实验4 函数与异常处理应用编程的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!