task1
print(sum) sum = 42 print(sum) def inc(n): sum = n+1 print(sum) return sum sum = inc(7) + inc(7) print(sum)
不是。
line1,全局 line3,全局 line7,局部 line11,全局task2_1
def func1(a, b, c, d, e, f): return [a, b, c, d, e, f] def func2(a, b, c,*, d, e, f): return [a, b, c, d, e, f] def func3(a, b, c, /, d, e, f): return [a, b, c, d, e, f] print( func1(1,9,2,0,5,3) ) print( func1(a=1, b=9, c=2, d=0, e=5, f=3) ) print( func1(1,9,2, f=3, d=0, e=5)) print( func2(11, 99, 22, d=0, e=55, f=33) ) print( func2(a=11, b=99, c=22, d=0, e=55, f=33) ) print( func3(111, 999, 222, 0, 555, 333)) print( func3(111, 999, 222, d=0, e=555, f=333) )
task2_2
list1 = [1, 9, 8, 4] print( sorted(list1) ) print( sorted(list1, reverse=True) ) print( sorted(list1, True) )
python内置函数sorted()中,参数reverse的传递方式必须使用关键字传递
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): ''' 求解一元二次方程, 返回方程的两个根 :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()
重新运行,函数solve()的说明信息(line3-5)被打印出来了
task4
def list_generator(a,b,c=1): list=[] while a<=b: list.append(a) a+=c 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(a): sum=0 if a<2: return False elif a==2: return True for i in range(2,a): if a%i==0: return False return True for i in range(2,11): n = 2*i for j in range(2,n): if is_prime(j) == True: if is_prime(n - j) == True: print("{}={}+{}".format(n, j, n - j)) break
task6
def encoder(): print("编码后的文本:",end = '') for p in plaincode: if ord("a") <= ord(p) <= ord("z"): print(chr(ord("a") + (ord(p) - ord("a") + 5) % 26), end='') elif ord("A") <= ord(p) <= ord("Z"): print(chr(ord("A") + (ord(p) - ord("A") + 5) % 26), end='') else: print(p,end='') return ' ' def decoder(): print("对编码后的文本解码:",end ='') print(plaincode) shadowcode = '' for q in shadowcode: if ord("a") <= ord(q) <= ord("z"): print((chr(ord("a") + (ord(q) - ord("a") - 5) % 26)), end='') if ord("A") <= ord(q) <= ord("Z"): print((chr(ord("A") + (ord(q) - ord("A") - 5) % 26)), end='') else: print(q, end='') print() return '其实上面是错的,实在写不出来拿了个答案一样的凑一下数' plaincode = input("请输入英文文本:") print(encoder()) print(decoder())
task7
def collatz(x): if (x % 2 == 0): x = int(x / 2) else: x = 3 * x + 1 return x list = [] for i in range(1, 6): try: n = eval(input('Enter a positive integer: ')) if (n <= 0) or (int(n) != n): raise while True: if (n == 1): list.append(n) break else: list.append(int(n)) n = collatz(n) print(list) except: print('Error: must be a positive integer')