[TOC]
## **if...else 语句**
### 单分支
```
if 条件:
满足条件后要执行的代码
```
### 双分支
```
if 条件:
满足条件执行代码
else:
if条件不满足就走这段
```
AgeOfOldboy = 48
if AgeOfOldboy > 50 :
print("Too old, time to retire..")
else:
print("还能折腾几年!")
### 多分支
```
if 条件:
满足条件执行代码
elif 条件:
上面的条件不满足就走这个
elif 条件:
上面的条件不满足就走这个
elif 条件:
上面的条件不满足就走这个
else:
上面所有的条件不满足就走这段
```
* 猜年龄的游戏案例
```
age_of_oldboy = 48
guess = int(input(">>:"))
if guess > age_of_oldboy :
print("猜的太大了,往小里试试...")
elif guess < age_of_oldboy :
print("猜的太小了,往大里试试...")
else:
print("恭喜你,猜对了...")
```
上面的例子,根据你输入的值不同,会最多得到3种不同的结果
## **while循环**
### 普通while语法
```python
while 条件:
执行代码
```
> while 指当其后面的条件成立,就执行while下面的代码
* 案例:
写个让程序从0打印到100的程序 ,每循环一次,+1
```python
count = 0
while count <= 100 : #只要count<=100就不断执行下面的代码
print("loop ", count )
count +=1 #每执行一次,就把count+1,要不然就变成死循环啦,因为count一直是0
```
> * 输出
loop 0
loop 1
....
loop 99
loop 100
### 死循环
有一种循环叫死循环,一经触发,就运行个天荒地老、海枯石烂.
while 是只要后边条件成立(也就是条件结果为真)就一直执行,怎么让条件一直成立呢?
```python
count = 0
while True: #True本身就是真呀
print("你是风儿我是沙,缠缠绵绵到天涯...",count)
count +=1
```
### 循环中止语句
如果在循环的过程中不想继续循环了,怎么把它中止掉呢?这就用到break 或 continue 语句
* break
完全结束一个循环,跳出循环体执行循环后面的语句
* continue
终止本次循环,进入下一次循环
**continue和break类似,区别在于continue只是终止本次循环,接着还执行后面的循环,break则完全终止循环**
* 例子:break
```python
count = 0
while count <= 100 : #只要count<=100就不断执行下面的代码
print("loop ", count)
if count == 5:
break
count +=1 #每执行一次,就把count+1,要不然就变成死循环啦,因为count一直是0
print("-----out of while loop ------")
```
>loop 0
loop 1
loop 2
loop 3
loop 4
loop 5
-----out of while loop ------
* 例子:continue
```python
count = 0
while count <= 100 :
count += 1
if count > 5 and count < 95: #只要count在6-94之间,就不走下面的print语句,直接进入下一次loop
continue
print("loop ", count)
print("-----out of while loop ------")
```
>loop 1
loop 2
loop 3
loop 4
loop 5
loop 95
loop 96
loop 97
loop 98
loop 99
loop 100
loop 101
-----out of while loop ------
### while ... else ..
与其它语言else 一般只与if 搭配不同,在Python 中还有个`while ...else` 语句
while 后面的else 作用是指,当while 循环正常执行完,中间没有被break 中止的话,就会执行else后面的
* 案例
```
count = 0
while count <= 5 :
count += 1
print("Loop",count)
else:
print("循环正常执行完啦")
print("-----out of while loop ------")
```
>Loop 1
Loop 2
Loop 3
Loop 4
Loop 5
Loop 6
循环正常执行完啦
-----out of while loop ------
**#如果执行过程中被break,就不会执行else语句**
## **for循环**
while循环长用来的条件判断循环,for循环用来做范围循环,不能做死循环,可以跟esle子句.
可以用来循环打印一个列表,元组中的所有值
### 语法
```
for i in 范围:
执行代码
```
* 例子
```
for i in 1,2,3,4:
print(i)
```
>1
2
3
4
### rang函数生成列表
```
for i in range(3):
print(i)
```
>0
1
2
### 循环列表数据和枚举
* 循环打印列表中的每个元素
```
L2=['A','B','C']
for i in L2:
print(i)
```
>A
B
C
* 循环打印列表每个元素及索引号
需要用到enumerate函数枚举
```
L2=['A','B','C']
for i,n in enumerate(L2):
print(i,n)
```
>0 A
1 B
2 C
- 基础部分
- 基础知识
- 变量
- 数据类型
- 数字与布尔详解
- 列表详解list
- 字符串详解str
- 元组详解tup
- 字典详解dict
- 集合详解set
- 运算符
- 流程控制与循环
- 字符编码
- 编的小程序
- 三级菜单
- 斐波那契数列
- 汉诺塔
- 文件操作
- 函数相关
- 函数基础知识
- 函数进阶知识
- lambda与map-filter-reduce
- 装饰器知识
- 生成器和迭代器
- 琢磨的小技巧
- 通过operator函数将字符串转换回运算符
- 目录规范
- 异常处理
- 常用模块
- 模块和包相关概念
- 绝对导入&相对导入
- pip使用第三方源
- time&datetime模块
- random随机数模块
- os 系统交互模块
- sys系统模块
- shutil复制&打包模块
- json&pickle&shelve模块
- xml序列化模块
- configparser配置模块
- hashlib哈希模块
- subprocess命令模块
- 日志logging模块基础
- 日志logging模块进阶
- 日志重复输出问题
- re正则表达式模块
- struct字节处理模块
- abc抽象类与多态模块
- requests与urllib网络访问模块
- 参数控制模块1-optparse-过时
- 参数控制模块2-argparse
- pymysql数据库模块
- requests网络请求模块
- 面向对象
- 面向对象相关概念
- 类与对象基础操作
- 继承-派生和组合
- 抽象类与接口
- 多态与鸭子类型
- 封装-隐藏与扩展性
- 绑定方法与非绑定方法
- 反射-字符串映射属性
- 类相关内置方法
- 元类自定义及单例模式
- 面向对象的软件开发
- 网络-并发编程
- 网络编程SOCKET
- socket简介和入门
- socket代码实例
- 粘包及粘包解决办法
- 基于UDP协议的socket
- 文件传输程序实战
- socketserver并发模块
- 多进程multiprocessing模块
- 进程理论知识
- 多进程与守护进程
- 锁-信号量-事件
- 队列与生产消费模型
- 进程池Pool
- 多线程threading模块
- 进程理论和GIL锁
- 死锁与递归锁
- 多线程与守护线程
- 定时器-条件-队列
- 线程池与进程池(新方法)
- 协程与IO模型
- 协程理论知识
- gevent与greenlet模块
- 5种网络IO模型
- 非阻塞与多路复用IO实现
- 带着目标学python
- Pycharm基本使用
- 爬虫
- 案例-爬mzitu美女
- 案例-爬小说
- beautifulsoup解析模块
- etree中的xpath解析模块
- 反爬对抗-普通验证码
- 反爬对抗-session登录
- 反爬对抗-代理池
- 爬虫技巧-线程池
- 爬虫对抗-图片懒加载
- selenium浏览器模拟