由于现实原因,本文不再更新,如果对其他题目有疑问的仍然可以在下面留言,我会及时回复

-----------------------------------------------------------------------

如果有疑问或者答案有错误的,请在下方评论区给我留言



1.完成函数,计算并返回任意正整数n的阶乘,也就是从1到n所有正整数的乘积,例如5!=1x2x3x4x5.把下面函数中的pass语句删除,替换为自己的代码(可以是一行或多行) 。不得修改函数定义,要求使用for循环实现。


def factorial(n):
    result = 1
    i=1
    for i in range(1, n+1):
        result *= i
    return result

n = int(input("请输入一个整数:"))
print("{}的阶乘是:{}".format(n, factorial(n)))



2.填空完成函数,计算并返回任意多个整数的和。要求:删除下面代码中的下画线,替换为自己的代码,不能改变函数名称。要求不能使用for循环。


def main(*args):
    return sum(args)
这个函数使用了可变长度参数*args,可以接受任意多个参数。sum(args)函数可以将所有参数求和并返回结果。因此,main(*args)函数实现了计算任意多个整数的和的功能。



3.完成函数,实现如下功能:给定任意列表lst和一个任意值item,返回item在lst中第一次出现的位置,如果列表lst中不存在元素item则返回字符串"不存在’,注意要使用单引号。把下面函数中的pass语句删除,替换为自己的代码(可以为一行或多行)。


def main(lst, item):
    if item in lst:
        return lst.index(item)
    else:
        return '不存在'
#这个函数使用了Python内置的list.index()方法,该方法可以返回列表中某个元素第一次出现的索引位置。首先,判断item是否在lst列表中出现过,如果存在则返回其在列表中第一次出现的位置索引。如果不存在,返回字符串"不存在",使用单引号括起来。



4.函数main()接收一个包含若干整数的列表lst,要求返回一个列表,列表中包含原列表中大于或等于所有整数平均值的整数。删除下面代码中的pass语句,替换为自己的代码,完成要求的功能。


def main(lst):
    average = sum(lst) / len(lst)
    return [x for x in lst if x >= average]
#这个函数首先计算列表lst中所有整数的平均值average,然后使用列表推导式构建一个新的列表,其中只包含大于或等于平均值的整数。列表推导式的格式为[expression for item in iterable if condition],其中expression是要求的表达式,item是在列表中遍历的元素,iterable是一个可迭代的对象(如列表、元组、集合、字符串等),condition是一个可选的条件,只有满足条件的元素才会被包含在新的列表中。在本例中,表达式是x,item是lst中的元素,条件是x >= average,即x大于或等于平均值。因此,这个列表推导式的作用是筛选出lst中所有大于或等于平均值的整数,并将它们放入一个新的列表中返回。



5.函数main()接收两个正整数p和g,要求返回一个元组,元组中第一个元素为p整除g的商,第二个元素为p对g的余数。删除下面代码中的下画线,替换为自己的代码,完成函数的功能。不能使用运算符//和%.


def main(p, q):
    if q == 0:
        raise ValueError("q cannot be zero")

    quotient = 0
    remainder = p

    while remainder >= q:
        remainder -= q
        quotient += 1

    return (quotient, remainder)



6.函数main()接收一个正整数num,要求返回正整数num各位数字之和。删除下面代码中的pass语句,替换为自己的代码,完成函数要求的功能。不能导入任何模块,不能使用循环结构和任何形式的推导式,不能使用内置函数eva1()


def main(num):
    if num < 10:
        return num
    else:
        x = num % 10
        smaller_num = num // 10
        return x + main(smaller_num)



7.函数main()接收一个包含若干整数的列表lst,要求返回一个新列表,新列表包含原列表lst中的唯一元素《重复的元素只保留一个),并且所有元素保持在原列表中首次出现的相对顺序。例如,调用函数main([1,2,3,1,47)会输出[1,2,3,4]。删除下面代码中的pass语句,替换为自己的代码,完成要求的功能。不能使用循环结构和任何形式的推导式


def main(lst):
    if not lst:
        return []
    x, xs = lst[0], lst[1:]
    return [x] + main(list(filter(lambda y: y != x, xs)))



8.函数main()接收包含若干字符串的列表lst,要求返回一个新列表,新列表中包含原列表lst中每个字符串变成小写之后的字符串。删除下面代码中的pass语句,替换为自己的代码,完成要求的功能。


def main(lst):
    return [s.lower() for s in map(str, lst)]
#这个函数首先使用map函数将lst中的每个元素都转换为字符串类型,然后将它们转换为小写字母。最后,它使用列表推导式将所有小写字符串收集到一个新列表中并返回。这个实现非常简洁,也非常高效。



9.函数main()接收一个包含若干字符串的列表lst,要求把这些字符串按长度从大到小排序并返回包含排序之后字符串的新列表。删除下面代码中的下画线,替换为自己的代码,完成要求的功能。


def main(lst):
    return sorted(lst, key=len, reverse=True)
#该函数使用sorted函数对lst进行排序。它使用key=len参数来指定排序的关键字,即按字符串的长度进行排序。它还使用reverse=True参数来确保结果按长度从大到小进行排序。最终,该函数返回一个包含排序后字符串的新列表。



10.函数main()接收一个正整数n,返回n的阶乘n!=1*2*3*....*n,要求编写代码调用该函数分别计算并输出20的阶乘、30的阶乘和40的阶乘。不允许修改已有的代码。


from functools import reduce
from operator import mul

def main(n):
    return reduce(mul, range(1, n+1))

print(main(20))  
print(main(30))  
print(main(40))  
#该代码直接调用main函数来计算20、30和40的阶乘,并使用print函数将结果输出到控制台。



11.已知标准库operator中的mul函数相当于乘号运算符可以用来计算两个数字的乘积,函数main()接收两个包含若干整数的列表vector1和vector2,并且vector1和vector2的长度相等分别表示两个向量,要求计算并返回两个列表表示的向量的内积,也就是对应分量乘积的和。例如,对于参数vector1 = [1,2,3]和vector2 = [4,5,6],计算1*4 + 2*5 +3*6 = 32,返回32。删除下面代码中的pass语句,替换为自己的代码,完成要求的功能。


from operator import mul
from functools import reduce

def main(vector1, vector2):
    return reduce(lambda x, y: x + y, map(mul, vector1, vector2))




12.