IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Python知识库 -> Python学习日志 3.5 -> 正文阅读

[Python知识库]Python学习日志 3.5

Python学习日志

RBHGO的主页欢迎关注

温馨提示:创作不易,如有转载,注明出处,感谢配合~

目录

第3.5课:Python分支结构和循环结构的应用

这一篇主要是想给大家整合一些分支结构和循环结构的经典例题,所以并不算是单独成的一篇文章,以后要是想穿插列出一些知识点,也会用**.5**的方式。主要是现在的我们基础还比较薄弱,那么大量的练习就是提升的最简单方法。希望大家先看题目然后自己先凭借自己来做这些练习,然后再看看我的,如果我的有问题也请及时联系我修改。

例子1:输出斐波那契数列

说明:斐波那契数列(兔子数列、黄金分割数列),斐波那契数列除了前两位都是1外,从第三个数2开始每前两个数之和就是第三个数。列出来大概就是1、1、2、3、5、8、13、21、34······

“输入一个N,输出n个斐波那契数列‘’这个题目的关键是我们的明确前一个甚至两个数并不在循环之中,所以我们得给他们单独赋值,这样这个程序才能顺利得开始。

# 输入一个N,输出n个斐波那契数列。

num = int(input('请输入一个正整数n = '))
total = 0
x = 1
y = 1
print(x, y, sep='\n')
for _ in range(2,  num):  
    total = x + y
    print(total)
    x = y
    y = total

sep就是为了让输出的每一个结果都换行。通过这个程序,我们就能顺利的拿到1-n的任意一个斐波那契数列,当然不建议把n弄得太大,后面得斐波那契数很大。

例子2:寻找水仙花数

说明:水仙花数也被称为超完全数字不变数、自恋数、自幂数、阿姆斯特朗数,它是一个3位数,该数字每个位上数字的立方之和正好等于它本身,例如:13 + 53 + 33 = 153。

‘’找出100-999之间的水仙花数‘’这个题目的关键是将一个三位数拆分为个位、十位、百位,这一点利用Python中的//(整除)和%(求模)运算符其实很容易做到,代码如下所示。

# 找出100-999之间的水仙花数

for num in range(100, 1000):
    x1 = num // 100
    x2 = (num // 10) % 10
    x3 = num % 10
    if num == x1 ** 3 + x2 ** 3 + x3 ** 3:
        print(f'100-999中的水仙花数是{num}')

例子3:单位转换

”英制单位英寸与公制单位厘米互换“这个题比较简单,是单独对分支结构的应用。只要了解单位之间的倍数关系,写出来应该不难。以英寸和厘米做一个例子,给到其他的单位转化是都是大同小异。

# 英制单位英寸与公制单位厘米互换。

length = float(input('请输入长度: '))
unit = input('请输入单位: ')
if unit == 'in' or unit == '英寸' or unit == 'inch':
    print('%.2f英寸 = %.2f厘米' % (length, length * 2.54))
elif unit == 'cm' or unit == '厘米' or unit == 'centimeter':
    print('%.2f厘米 = %.2f英寸' % (length, length / 2.54))
else:
    print('请输入有效的单位')

例子4:找出完美数

说明:完美数是满足除自身外所有因子的和等于这个数这个条件的数。例如6 = 1 + 2 + 3、 28 = 1 + 2 + 4 + 7 + 14都是完美数

”找出1-10000之间的完美数“这个题目其实并不难,但是明显能看到代码运行到第四个前明显的有延迟,计算机在这里进行的运算量很大,如果把范围再扩大,这个程序明显不够好,我们应该如何改善这个问题呢?

# 找出1-10000之间的完美数

for num in range(1, 10001):
    n = 0
    for i in range(1, num - 1):
        if num % i == 0:
            n += i
    if n == num:
        print(num)

我们试想一下,一个数比如3600,60是他的因子,那么30也是,15也是,所以我们判断是否是例子数的因子,只需要判断出小的,然后直接加上其他的,省略多余的判断过程,是不是程序的运行速度就大大增加了。实现同样效果的程序,下面的程序不到一秒就输出了1-10000里的完美数。

温馨提示:为了避免同一个因子加两次的情况出现,例如36开方是6,同时36除以6也能除的尽,所以要多设置一个分支结构。

for num in range(2, 10001):
    n = 1
    for i in range(2, int(num ** 0.5) + 1):
        if num % i == 0:
            n += i
            if i != num // i:
                n += num // i
    if n == num:
        print(num)

例子5:三角形只知三边求面积周长

"输入一个三角形三条边的长度,如果能构成三角形就计算周长和面积"这个题目,也是一个比较简单的题。关键就在与知不知道海伦公式:三角形知三条边求面积公式,还有就是是否习惯用whilebool值来做循环。

# 输入一个三角形三条边的长度,如果能构成三角形就计算周长和面积,
# 如果不能构成三角型,提示用户重新输入,直到正确


while True:
    sl1 = float(input('请输入三角形的边:'))
    sl2 = float(input('请输入三角形的边:'))
    sl3 = float(input('请输入三角形的边:'))
    p = (sl1 + sl2 + sl3) / 2
    if sl1 + sl2 > sl3 and sl1 + sl3 > sl2 and sl2 + sl3 > sl1:
        print(f'三角形的周长:{sl1 + sl2 + sl3}')
        print(f'三角形的面积:{(p * (p - sl1) * (p - sl2) * (p - sl3)) ** (1 / 2)}')
        break
    else:
        print('不能构成三角形,请您重新输入')

例子6:判断(寻找)质数

说明:质数指的是只能被1和自身整除的正整数(不包括1)。

# 输入一个正整数,判断他是不是质数

x = int(input('请输入一个正整数: '))
if x > 1:
    for i in range(2, x):
        if (x % i) == 0:
            print(f'{x}不是质数')
            break
        else:
            print(f'{x}是质数')
            break
else:
    print(f'{x}不是质数')

这个题还有另一种做法

# 第二种做法,利用布尔值的逻辑结构进行判断

x = int(input('请输入一个正整数: '))
is_prime = True
for i in range(2, x):
    if (x % i) == 0:
        print(f'{x}不是质数')
        break
if x > 1 and is_prime:
    print(f'{x}是质数')
else:
    print(f'{x}不是质数')

总结

还是那句话:分支结构和循环结构非常重要,是构造程序逻辑的基础,一定要通过大量的练习来达到融会贯通。刚才讲到这些例子都非常经典,如果你能很顺利的完成这些代码,那么分支和循环结构的知识你就已经掌握了。

感谢学习陪伴,您的点赞,评论就是我更新的动力

  Python知识库 最新文章
Python中String模块
【Python】 14-CVS文件操作
python的panda库读写文件
使用Nordic的nrf52840实现蓝牙DFU过程
【Python学习记录】numpy数组用法整理
Python学习笔记
python字符串和列表
python如何从txt文件中解析出有效的数据
Python编程从入门到实践自学/3.1-3.2
python变量
上一篇文章      下一篇文章      查看所有文章
加:2021-07-25 11:36:25  更:2021-07-25 11:36:33 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年4日历 -2024/4/28 10:00:51-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码