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

print(sum)
sum = 42
print(sum)

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

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

不是

第一次:Build-in

第二次:Global

第三次:Local

第四次:Global

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):
    '''
    求解一元二次方程,返回方程的两个根
    :param 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,c = 1):
    y = []
    while a<=b:
        y.append(a)
        a+=c
    return y

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):
    x = 2
    m = True
    if n == 2:
        return True
    while n > x:
        if n%x == 0 and m == True:
            m = False
        else:
            x+=1
    return m

for number in range(2,21,2):
    for x in range(2,int(number/2)+1):
        y = number-x
        if is_prime(x) == True and is_prime(y) == True:
            print('{}={}+{}'.format(number,x,y))
            break

def encorder(text):
    list = []
    for i in text:
        if 65<=ord(i)<=85 or 97<=ord(i)<=117:
            list.append(chr((ord(i)+5)))
        elif 86<=ord(i)<=90 or 118<=ord(i)<=122:
            list.append(chr(ord(i)-21))
        else:
            list.append(i)
    return ''.join(list)

def decorder(text):
    list = []
    for i in text:
        if 70<=ord(i)<=90 or 102<=ord(i)<=122:
            list.append(chr((ord(i)-5)))
        elif 65<=ord(i)<=69 or 97<=ord(i)<=101:
            list.append(chr((ord(i)+21)))
        else:
            list.append(i)
    return ''.join(list)

text=input('输入英文文本;')
print(f'编码后的文本;{encorder(text)}')
print(f'解码后的文本;{decorder(encorder(text))}')

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:
        list = []
        while n != 1:
            list.append(n)
            n = collatz(n)
        list.append(1)
        print(list)
    else:
        print('Error:must be a positive integer')
except:
    print('Error:must be a positive integer')

 

posted @ 2022-05-10 00:33  东楼贺朝  阅读(12)  评论(2编辑  收藏  举报