栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

python基础训练 day3

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

python基础训练 day3

python基础训练 day3

题目来源

小白打卡第三天。

  • 第一题
题目:输入三个整数x,y,z,请把这三个数由小到大输出。

看到题目,首先反映是排序算法,其次想到了python中的sorted()函数。

list_0 = []
for i in ['x', 'y', 'z']:
    you_input = int(input(f'请输入{i}'))
    list_0.append(you_input)
print(sorted(list_0))

啪的一下,很快啊!

# 运行结果
请输入x5
请输入y4
请输入z9
[4, 5, 9]

直接上sorted()是不是有点草率了。。。起不到训练效果,然后就多想了一点。定义一个新列表,在用min()函数选取list_0中的最小值,建立索引然后把老列表中最小的值去掉,在新列表中加进去。

list_0 = []
for i in ['x', 'y', 'z']:
    you_input = int(input(f'请输入{i}'))
    list_0.append(you_input)
print(list_0)
list_1 = []
for i in ['x', 'y', 'z']:
    i = min(list_0)
    list_0.pop(list_0.index(i))
    list_1.append(i)

print(list_1)

之前好像看到过排序算法的总结,查了一下,好家伙一共有10种排序算法。

一并附上:

(1)冒泡排序;(2)选择排序;(3)插入排序;(4)希尔排序;(5)归并排序;

(6)快速排序;(7)基数排序;(8)堆排序;(9)计数排序;(10)桶排序。

# 运行结果
请输入x5
请输入y4
请输入z9
[5, 4, 9]
[4, 5, 9]
  • 第二题
# 斐波那契数列。

斐波那契数列(Fibonacci sequence),又称黄金分割数列,指的是这样一个数列:1、1、2、3、5、8、13、21、34。

在学习的时候练习过,递归基操:

def feibo(n):
    if n == 1:
        return 1
    if n == 2:
        return 1
    return feibo(n-1) + feibo(n-2)
print(feibo(8))

运行结果

21

但是递归它效率太低,空间复杂度(好像是这个词来着…)太高,所以可以用另一种方法

def feibo(n):
    x1 = 1
    x2 = 1
    i = 2
    while True:
        if n == 1:
            return x1
        if n == 2:
            return x2
        x1, x2 = x2, x1+x2
        if i == n:
            return x1
        i += 1
print(feibo(8))

运行结果

21

完成第三日打卡!

世上无难事,只要肯攀登

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/580786.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号