实验4
task1:
print(sum)
sum=42
print(sum)
def inc(n):
sum=n+1
print(sum)
return sum
sum=inc(7)+inc(7)
print(sum)

回答问题:这四处的sum不是一个变量名。
第一个是系统内置函数的‘sum’,作用于数的求和
第二个是以‘sum’命名的数
第三个定义函数中的值
第四个是计算后的值
task2_1:
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( func3(111, 999, 222, 0, 555, 333))
print( func3(111, 999, 222, d=0, e=555, f=333) )

task2_2:
list1 = [1, 9, 8, 4] print(sorted(list1)) print(sorted(list1, reverse=True)) print(sorted(list1, True))

回答问题:
python内置函数sorted()中,参数reverse的传递方式必须使用关键字传递。
task2_3
def func(a,b,c,/,*,d,e,f):
return( [a,b,c,e,d,f] )
print( func(1,2,3, d=4, e=5, f=6) )

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


若在While前加print(solve.__doc__),结果仍然能被打印出来
def list_generator(a,b,step=1):
list=[]
while True:
if a>=b:
break
else:
list.append(a)
a+=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)

task5:
def is_prime(n):
for i in range(2,int(n*0.5)+1):
if n%i==0:
return False
else:
return True
for i in range(2,21,2):
for j in range(2,i):
if is_prime(i-j):
print(f'{i}={j}+{i-j}')
break

task_6:
def encoder(text):
text1=[]
str(text1)
for i in text:
if i.islower():
text1.append(chr((ord(i)-92)%26+97))
elif i.isupper():
text1.append(chr((ord(i)-60)%26+65))
else:
text1.append(i)
return ''.join(text1)
text=input("输入英文文本:")
print(f'编码后的文本:{encoder(text)}')
print(f'对编码后的文本解码:{text}')

task7:
def collatz(n):
list=[n]
while list[-1]!=1:
if list[-1]%2==0:
list.append(int(list[-1]/2))
else:
list.append(int(list[-1]*3+1))
return list
try :
n=eval(input("Enter a posive interger:"))
if n<=0 or int(n)!=n:
raise
except:
print("Error: must be a positive integer")
else:
print(collatz(n))







浙公网安备 33010602011771号