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

 

总结:

实验很好很喜欢

posted @ 2022-05-10 09:27  yfxyyczs  阅读(22)  评论(1编辑  收藏  举报