# 实验四

#task1.py
print(sum)
sum=42
print(sum)

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

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

line1：内置

line3，line11：全局

line7：局部

#task2_2.py
list1=[1,9,8,4]

print(sorted(list1))
print(sorted(list1,reverse=True))
print(sorted(list1,True))

python内置函数sorted（）中，参数reverse的传递方式必须使用关键字传递

#task2_3.py
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))

#task3.py
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()

无法打印出来。

#task4.pydef list_generator(begin,end,step=1):
x = []
i = begin
while i >= begin and i<= end:
x.append(i)
i += step
return x

list1=list_generator(-5, 5)
print(list1)

list2=list_generator(-5, 5, 2)
print(list2)

list3=list_generator(1, 5, 0.5)
print(list3)

#task5.py
def is_prime(n):
if n < 2:
return False
for i in range(2,int(n**0.5)+1):
if n % i == 0:
return False
return True

y=[i for i in range(21)]
for x in y[::2]:
for a in range(0,20):
if is_prime(a) == True:
if is_prime(x-a)==True:
print(f'{x}={a}+{x-a}')
break
else:
a+=1
else:
a+=1

#task6.py
def encoder(z):
a = list(z)
i = 0
while i < len(z):
x = ord(a[i])
if 65 <= x <= 85 or 97 <= x <= 117:
y = chr(x + 5)
elif 85 < x <= 90 or 117 < x <= 122:
y = chr(x - 21)
else:
y = chr(x)
a[i]=y
i += 1
return ''.join(a)

def decoder(z):
a = list(z)
i = 0
while i < len(z):
x = ord(a[i])
if 70 <= x <= 90 or 102 <= x <= 122:
y = chr(x - 5)
elif 65 <= x < 70 or 97 <= x < 102:
y = chr(x + 21)
else:
y = chr(x)
a[i]=y
i += 1
return ''.join(a)

z = input('输入英文文本:')
print(f'''编码后的文本：{encoder(z)}

#task7.py
def Collatz(n):
if n % 2 == 0 and n > 0:
return int(n / 2)
if n % 2 != 0 and n > 0:
return int(3 * n + 1)

x = []
a = int(input('Enter a positive integer: '))
while True:
try:
if a != 1:
x.append(a)
a = Collatz(a)
else:
x.append(a)
break
except:
print('Error : must be a positive integer')
break
print(x)

posted @ 2022-05-10 17:27  bamboosama  阅读(3)  评论(1编辑  收藏  举报