实验4 函数与异常处理应用编程
task1
print(sum) sum = 42 print(sum) def inc(n): sum = n+1 print(sum) return sum sum = inc(7) + inc(7) print(sum)
内置,全局,局部,全局
task2.2
list1 = [1, 9, 8, 4] print( sorted(list1) ) print( sorted(list1, reverse=True) ) print( sorted(list1, True) )
task2.3
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): 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 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(a,b,step=1): list=[] i=a while i>=a and i <= b: list.append(i) i += step 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(n): if n < 2: return False for i in range(2,int(n**0.5)+1): if n % i == 0: return False return True h=[i for i in range(21)] for x in h[::2]: for a in range(0,21): if is_prime(a) is True: if is_prime(x-a) is True: print(f'{x}={a}+{x-a}') break else: a+=1 else: a+=1
task6
def encoder(strs): a=list(strs) i=0 while i <len(strs): b = ord(a[i]) if 65<=b<=85 or 97<=b<=117: c=chr(b+5) elif 85<=b<=90 or 117<=b<=122: c=chr(b-21) else: c=chr(b) a[i]=c i+=1 return ''.join(a) def decoder(strs): a = list(strs) i=0 while i < len(strs): b = ord(a[i]) if 70<=b<=90 or 102<=b<=122: c=chr(b-5) elif 65<=b<=70 or 97<=b<=102: c=chr(b+21) else: c=chr(b) a[i] = c i+=1 return ''.join(a) a=input('输入英文文本: ') print(f'编码后的文本:{encoder(a)}') print(f'对编码后的文本解码:{decoder(encoder(a))}')
task7
a=[] def Collatz(n): if n==1: a.append(1) return a if n%2==0: a.append(int(n)) return Collatz(n/2) if n%2!=0: a.append(int(n)) return Collatz(3*n+1) try: x=int(input('Enter a positive integer:')) if abs(x)+x==0 or type(x)!=int: raise except: print('Error: must be a positive integer') else: print(Collatz(x))