实验四
print(sum) sum = 42 print(sum) def inc(n): sum = n+1 print(sum) return sum sum = inc(7) + inc(7) print(sum)
不是
line1作用域为line1
line3作用域为line2
line7作用域为line6
line11作用域为line10
task2
list1 = [1, 9, 8, 4] print( sorted(list1) ) print( sorted(list1, reverse=True) ) print( sorted(list1, True) )
不是
def func(a, b, c, /, *, d, e, f): return( [a,b,c,d,e,f] ) print(func(1,2,3,d=4,e=5,f=6))
task3
def solve(a, b, c): ''' 求解一元二次方程, 返回方程的两个根 :para: a,b,c: int 方程系数 :return: tuple ''' delta = b*b - 4*a*c delta_sqrt = abs(delta)**0.5 p1 = -b/2/a; p2 = delta_sqrt/2/a if delta>=0: root1 = p1 + p2 root2 = p1 - p2 else: root1 = complex(p1, p2) root2 = complex(p1, -p2) return root1, root2 print(solve.__doc__) while True: try: a,b,c = eval(input('Enter eqution coefficient: ')) if a == 0: raise except: print('invalid input, or, a is zero') break else: root1, root2 = solve(a, b, c) print(f'root1 = {root1:.2f}, root2 = {root2:.2f}') print()
task4
def list_generator(x,y,z=1): list=[] while x<=y: list.append(x) x+=z return list list1 = list_generator(-5, 5) print(list1) list2 = list_generator(-5, 5, 2) print(list2) list3 = list_generator(1, 5, 0.5) print(list3)
task5
def is_prime(x): if x==0: return False elif x==1: return False else: for j in range(2,x): if x%j==0: return False else: return True k=0 for n in range(4,20,2): for m in range(1,n): n2=n-m if is_prime(n2) and is_prime(m) and m<=n2: print(n,"=",m,"+",n2) k+=1
task6
def encoder(x): x = list(x) for i in range(len(x)): if('v' <= x[i].lower() <= 'z'): x[i] = chr(ord(x[i]) - 21) elif('a' <= x[i].lower() <= 'v'): x[i] = chr(ord(x[i]) + 5) x = ''.join(x) return x def decoder(x): x = list(x) for i in range(len(x)): if('a' <= x[i].lower() <= 'e'): x[i] = chr(ord(x[i]) + 21) elif('e' < x[i].lower() <= 'z'): x[i] = chr(ord(x[i]) - 5) x = ''.join(x) return x y = input('输入英文文本;') print('编码后的文本:{}'.format(encoder(y))) print('对编码后的文本解码:{}'.format(decoder(encoder(y))))
task7
def collatz(x): if x%2==0: return int(x/2) else: return int(3*x+1) list=[] try: n=eval(input('Enter a positive integer:')) if n<=0: raise elif int(n)!=n: raise while True: if n!=1: list.append(n) n=collatz(n) else: list.append(n) break print(list) except: print('Error: must be a positive integer')