# 实验1

print(sum)
sum=42
print(sum)

def inc(n):
sum=n+1
print(sum)
return sum

sum=inc(7)+inc(7)
print(sum)

Ans: 这里的sum不是一个变量名

line1:内置作用域 line2:全局作用域 line3:局部作用域 line4:全局作用域

# 实验2

def func1(a, b, c, d, e, f):
'''
返回参数a,b,c,d,e,f构成的列表
默认，参数按位置传递; 也支持关键字传递
'''
return [a,b,c,d,e,f]

def func2(a, b, c,*, d, e, f):
'''
返回参数a,b,c,d,e,f构成的列表
*后面的参数只能按关键字传递
'''
return [a,b,c,d,e,f]

def func3(a, b, c, /, d, e, f):
'''
返回参数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) )

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(a,b,c=1):
list1=[a]
x=a
while x+c<=b:
x+=c
list1.append(x)
return list1

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):
a=0
for i in range(2,x):
if x%i==0:
a+=1
else:
a+=0
if a==0:
return True
else:
return False

list1=[]
for i in range (2,21):
if is_prime(i)==True:
list1.append(i)

for i in range(4,21,2):

for j in list1:
if is_prime(i-j)==True:
print(f'{i}={j}+{i-j}')
break

# 实验6

list_s=['a','b','c','d','e','f','g','h','i','j','k',
'l','m','n','o','p','q','r','s','t','u','v','w','x','y','z']
list_b=['A','B','C','D','E','F','G','H','I','J','K',
'L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z']
def encoder(x):
re=[]
for i in str(x):
if i in list_s:
a=list_s.index(i)
if a<=20:
i=list_s[a+5]
re.append(i)
else:
i=list_s[a+5-26]
re.append(i)
elif i in list_b:
a=list_b.index(i)
if a<=20:
i=list_b[a+5]
re.append(i)
else:
i=list_b[a+5-26]
re.append(i)
else:
re.append(i)
re=''.join(re)
return re
def decoder(x):
re=[]
for i in str(x):
if i in list_s:
a=list_s.index(i)
if a>=5:
i=list_s[a-5]
re.append(i)
else:
i=list_s[a+26-5]
re.append(i)
elif i in list_b:
a=list_b.index(i)
if a>=5:
i=list_b[a-5]
re.append(i)
else:
i=list_b[a+26-5]
re.append(i)
else:
re.append(i)
re=''.join(re)
return re

x=input('输入英文文本:')
print(f'编码后的文本:{encoder(x)}')
y=encoder(x)
print(f'对编码后的文本解码:{decoder(y)}')

# 实验7

def collatz(n):
re=[n]
while True:
if n==1:
break
if n%2==0:
n=int(n/2)
re.append(n)
else:
n=3*n+1
re.append(n)
return re
n=input('Enter a positive intefer:')
try:
n=int(n)
if n<=0 :
raise
except:
print('Error: must be a positive integer')
else:
print(collatz(n))

posted @ 2022-05-10 21:56  Embeddd  阅读(9)  评论(3编辑  收藏  举报