Skip to content

Latest commit

 

History

History
155 lines (126 loc) · 4.27 KB

File metadata and controls

155 lines (126 loc) · 4.27 KB
Error in user YAML: (<unknown>): found a tab character that violate indentation while scanning a plain scalar at line 3 column 3
---
- oeasy Python 0199
- 这是 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` 
---

循环总结

回忆

  • 上次研究了all函数
    • 迭代对象中
      • 所有 都为True 才能得True
      • 有个False 就为False
  • 全真为真 有假为假
    • all 本质上是 一堆条件的 与运算

图片描述

  • 我们总结一下吧?!🤔

什么是循环

  • 任何一个复杂的系统都是由三种基本结构组成
    • 顺序结构
    • 分支结构
    • 循环结构
  • 顺序结构最简单,程序从上到下依次执行,就如同生活中一条笔直的大马路,一路畅行无阻;
  • 分支结构是指当程序执行到某步时,需根据实际情况选择性的执行某部分代码,就如同生活中的十字路口,需要根据具体情况选择走哪条路,每次只能选择一条路,不可能同时走多条路;
  • 循环结构是指重复执行某些代码,直到条件不满足为止,就如同生活中的盘山公路,一圈圈绕行,直到到达目的地为止。

图片描述

循环总结

  • 我们其实是从 while 语句开始的
    • 从死循环
    • 到循环条件
    • 从 break 跳出到 continue 继续
    • 还有不执行循环时执行的 else
  • 然后进入 for 循环
  • 循环可迭代对象
    • 线性的(元组/列表/字符串/二进制序列)
    • 集合类
      • 映射类(字典)
  • 各种辅助数据类型
    • 缝合器 zip
    • 编号 enumerate
  • 二重甚至多重循环
  • 三种推导式
    • 列表
    • 集合
    • 字典
  • 推导式其实可以转化为不加糖的一般形式

实际应用

print('\n'.join([''.join([('IloveU'[(x-y)%len('IloveU')]if((x*0.05)**2+(y*0.1)**2-1)**3-(x*0.05)**2*(y*0.1)**3<=0 else' ')for x in range(-30,30)])for y in range(15,-15,-1)]))

图片描述

  • 这例子如果转化为普通的循环的形式什么样呢?

普通形式

import time
sentence = "Dear, I love you forever!"
for char in sentence.split():
	allChar = []
	for y in range(12, -12, -1):
		lst = []
		lst_con = ''
		for x in range(-30, 30):
			formula = ((x*0.05)**2+(y*0.1)**2-1)**3-(x*0.05)**2*(y*0.1)**3
			if formula <= 0:
				 lst_con += char[(x) % len(char)]
			else:
				 lst_con += ' '
		lst.append(lst_con)
		allChar += lst
	print('\n'.join(allChar))
time.sleep(1)
  • 这里面的 for、if 包括 while 其实都属于复合语句
  • compand statements
  • 这复合语句又是什么意思呢?

复合语句总结

图片描述

  • if、while 语句是实现传统流程控制的语句
  • try 描述了异常,并给出异常处理方法
  • with 语句描述了一系列语句的初始条件和结束时要释放的资源
  • 复合语句包括一系列的子句
    • 每一个子句头都是一个唯一的关键字
    • 结尾都是冒号
    • 子句里面有好多语句
    • 整个复合语句可以被看做一个整体

大中小总结

  • 大括号 - 集合推导式、字典推导式
  • 中括号 - 列表推导式
  • 小括号 - ?

图片描述

  • 小括号可以得到一个生成器函数

any 和 all

函数 逻辑 策略
any 全假为假,有真为真
all 全真为真,有假为假

图片描述

总结

  • 这一章 我们
    • 深入学习了 循环
  • 循环语句 有
    • while
    • for
      • for可以 遍历各种可迭代对象
      • 容器类(list,tuple,set)
    • 循环可以嵌套
      • 二重
      • 多重
  • 容器可以有各种推导式
    • 列表推导式
    • 集合推导式
    • 字典推导式
  • any 和 all 可以配合
    • 列表推导式
    • 字典推导式
    • 集合推导式
    • 使用语法糖
  • 我们 这次来研究 什么 呢?
  • 那什么是函数呢?
  • 下次再说 👋

  • 本文来自 oeasy Python 系统教程。
  • 想完整、扎实学 Python,
  • 搜索 oeasy 即可。