实验4 函数与异常处理应用编程

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

第一个:内置

第二个:全局

第三个:局部

第四个:全局

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

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

def list_generator(a,b,step=1):
    list=[]
    i=a
    while i>=a and i <= b:
        list.append(i)
        i += step
    return list

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

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

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

def encoder(strs):
    a=list(strs)
    i=0
    while i <len(strs):
        b = ord(a[i])
        if 65<=b<=85 or 97<=b<=117:
            c=chr(b+5)

        elif 85<=b<=90 or 117<=b<=122:
            c=chr(b-21)
        else:
            c=chr(b)
        a[i]=c
        i+=1
    return ''.join(a)



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

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

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 = 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-07 20:05  苏萌0017  阅读(17)  评论(2编辑  收藏  举报