1、下列关于Python中函数的说法不正确的是:结束函数时如果return语句不带表达式相当于无返回值。
有返回值None
2、下列定义函数的方法,在Python中正确的是:def (arg1,arg2,…argN)
3、list(map(lambda x:len(x),['a','12','ab123']))
:[1, 2, 5]
4、
f1=lambda x:x*2
f2=lambda x:x**2
print(f1(f2(2)))
输出:8
5、
counter=1
num=0
def tset():
global counter
for i in (1,2,3):
counter+=1
num=10
tset()
print(counter,num)
输出:4,0
6、
def Sum(a,b=3,c=5):
return sum([a,b,c])
print(Sum(8,2))
输出:15
7、
d=lambda x:x*2
t=lambda x:x*3
a=2
a=d(a)
a=t(a)
a=d(a)
print(a)
输出:24
————————
编程作业六
斐波拉契数列
题目内容:
这个数列从第三项开始,每一项都等于前两项之和。
已知斐波拉契数列的前两项都是1,我们定义求斐波拉契数列的第n项(n<=50)
输入格式:共一行,为一个正整数。
输出格式:共一行,为一个正整数。
def feibo(n):
x,f1,f2,sum=1,0,1,0
while x<n:
Sum=f1+f2
f1,f2=f2,Sum
x+=1
return Sum
n=int(input())
求两个数的最大公约数
题目内容:
输入两个正整数num1和num2(不超过1000),求它们的最大公约数并输出。
输入格式:共两行,每一行输入一个不超过1000的正整数。
输出格式:共一行,输出一个正整数。
a = int(input())
b = int(input())
if a > b:
c = b
else:
c = a
while c >= 1:
if a % c == 0 and b % c == 0:
break
c -= 1
print(c)
求两个数的最小公倍数
a = int(input())
b = int(input())
if a > b:
c = a
else:
c = b
x = a * b
while c <= x:
if c % a == 0 and c % b == 0:
break
c += 1
print(c)
求阶乘
输入格式:共一行,为一个小于20的正整数。
输出格式:共一行,为一个正整数。
def fact(n):
Sum=1
for i in range(1,n+1):
Sum*=i
return Sum
n=int(input())
print(fact(n))
冒泡排序
题目内容:
冒泡排序是一种简单的排序算法。它重复地遍历要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。遍历数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。这个算法的名字由来是因为越小的元素会经由交换慢慢“浮”到数列的顶端。
输入格式:共一行,列表中的元素值,以空格隔开。
输出格式:共一行,为一个列表。
def bubbleSort(ls):
for j in range(len(ls)-1,0,-1):
for i in range(j):
if ls[i]>ls[i+1]:
ls[i],ls[i+1]=ls[i+1],ls[i]
return ls
alist=list(map(int,input().split()))
print(bubbleSort(alist))
列表元素筛选
题目内容:
已知输入为一个列表,列表中的元素都为整数,我们定义元素筛选函数,功能是检查获取传入列表对象的所有奇数位索引(注意列表的索引是从0开始的)对应的元素,并将其作为新列表返回给调用者。
输入格式:共一行,列表中的元素值,以空格隔开。
输出格式:共一行,为一个列表。
def foo(ls):
lst=[]
for i in range(1,len(ls),2):
lst.append(ls[i])
return lst
alist=list(map(int,input().split()))
print(foo(alist))