实验任务一
程序源代码:
1 print(sum) 2 sum=42 3 print(sum) 4 5 def inc(n): 6 sum=n+1 7 print(sum) 8 return sum 9 sum=inc(7)+inc(7) 10 print(sum)
实验结果:
问题:task1.py源码中,共有4处有python语句 print(sum) (line1, line3, line7, line11)。
这4处使用的标识符sum是同一个对象的名称吗?如果不是,请以文字方式回答这4行中标识符sum的
作用域。
回答:不是,分别为内置作用域,全局作用域,局部作用域,全局作用域
实验任务二
task2-1:
程序源代码:
1 def func1(a,b,c,d,e,f): 2 return[a,b,c,d,e,f] 3 4 def func2(a, b, c,*, d, e, f): 5 return[a,b,c,d,e,f] 6 7 def func3(a,b,c,/,d,e,f): 8 return(a,b,c,d,e,f) 9 print(func1(1,9,2,0,5,3)) 10 print(func1(a=1,b=9,c=2,d=0,e=5,f=3)) 11 print(func1(1,9,2,f=3,d=0,e=5)) 12 print(func2(11,99,22,d=0,e=55,f=33)) 13 print(func2(a=11,b=99,c=22,d=0,e=55,f=33)) 14 print(func3(111,999,222,0,555,333)) 15 print(func3(111,999,222,d=0,e=555,f=333))
实验结果:
task2-2:
程序源代码:
1 list1=[1,9,8,4] 2 print(sorted(list1)) 3 print(sorted(list1,reverse=True)) 4 print(sorted(list1,True))
实验结果:
问题:python内置函数sorted()中,参数reverse的传递方式是否必须使用关键字传递?
回答:是
task2-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))
实验结果:
实验任务三
程序源代码:
1 def solve(a,b,c): 2 delta=b*b-4*a*c 3 delta_sqrt=abs(delta)**0.5 4 p1=-b/2/a 5 p2=delta_sqrt/2/a 6 if delta>=0: 7 root1=p1+p2 8 root2=p1-p2 9 else: 10 root1=complex(p1+p2) 11 root2=complex(p1-p2) 12 return root1,root2 13 print(solve.__doc__) 14 while True: 15 try: 16 t=input('输入一元二次方程系数a b c,或者,输入#结束: ') 17 if t=='#': 18 print('结束计算,退出') 19 break 20 a,b,c=map(float,t.split()) 21 if a==0: 22 raise ValueError('a=0,不是一元二次方程') 23 except ValueError as e: 24 print(repr(e)) 25 print() 26 except: 27 print('有其他错误发生\n') 28 else: 29 root1,root2=solve(a,b,c) 30 print(f'root1={root1:.2f}, root2={root2:.2f}') 31 print()
实验结果:
实验任务四
程序源代码:
1 def list_generator(a,b,c=1): 2 f=[] 3 for i in range(0,int((b-a)/c)+1): 4 f.append(a+c*i) 5 return f 6 list1=list_generator(-5,5) 7 print(list1) 8 list2=list_generator(-5, 5, 2) 9 print(list2) 10 list3 = list_generator(1, 5, 0.5) 11 print(list3)
实验结果:
实验任务五
程序源代码:
1 def is_prime(n): 2 if n==2: 3 return True 4 else: 5 for i in range(2,int(n**1/2)+1): 6 if n%i==0: 7 return False 8 return True 9 for i in range(4,21,2): 10 for a in range(2,i): 11 if is_prime(i-a): 12 print(f'{i}= {a}+{i-a}') 13 break
实验结果:
实验任务六
程序源代码:
1 def decoder(x): 2 z='' 3 for i in x: 4 if i.isalpha(): 5 s=ord(i)-5 6 if chr(s).isalpha(): 7 z+=chr(s) 8 else: 9 z+=chr(s+26) 10 else: 11 z+=i 12 return z 13 text = input('输入英文文本: ') 14 encoded_text = encoder(text) 15 print('编码后的文本: ',encoded_text) 16 decoded_text = decoder(encoded_text) 17 print('对编码后的文本解码: ', decoded_text)
实验结果:
实验任务七
程序源代码:
1 def Collatz(n): 2 if n%2==0: 3 return n//2 4 else: 5 return n*3+1 6 try: 7 a=int(input('Enter a positive integer:')) 8 if a<=0: 9 raise ValueError 10 l=[a] 11 while l[-1]!=1: 12 a=Collatz(a) 13 l.append(a) 14 print(l) 15 except ValueError: 16 print('Error: must be a positive integer')
实验结果:
实验任务八
程序源代码:
1 def func(n): 2 a=1 3 for i in range(0,n): 4 a*=2 5 return a-1 6 while True: 7 x = input() 8 if x == '#': 9 print('计算结束') 10 break 11 n = int(x) 12 ans = func(n) 13 print(f'n = {n}, ans = {ans}')
实验结果:
标签:return,函数,sum,编程,实验,print,源代码,def From: https://www.cnblogs.com/pansufei/p/17408175.html