对10个数进行排序
本帖最后由 paypojie 于 2022-5-31 22:26 编辑题目的原始地址https://www.runoob.com/python/python-exercise-example37.html
题目:对10个数进行排序。
一般来说 看题目如果有思路的话 不会第一时间去搜索相关解析 而是直接去编辑器里写 或者看看案例怎么写的然后自己动手写
看完案例后 我写下了第一行
if __name__ == '__main__':
这行代码的意思是 只有这段代码是模块自身执行时 才会执行if下的代码块 如果是被其他模块引用的 就不会执行
https://www.zhihu.com/question/49136398 知乎的分享 今天晚上刷到的 大数据真强 下午写的 晚上就刷到了
然后定义一个变量N N的值为10 再定义一个变量L L的值为空列表
N = 10
L = []
接下来 写一个for循环 for循环的次数由N决定 由第一行代码可知 N为10 for循环下的缩进语句要求用户输入内容 然后往空列表添加这些内容
for i in range(N):
yonghu = int(input('请输入数字: '))
L.append(yonghu)
随后 再写一个for循环
# 外层循环
for k in range(N):
下面为内层循环 内层循环的意思是 循环0次到N-k-1次 表示N的值减去当前正在遍历的元素索引 再减一 表示10减掉已经排好序的元素个数再减1 为什么要减1呢 因为要为后面的条件判断做准备 如果当前循环的索引所对应的值比后面的索引对应的值大 那就交换 也就是说 前者大于后者 前者就变成后者的值 后者变成前者的值
# 内层循环
for k in range(0,N-k-1):
# if L < L:
# L,L = L,L
if L > L:
L,L = L,L
完整代码
if __name__ == '__main__':
N = 10
L = []
print('请输入十个数: ')
for i in range(N):
yonghu = int(input('请输入数字: '))
L.append(yonghu)
for k in range(N):
# print(min1)
# j = k
for k in range(0,N-k-1):
# if L < L:
# L,L = L,L
if L > L:
L,L = L,L
print(L)
写的很一般 献丑啦
本帖最后由 paypojie 于 2022-6-1 12:53 编辑
每条评论都回复:lol 限制回帖了 要一小时后才能回帖 加油!慢慢成长 流弊,,我只会用列表里的reverse 冒泡算法确实厉害 list有个sort函数,用上更简洁 python用冒泡,有点浪费,不过赞下楼主分享精神。 恩实现了冒泡排序算法! 虽然讲了原理,但就实用性讲的话,不如list.sort 百度百科里的冒泡排序
Python3
def bubble_sort(nums):
for i in range(len(nums) - 1):# 这个循环负责设置冒泡排序进行的次数
for j in range(len(nums) - i - 1):# j为列表下标
if nums > nums:
nums, nums = nums, nums
return nums
print(bubble_sort())
# 输出: