求阶乘 & 列表元素筛选 & 冒泡排序

本文详细解释了如何用Python编写求阶乘、筛选列表奇数索引元素及实现冒泡排序的函数,并提供了相应的代码示例。
摘要由CSDN通过智能技术生成

目录

1.求阶乘

题目内容:

输出:

2.列表元素筛选

题目内容:

输出:

3.冒泡排序

题目内容:

输出

1.求阶乘

题目内容:

我们定义求n(n为正整数且n<=20)的阶乘的函数为fact,给出程序主体如下:

n=int(input("")) print(fact(n))请补充完成对fact函数的定义。


输入格式:

共一行,为一个小于20的正整数。

输出格式:

共一行,为一个正整数。

输入样例:

3

输出样例:

6


输出:

def fact(n):  #定义函数为fact
    s=1
    for i in range(1,n+1):
        s *= i
    return s

n=int(input('请输入'))
print('阶乘为:' ,fact(n)) #输出

2.列表元素筛选

题目内容:

已知输入为一个列表,列表中的元素都为整数,我们定义元素筛选函数为foo,功能是检查获取传入列表对象的所有奇数位索引(注意列表的索引是从0开始的)对应的元素,并将其作为新列表返回给调用者。给出程序主体如下:

alist=list(map(int,input().split())) print(foo(alist))请补充完成对foo函数的定义。

输入格式:

共一行,列表中的元素值,以空格隔开。

输出格式:

共一行,为一个列表。

输入样例:

1 2 3 4

输出样例:

[2, 4]

输出:

alist=list(map(int,input('请输入:').split()))  #使用空格进行分隔
t=len(alist)
def foo(*args):
#*args 不定参数(不定的意思是指,预先并不知道,函数使用者会传递多少个参数给你)
#*args是用来发送一个非键值对的可变数量的参数列表给一个函数。 *args的用法:当传入的参数个数未知,且不需要知道参数名称时。
    blist=[]
    for i in range(t):
        if i %2 ==1:
            blist.append(alist[i])
    return blist
print(foo(alist))# 索引从0开始查起

alist=list(map(int,input('请输入:').split()))
def foo(alist):
    return alist[1::2]
print('获取的奇数索引为:',foo(alist)) # 索引从0开始查起

3.冒泡排序

题目内容:

冒泡排序是一种简单的排序算法。它重复地遍历要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。遍历数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。这个算法的名字由来是因为越小的元素会经由交换慢慢“浮”到数列的顶端。


已知输入为一个列表,列表中的元素都为整数,我们定义冒泡排序函数为bubbleSort,将列表中的元素按从小到大进行排序后得到一个新的列表并输出,给出程序主体如下:

alist=list(map(int,input().split())) print(bubbleSort(alist))请补充完成对bubbleSort函数的定义。


输入格式:

共一行,列表中的元素值,以空格隔开。

输出格式:

共一行,为一个列表。

输入样例:

1 4 2 3

输出样例:

[1, 2, 3, 4]


输出

def bubbleSort(alist):
    for i in range(len(alist) - 1):
        for j in range(len(alist) - 1 - i):
            if alist[j] > alist[j + 1]:
                alist[j], alist[j + 1] = alist[j + 1], alist[j]
    return alist
#实例化输出
#使用逗号进行分隔(英文逗号)
q = list(map(int, input('请输入元素:').split(',')))
print('从小到大排序的列表:',bubbleSort(q))

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

做个尘世俗人

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值