实验4
1
不是
line1、3、11是全局作用域
line7是函数作用域
2-2
1 list1 = [1, 9, 8, 4] 2 3 print( sorted(list1) ) 4 print( sorted(list1, reverse=True) ) 5 print( sorted(list1, True) )
是的
2-3
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
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 12 if delta>=0: 13 root1 = p1 + p2 14 root2 = p1 - p2 15 else: 16 root1 = complex(p1, p2) 17 root2 = complex(p1, -p2) 18 19 return root1, root2 20 21 22 print(solve.__doc__) 23 while True: 24 try: 25 a,b,c = eval(input('Enter eqution coefficient: ')) 26 if a == 0: 27 raise 28 except: 29 print('invalid input, or, a is zero') 30 break 31 else: 32 root1, root2 = solve(a, b, c) 33 print(f'root1 = {root1:.2f}, root2 = {root2:.2f}') 34 print()
4
1 def list_generator(x,y,z=1): 2 list=[] 3 i=0 4 while i <=(y-x): 5 list.append(x+i) 6 i+=z 7 return list 8 9 10 list1 = list_generator(-5, 5) 11 print(list1) 12 list2 = list_generator(-5, 5, 2) 13 print(list2) 14 list3 = list_generator(1, 5, 0.5) 15 print(list3)
5
1 def is_prime(a): 2 sum=0 3 for i in range(2,a): 4 if a%i==0: 5 sum+=1 6 if sum!=0: 7 return False 8 elif sum==0: 9 return True 10 def ou(b): 11 if b%2==0: 12 return True 13 else: 14 return False 15 for i in range(3,21): 16 if ou(i)==True: 17 for j in range(2,i): 18 if is_prime(j)==True: 19 if is_prime(i-j)==True: 20 print("{}={}+{}".format(i,j,i-j)) 21 break
6
1 def encoder(x): 2 x_list = [] 3 for i in range(len(x)): 4 if ord('a') <= ord(x[i]) <= ord('u') or ord('A') <= ord(x[i]) <= ord('U'): 5 x_list.append(chr(ord(x[i])+5)) 6 elif ord('v') <= ord(x[i]) <= ord('z') or ord('V') <= ord(x[i]) <= ord('Z'): 7 x_list.append(chr(ord(x[i])-26+5)) 8 else: 9 x_list.append(x[i]) 10 return ''.join(x_list) 11 12 def decoder(x): 13 x_list = [] 14 for i in range(len(x)): 15 if ord('f') <= ord(x[i]) <= ord('z') or ord('F') <= ord(x[i]) <= ord('Z'): 16 x_list.append(chr(ord(x[i])-5)) 17 elif ord('a') <= ord(x[i]) <= ord('e') or ord('A') <= ord(x[i]) <= ord('E'): 18 x_list.append(chr(ord(x[i])+26-5)) 19 else: 20 x_list.append(x[i]) 21 return ''.join(x_list) 22 23 x = input('输入英文文本:') 24 x = encoder(x) 25 print(f'编码后的文本:{x}') 26 x = decoder(x) 27 print(f'对编码后的文本解码:{x}')
7
1 def collatz(x): 2 if(x % 2 == 0): 3 x = int(x / 2) 4 else: 5 x = 3 * x + 1 6 return x 7 8 list = [] 9 10 try: 11 n = eval(input('Enter a positive integer: ')) 12 13 if(n <= 0): 14 raise 15 elif(int(n) != n): 16 raise 17 18 while True: 19 if(n == 1): 20 list.append(n) 21 break 22 else: 23 list.append(int(n)) 24 n = collatz(n) 25 26 print(list) 27 28 except: 29 print('Error: must be a positive integer')
总结:
实验很好很喜欢