实验四

task.1

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

 

 

task.2

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))

  

 

 

task.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()

  

 

 

task.4

def list_generator(begin, end, step=1):
    ls = []
    a = begin
    b = end
    while a <= b:
        ls.append(a)
        a += step
    return ls


list1 = list_generator(-5, 5)
print(list1)
list2 = list_generator(-5, 5, 2)
print(list2)
list3 = list_generator(1, 5, 0.5)
print(list3)

  

 

 

task.5

def is_prime(n):
    if n<2:
        return False
    else:
        for i in range(2,n):
            if n%i==0:
                return False
                break
        else:
            return True

num=[]
for i in range(20):
    if is_prime(i):
        num.append(i)

def summary(x):
    i = 0
    while True:
        for j in range(i, len(num)):
            s = num[i]+num[j]
            if x == s:
                s = f"{s} = {num[i]} + {num[j]}"
                return s
        i += 1


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

  

 

 

task.6

def encoder(a):
    """对文本加密"""
    result = ''
    for i in range(len(a)):
        if ord(a[i]) in range(65, 91):
            result+=chr((ord(a[i])-65+5)%26+65)
        elif ord(a[i]) in range(97, 123):
             result+=chr((ord(a[i])-97+5)%26+97)
        else:
            result += a[i]
    return result
def decoder(a):
    """解码加密文本"""
    result = ''
    for i in range(len(a)):
        if ord(a[i]) in range(65, 91):
            result+=chr((ord(a[i])-65+26-5)%26+65)
        elif ord(a[i]) in range(97, 123):
             result+=chr((ord(a[i])-97+26-5)%26+97)
        else:
            result += a[i]       
    return result
text = input("输入英文文本: ")
print(f"编码后的文本: {encoder(text)}")
print(f"对编码后的文本解码: {decoder(encoder(text))}")

  

 

 

task.7

def collatz(n):
    if n%2==0:
        n=int(n/2)
        return n
    else:
        n=n*3+1
        return n
try:
    n=eval(input('输入一个正整数:'))
    if n<=0 or type(n) is not int:
        raise
except:
    print('Error:must be a positive inreger')

else:
    list=[]
    while n!=1:
        list.append(n)
        n=collatz(n)
    list.append(1)
    print(list)

  

 

 

  

posted @ 2022-05-11 09:04  一个幽灵  阅读(40)  评论(1)    收藏  举报