Error in user YAML: (<unknown>): found a tab character that violate indentation while scanning a plain scalar at line 3 column 3
---
- oeasy Python 0179
- 这是 oeasy 系统化 Python 教程,从基础一步步讲,扎实、完整、不跳步。愿意花时间学,就能真正学会。
- 本教程同步发布在:
- 个人网站: `https://oeasy.org`
- 蓝桥云课: `https://www.lanqiao.cn/courses/3584`
- GitHub: `https://github.com/overmind1980/oeasy-python-tutorial`
- Gitee: `https://gitee.com/overmind1980/oeasypython`
---- 上次主要了解的是 continue 关键字
- continue 是一个语句 statement
- 她的作用是结束本轮循环
- 回到循环条件语句
- 继续循环
- 和 break 那种直接跳出循环的凌厉作风不同
- 帮助手册说除了 while 循环语句之外
- 还有一种 for 循环语句
- for 是什么意思?🤔
- 这事情其实 while 也能做
- 怎么做?
- 同样的事情 while 需要 4 行
- for 只用两行
- 关键就在于 range(3)
- 什么是 range(3)?
- range 函数可以得到一个类似于元组的东西
- 然后让这个 for 遍历这个元组中的元素
- 如果只有一个参数
- 从零开始
- 前闭后开
- 如果有两个参数
- 前闭后开
- 如果有三个参数
- 中间增量为第三个参数
- 我们再来看一个例子
- 我们做一个具体的练习
- 我们每天进步1%
- 那么有一年进步了多少
- 每天退步1%
- 一年退步了多少?
- 输入法在桌面
- 点击输入法之后
- 右键右下角小图标
dayup = 1
dayfactor = 0.01
for day in range(365):
dayup *= (1 + dayfactor)
print("进步幅度{:.3f}".format(dayup))
-
这里的{:.3f}指的是保留三位有效数字
-
别小看这个例子哦
-
人工智能也是
- 由各种初始值
- 各种因子等等
- 一步步具有的智能
-
有进步就有退步
- 同样可以得到退步幅度
- 每天退步一点点
dayup = 1
dayfactor = 0.01
for day in range(365):
dayup *= (1 - dayfactor)
print("退步幅度{:.3f}".format(dayup))
- 如果是想要让这个进步幅度
- 通过手动输入应该如何呢?
- 如果是五年不断进步又会如何呢?
- 如果进步5天,休息两天又会如何呢?
s_fangzi = "麻黄9g 炙甘草6g 杏仁9g 生石膏15-30g(先煎) 桂枝9g 泽泻9g 猪苓9g 白术9g 茯苓15g 柴胡16g 黄芩6g 姜半夏9g 生姜9g 紫菀9g 冬花9g 射干9g 细辛6g 山药12g 枳实6g 陈皮6g 藿香9g"
l_drugs = s_fangzi.split(" ")
i_num = 0
for s_drug in l_drugs:
i_screen_len = 0
for c in s_drug:
if 0x4e00 <= ord(c) <= 0x9fff:
i_screen_len += 2
else:
i_screen_len += 1
if i_screen_len >= 8:
s_drug = s_drug + "\t"
elif i_screen_len >= 4:
s_drug = s_drug + "\t\t"
print(s_drug,end='')
if i_num % 4 == 3:
print()
i_num = i_num + 1
- 这个药方输出的过程中
- 根据字体 长度判断
- 补齐 缩进
- 分类讨论
- 我们输出0-127等数字对应的chr的时候
- 0好像被黑暗森林所吞没
- 如果用序号:字符的方式
-
可以找到0这个字符
-
问题出在哪里呢?
-
esc的时候
- 他从正常输出序列逃逸了
- 一直到1的时候才回来
-
那我要跳过27号字符
- 输出结果
-
0和前面的符号并没有被黑暗森林所吞没
-
而是跟着esc键逃逸了😁
-
比如一个明确的列表
- 其中某元素数量是固定的
- 这样可以 只保留 一个元素
- 这个程序计算数列
- 1/x+1/(x+1)+1/(x+2)+ ... +1/n
- 设 x = 1,n = 10
#!/usr/bin/env python3
sum = 0
for i in range(1, 11):
sum += 1.0 / i
print("{:2d} {:6.4f}".format(i , sum))- 运行程序
- 可以让n不断增加
- 观察效果
- 这次主要了解的是 for 循环语句
- for循环和while循环可以相互转化
- for 循环可以遍历
- range 对象
- list 对象
- for还能干点什么好玩的么?
- 下次再说 👋
- 本文来自 oeasy Python 系统教程。
- 想完整、扎实学 Python,
- 搜索 oeasy 即可。















