实验四
1.
实验内容:
1 #1 2 print(sum) 3 sum=42 4 print(sum) 5 6 def inc(n): 7 sum=n+1 8 print(sum) 9 return sum 10 11 sum=inc(7)+inc(7) 12 print(sum)
实验结果:

2.
实验内容:
1 #2 2 def func1(a,b,c,d,e,f): 3 ''' 4 返回参数a,b,c,d,e,f构成的列表 5 默认,参数按位置传递;也支持关键字传递 6 ''' 7 return[a,b,c,d,e,f] 8 def func2(a,b,c,*,d,e,f): 9 ''' 10 返回参数a,b,c,d,e,f构成的列表 11 *后面的参数只能按关键字传递 12 ''' 13 return[a,b,c,d,e,f] 14 def func3(a,b,c,/,d,e,f): 15 ''' 16 返回参数a,b,c,d,e,f构成的列表 17 /前面的参数只能按位置传递 18 ''' 19 return[a,b,c,d,e,f] 20 21 #func1调用,按位置传递、按参数传递都可以 22 print(func1(1,9,2,0,5,3)) 23 print(func1(a=1,b=9,c=2,d=0,e=5,f=3)) 24 print(func1(1,9,2,f=3,d=0,e=5)) 25 26 #func2调用:d,e,f必须按关键字传递 27 print(func2(11,99,22,d=0,e=55,f=33)) 28 print(func2(a=11,b=99,c=22,d=0,e=55,f=33)) 29 #print(func2(11,99,22,0,55,33)) 30 31 #func3调用:a,b,c必须按位置传递 32 print(func3(111,999,222,0,555,333)) 33 print(func3(111,999,222,d=0,e=555,f=333)) 34 #print(func3(a=111,b=999,c=222,0,555,333))
实验结果:



2.2
实验内容:
1 #2.2 2 list1=[1,9,8,4] 3 print(sorted(list1)) 4 print(sorted(list1,reverse=True)) 5 print(sorted(list1,True))
实验结果:

2.3
实验内容:
1 #2.3 2 def func(a,b,c,/,*,d,e,f): 3 return([a,b,c,d,e,f]) 4 5 print(func(1,2,3,d=4,e=5,f=6))
实验结果:

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


4
实验内容:
1 #4 2 def list_generator(a,b,c=1): 3 l=[] 4 while a<=b: 5 l.append(a) 6 a=a+c 7 return l 8 9 list1=list_generator(-5,5) 10 print(list1) 11 12 list2=list_generator(-5,5,2) 13 print(list2) 14 15 list3=list_generator(1,5,0.5) 16 print(list3)
实验结果:

5
实验内容:
1 #5 2 def is_prime(x): 3 l=[] 4 for i in range(1,x): 5 if x%i==0: 6 l.append(i) 7 if l==[1]: 8 return True 9 else: 10 return False 11 import random 12 l1=[] 13 l2=[] 14 l3=[] 15 l4=[] 16 for j in range(1,21): 17 if is_prime(j)==True: 18 l1.append(j) 19 for p in range(4,21,2): 20 l2.append(p) 21 for m in l1: 22 for n in l1: 23 c=m+n 24 if c<=20 and c%2==0: 25 if c not in l3: 26 l3.append(c) 27 l4.append((c,m,n)) 28 l4=sorted(l4) 29 for x in l4: 30 print(f'{x[0]} = {x[1]} + {x[2]}')
实验结果:

6
实验内容:
1 #6 2 #encoder() 3 def encoder(text): 4 l=[] 5 for w in text: 6 if 65<=ord(w)<=85 or 97<=ord(w)<=117: 7 u1=ord(w) 8 w2=chr(u1+5) 9 w=w2 10 elif 85<ord(w)<=90 or 117<ord(w)<=122: 11 u1=ord(w) 12 w2=chr(u1-21) 13 w=w2 14 l.append(w) 15 encoded_text=''.join(l) 16 return encoded_text 17 18 #decoder() 19 def decoder(encoded_text): 20 l=[] 21 for w in encoded_text: 22 if 70<=ord(w)<=90 or 102<=ord(w)<=122: 23 u1=ord(w) 24 w2=chr(u1-5) 25 w=w2 26 elif 65<=ord(w)<70 or 97<=ord(w)<102: 27 u1=ord(w) 28 w2=chr(u1+21) 29 w=w2 30 l.append(w) 31 decoded_text=''.join(l) 32 return decoded_text 33 34 35 text=input('输入英文文本:') 36 37 encoded_text=encoder(text) 38 print('编码后的文本:',encoded_text) 39 40 decoded_text=decoder(encoded_text) 41 print('对编码后的文本解码:',decoded_text)

7
实验内容:
1 def collatz(n): 2 l=[n] 3 while n!=1: 4 if n%2==0: 5 n=n//2 6 else: 7 n=n*3+1 8 l.append(n) 9 return l 10 11 try: 12 n=eval(input('Enter a positive integer:')) 13 if type(n) is not int or n<=0: 14 raise ValueError('Error:must be a positive integer') 15 except ValueError as e: 16 print('Error:must be a positive integer') 17 except : 18 print('Error:must be a positive integer') 19 else: 20 print(collatz(n))
实验结果:

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

浙公网安备 33010602011771号