实验任务一
实验源码:
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 10 sum= inc(7)+inc(7) 11 print(sum)
实验结果截图:
line1:内置作用域 line3:全局作用域 line7:局部作用域 line11:全局作用域
实验任务二
实验源码:
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):#返回参数a,b,c,d,e,f构成的列表。 *后面的参数只能按关键字传递 5 return [a,b,c,d,e,f] 6 7 def func3(a,b,c,/,d,e,f):#返回参数a,b,c,d,e,f构成的列表。 /后面的参数只能按位置传递 8 return [a,b,c,d,e,f] 9 10 #func1调用:按位置传递、按参数传递都可以 11 print(func1(1,9,2,0,5,3)) 12 print(func1(a=1,b=9,c=2,d=0,e=5,f=3)) 13 print(func1(1,9,2,f=3,d=0,e=5)) 14 15 #func2调用:d,e,f必须按关键字传递 16 print(func2(11,99,22,d=0,e=55,f=33)) 17 print(func1(a=11,b=99,c=22,d=0,e=55,f=33)) 18 19 #func3调用:a,b,c必须按位置传递 20 print(func3(111,999,222,0,555,333)) 21 print(func3(111,999,222,0,555,333)) 22 23 list1 = [1, 9, 8, 4] 24 print( sorted(list1) ) 25 print( sorted(list1, reverse=True) ) 26 #print( sorted(list1, True) )python内置函数sorted()中参数reverse的传递方式必须使用关键字传递 27 28 def func(a, b, c, /,* , d, e, f):#/,*后面的参数必须按照关键字传递,且 /必须在 *前面 29 return [a,b,c,d,e,f] 30 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)#complex(a,b)是将括号内的数转化为复数的函数 11 root2 = complex(p1, -p2) 12 return root1, root2 13 while True: 14 try: 15 t = input('输入一元二次方程系数a b c, 或者,输入#结束: ') 16 if t == '#': 17 print('结束计算,退出') 18 break 19 a, b, c = map(float, t.split())#map(f(x),[])是整合函数可以对列表内的对象进行方f(x)的变化生成一个新的列表 20 if a == 0: 21 raise ValueError('a = 0, 不是一元二次方程') 22 except ValueError as e: 23 print(repr(e)) 24 print() 25 except: 26 print('有其它错误发生\n') 27 else: 28 root1, root2 = solve(a, b, c) 29 print(f'root1 = {root1:.2f}, root2 = {root2:.2f}') 30 print()
实验结果截图:
试验任务四
实验源码:
1 def list_generator(a,b,c=1): 2 if type(c)==type(1): 3 x=[i for i in range(a,b+1,c)] 4 else: 5 i=a 6 x=[] 7 while i <= b: 8 x+=[i] 9 i+=c 10 return x 11 list1= list_generator(-5,5) 12 print(list1) 13 list2 = list_generator(-5, 5, 2) 14 print(list2) 15 list3 = list_generator(1, 5, 0.5) 16 print(list3)
实验结果截图:
实验任务五
实验源码:
1 def is_prime(n): 2 if n == 2: 3 return True 4 elif n != 1: 5 for i in range(2,n): 6 if n == 2: 7 return True 8 elif n % i == 0: 9 break 10 else: 11 return True 12 13 for i in range(2,20+1,2): 14 flag = True 15 for j in range(2, i): 16 if is_prime(j) == True and is_prime(i - j) == True and flag == True: 17 print(f'{i}={j}+{i-j}') 18 flag = False
实验结果截图:
实验任务六
实验源码:
1 def encoder(text): 2 x='' 3 for i in text: 4 if 'a'<=i<='u' or 'A'<=i<='U': 5 i=chr(ord(i)+5) 6 x+=i 7 elif 'v'<=i<='z' or 'V'<=i<='Z': 8 i=chr(ord(i)-27+5) 9 x+=i 10 else: 11 x+=i 12 return x 13 def decoder(encoded_text): 14 x='' 15 for i in encoded_text: 16 if 'f'<=i<='z' or 'F'<=i<='Z': 17 i=chr(ord(i)-5) 18 x+=i 19 elif 'a'<=i<='e' or 'A'<=i<='E': 20 i=chr(ord(i)-5+27) 21 x+=i 22 else: 23 x+=i 24 return x 25 text = input('输入英文文本: ') 26 encoded_text = encoder(text) 27 print('编码后的文本: ', encoded_text) 28 decoded_text = decoder(encoded_text) 29 print('对编码后的文本解码: ', decoded_text)
实验结果截图:
实验任务七
实验源码:
1 def collatz(n): 2 x=[n] 3 while x[-1]!=1: 4 if n%2==0: 5 n=n//2 6 x.append(n) 7 else: 8 n=n*3+1 9 x.append(n) 10 return x 11 12 try: 13 n=int(input('Enter a positive integer:')) 14 if n<=0: 15 raise 16 except: 17 print('Error: must be a positive integer') 18 else: 19 print(collatz(n))
实验结果截图:
实验任务八:
实验源码:
1 def func(n): 2 if n == 1: 3 ans = 2 - 1 4 else: 5 ans = 2 * func(n-1) +1 6 n -= 1 7 return ans 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}')
实验结果截图:
标签:return,源码,实验,print,True,def From: https://www.cnblogs.com/wjh857925263/p/17420502.html