实验4

1.
print(sum)
sum=42
print(sum)

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

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

 

 

不是

line1作用域为line1

line2作用域为line2

line7作用域为line6

line11作用域为line10

 

2.

def func1(a,b,c,d,e,f):
    return [a,b,c,d,e,f]
def func2(a,b,c,*,d,e,f):
    return [a,b,c,d,e,f]
def func3(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(func2(11,99,22,0,55,33))

print(func3(111,999,222,0,555,333))
print(func3(111,999,222,d=0,e=555,f=333))

 

 是

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

    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):
    list = []
    n = a
    while (n <= b):
        list.append(n)
        n = n + c
    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)

 

 

5.

def is_prime(n):
    try:
        if not(type(n)==int and n>1):
            raise ValueError
    except ValueError:
        print("Input must be a natural number and greater than 1!")
    else:
        for i in range(2,n):
            if n%i==0:
                return False;break
        else:
            return True

primes=[]
for i in range(2,21):
    if is_prime(i):
        primes.append(i)
for i in range(4,21,2):
    for j in range(len(primes)):
        for k in range(j,len(primes)):
            if i==primes[j]+primes[k]:
                print(f"{i} = {primes[j]} + {primes[k]}")
     

 

 

def encoder(s):
    try:
        if type(s)!=str:
            raise TypeError
    except TypeError:
        print("Input must be a string!")
    else:
        capital=tuple([chr(x) for x in range(ord('A'),ord('Z')+1)])
        lowercase=tuple([chr(x) for x in range(ord('a'),ord('z')+1)])
        S=list(s)
        for i,j in enumerate(S):
            for k in range(len(capital)):
                if j==capital[k]:
                    S[i]=capital[(k+5)%26];break
                elif j==lowercase[k]:
                    S[i]=lowercase[(k+5)%26];break
        s="".join(S)
        return s

def decoder(s):
    try:
        if type(s)!=str:
            raise TypeError
    except TypeError:
        print("Input must be a string!")
    else:
        capital=tuple([chr(x) for x in range(ord('A'),ord('Z')+1)])
        lowercase=tuple([chr(x) for x in range(ord('a'),ord('z')+1)])
        S=list(s)
        for i,j in enumerate(S):
            for k in range(len(capital)):
                if j==capital[k]:
                    S[i]=capital[(k-5)%26];break
                elif j==lowercase[k]:
                    S[i]=lowercase[(k-5)%26];break
        s="".join(S)
        return s

s=input("Input a English text:")
print(f"Encoded text: {encoder(s)}")
print(f"Decoded text: {decoder(encoder(s))}")

 

 

def collatz(x):
    if(x % 2 == 0):
        x = int(x / 2)
    else:
        x = 3 * x + 1
    return x

list = []

try:
    n = eval(input('Enter a positive integer: '))

    if(n <= 0):
        raise
    elif(int(n) != n):
        raise

    while True:
        if(n == 1):
            list.append(n)
            break
        else:
            list.append(int(n))
            n = collatz(n)

    print(list)

except:
    print('Error: must be a positive integer')

 

posted @ 2022-05-10 16:04  青桔水溶C  Views(19)  Comments(0Edit  收藏  举报