实验任务1
task1.py
程序源码:
1 print(sum) 2 sum = 42 3 print(sum) 4 def inc(n): 5 sum = n+1 6 print(sum) 7 return sum 8 sum = inc(7) + inc(7) 9 print(sum)
运行测试截图:
1.task1.py源码中,共有4处有python语句 print(sum) (line1, line3, line7, line11)。 这4处使用的标识符sum是同一个对象的名称吗?如果不是,请以文字方式回答这4处中标识符 sum的作用域。 答:不是,line1是Built-in内置作用域,line3和line11是Global全局作用域,line7是Local局部作用域
实验任务2
task2_1.py
程序源码:
1 def func1(a, b, c, d, e, f): 2 return [a,b,c,d,e,f] 3 #返回参数a,b,c,d,e,f构成的列表默认,参数按位置传递; 也支持关键字传递 4 5 def func2(a, b, c,*, d, e, f): 6 return [a,b,c,d,e,f] 7 #返回参数a,b,c,d,e,f构成的列表,*后面的参数只能按关键字传递 8 9 def func3(a, b, c, /, d, e, f): 10 return [a,b,c,d,e,f] 11 # 返回参数a,b,c,d,e,f构成的列表,/前面的参数只能按位置传递 12 13 # func1调用:按位置传递、按参数传递都可以 14 print( func1(1,9,2,0,5,3) ) 15 print( func1(a=1, b=9, c=2, d=0, e=5, f=3) ) 16 print( func1(1,9,2, f=3, d=0, e=5)) 17 18 # func2调用:d,e,f必须按关键字传递 19 print( func2(11, 99, 22, d=0, e=55, f=33) ) 20 print( func2(a=11, b=99, c=22, d=0, e=55, f=33) ) 21 22 # func3调用:a,b,c必须按位置传递 23 print( func3(111, 999, 222, 0, 555, 333)) 24 print( func3(111, 999, 222, d=0, e=555, f=333) )
运行测试截图:
task2_2.py
程序源码:
1 list1 = [1, 9, 8, 4] 2 print(sorted(list1) ) 3 print(sorted(list1, reverse=True)) 4 print(sorted(list1, True))
运行测试截图:
2.python内置函数sorted()中,参数reverse的传递方式是否必须使用关键字传递? 答:必须使用关键字传递
task2_3.py
程序源码:
1 def func(a, b, c, /, *, d, e, f): 2 return( [a,b,c,d,e,f] ) 3 4 print(func(1,2,3,d=4,e=5,f=6))
运行测试截图:
实验任务3
task3.py
程序源码:
1 def solve(a, b, c): 2 '''求解一元二次方程, 返回方程的两个根:para: a,b,c: float 方程系数:return: tuple''' 3 delta = b*b - 4*a*c 4 delta_sqrt = abs(delta)**0.5 5 p1 = -b/2/a 6 p2 = delta_sqrt/2/a 7 if delta >= 0: 8 root1 = p1 + p2 9 root2 = p1 - p2 10 else: 11 root1 = complex(p1, p2) 12 root2 = complex(p1, -p2) 13 return root1, root2 14 15 print(solve.__doc__) 16 while True: 17 try: 18 t = input('输入一元二次方程系数a b c, 或者,输入#结束: ') 19 if t == '#': 20 print('结束计算,退出') 21 break 22 a, b, c = map(float, t.split()) 23 if a == 0: 24 raise ValueError('a = 0, 不是一元二次方程') 25 except ValueError as e: 26 print(repr(e)) 27 print() 28 except: 29 print('有其它错误发生\n') 30 else: 31 root1, root2 = solve(a, b, c) 32 print(f'root1 = {root1:.2f}, root2 = {root2:.2f}') 33 print()
运行测试截图:
实验任务4
task4.py
程序源码:
1 def list_generator(a,b,c=1): 2 lst=[] 3 while a<=b: 4 lst.append(a) 5 a+=c 6 return lst 7 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:
task5.py
实验源码:
1 def is_prime(n): 2 i=2 3 while i<n and n%i!=0: 4 i+=1 5 if i==n: 6 return 'True' 7 else: 8 return 'False' 9 10 lst=[] 11 for i in range(2,21): 12 if is_prime(i)=='True': 13 lst.append(i) 14 15 for j in range(4,21,2): 16 for k in lst: 17 if is_prime(j-k)=='True': 18 print(f'{j}={k}+{j-k}') 19 break
运行测试截图:
实验任务6
task6.py
程序源码:
1 # 编码函数encoder()定义 2 def encoder(text): 3 lst = list(text) 4 for i in range(len(lst)): 5 if 'a' <= lst[i].lower() <= 'u': 6 lst[i] = chr(ord(lst[i]) + 5) 7 elif 'v' <= lst[i].lower() <= 'z': 8 lst[i] = chr(ord(lst[i]) - 21) 9 else: 10 pass 11 return ''.join(lst) 12 # 解码函数decoder()定义 13 def decoder(text): 14 lst = list(text) 15 for i in range(len(lst)): 16 if 'f' <= lst[i].lower() <= 'z': 17 lst[i] = chr(ord(lst[i]) - 5) 18 elif 'a' <= lst[i].lower() <= 'e': 19 lst[i] = chr(ord(lst[i]) + 21) 20 else: 21 pass 22 return ''.join(lst) 23 24 # 主体代码逻辑 25 text = input('输入英文文本: ') 26 encoded_text = encoder(text) 27 print('编码后的文本: ', encoded_text) 28 decoded_text = decoder(encoded_text) 29 print('对编码后的文本解码: ', decoded_text)
运行测试截图:
实验任务7
task7.py
程序源码:
1 def collatz(n): 2 if n%2==0: 3 return n//2 4 else: 5 return n*3+1 6 7 try: 8 n=eval(input('Enter a positive integer:')) 9 if n<=0 or n !=int(n): 10 raise 11 12 except: 13 print('Error:must be a positive integer') 14 else: 15 lst=[n] 16 while n!=1: 17 n=collatz(n) 18 lst.append(n) 19 print(lst)
运行测试截图:
实验任务8
task8.py
程序源码:
1 def func(n): 2 if n==0: 3 return 0 4 else: 5 return 2*func(n-1)+1 6 7 8 while True: 9 x=input() 10 if x=='#': 11 print('计算结束') 12 break 13 n=int(x) 14 ans=func(n) 15 print(f'n={n},ans={ans}')
运行测试截图:
实验结论:
标签:py,return,函数,sum,编程,源码,实验,print,def From: https://www.cnblogs.com/cl040302/p/17423113.html