实验4
实验任务1 print(sum) sum=42 print(sum) def inc(n): sum=n+1 print(sum) return sum sum=inc(7)+inc(7) print(sum)
第一个是内置作用域,第二个·是全局作用域,第三个是局部作用域,第四个是全局作用域。
实验任务2 list1 = [1, 9, 8, 4] print( sorted(list1) ) print( sorted(list1, reverse=True) ) print( sorted(list1, True) )
否
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))
实验任务3 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()
实验任务4 def list_generator(x,y,step=1): li=[] i=0 while i<=((y-x)/step): li.append(x+i*step) i+=1 return li list1=list_generator(-5,5) print(list1) list2=list_generator(-5,5,2) print(list2) list3=list_generator(1,5,0.5) print(list3)
实验任务5 def is_prime(x): if(x<2): return False for i in range(2,int(x**0.5)+1): if(x%i==0): return False return True for i in range(4,21,2): for j in range(2,int(i/2)+1): if(is_prime(j) and is_prime(i-j)): print(str(i)+'='+str(j)+'+'+str(i-j)) break
实验任务6 def encoder(s): li=list(s) for i in range(len(s)): if('a'<=s[i]<='u'): li[i]=chr(ord(s[i])+5) elif('v'<=s[i]<='z'): li[i]=chr(ord(s[i])-21) elif('A'<=s[i]<='U'): li[i]=chr(ord(s[i])+5) elif('V'<=s[i]<='Z'): li[i]=chr(ord(s[i])-21) return "".join(li) def decoder(s): li=list(s) for i in range(len(s)): if('a'<=s[i]<='e'): li[i]=chr(ord(s[i])+21) elif('f'<=s[i]<='z'): li[i]=chr(ord(s[i])-5) if('A'<=s[i]<='E'): li[i]=chr(ord(s[i])+21) elif('F'<=s[i]<='Z'): li[i]=chr(ord(s[i])-5) return "".join(li) s=input('输入英文文本:') s1=encoder(s) print('编码后的文本:'+s1) s2=decoder(s1) print('对编码后的文本解码:'+s2)
实验任务7 def collatz(n): if((n%2)==0): return n/2 else: return 3*n+1 try: n=int(input('Enter a positive integer:')) if(n<=0): raise except: print('Error: must be a positive integer') else: li=[n] while n!=1: n=collatz(n) li.append(n) print(li)
通过此次实验,我学习了函数的定义、异常处理等内容,特别是学会了可选参数的用法。实验任务6一次成功,没有任何错误,有一定进步。此次实验提醒我注意数值形式和精度的要求问题。