4.1.顺序结构:秉承从上到下,从做到右的运行规则,如下图:
[](javascript:void(0)😉
#顺序结构
xiaoming = "我很帅。"
xiaoliu = "小明你的确很帅,但是不能当饭吃啊!!!,还是要继续努力学习!"
print("小明说:"+xiaoming,xiaoliu,sep='小刘鄙视的说:')
#=运行结果
小明说:我很帅。小刘鄙视的说:小明你的确很帅,但是不能当饭吃啊!!!,还是要继续努力学习!
[](javascript:void(0)😉
4.2.分支结构–条件判断
条件语句或判断语句,指明了当某些条件成立时才运行某个模块。否则,会跳过这个区块中的语句,然后继续运行区块后面的语句
python中的条件语句都以if开头
4.2.1 if语句
如下例子,输入年龄,根据不同的年龄打印不同的内容,用python中if语句怎么实现:
age = int(input("请输入年龄:"))
if age >= 20:
print("你今年"+age+岁)
print("ok")
python中,如果if后面条件语句判断是True,就把缩进的两行print语句执行,否则,什么不会执行
**注意:
¥ 每个条件语句后面有个冒号
¥ 每个条件语句下面的缩进,就是为了让python解释器知道:条件满足后,要执行的代码究竟到什么位置。当然缩进四个空格只是推荐做法
你完全可以缩进1个、2个或者6个,甚至Tab键盘进行缩进。但是同一个条件语句下面对应的执行代码必须对齐。如果缩进一个空格,那么
都缩进一个,相邻的相同缩进距离的代码都是顺序执行的
4.2.2 else语句
也可以给if添加一个else语句,意思是,如果if后面的条件语句判断是False,不要执行if的内容,而是执行else的那部分
[](javascript:void(0)😉
age = int(input("请输入年龄:"))
if age >= 18:
print("你成年了")
else:
print("你还是未成年人,不能上网!!!")
[](javascript:void(0)😉
else语句对应下面要执行的代码缩进规则和if语句一致
4.2.3.elif语句
如果需要更加多的判断情况,这时候采用elif的方法:
elif是else if的缩写
[](javascript:void(0)😉
results = int(input("请输入你的成绩:"))
if results >= 90:
print("你的成绩很优秀")
elif 90 > results >= 70:
print("你的成绩良好")
elif 70 > results >= 60:
print("成绩合格")
else:
print("很遗憾,成绩不合格,继续努力哦")
[](javascript:void(0)😉
**注意点:
~~条件判断代码以if开头,其余的条件以elif开头,结尾else表示不满足除了上面的条件以为的情况
~~每个条件语句后面有个冒号:
~~每个条件语句下面对应的执行内容,均以缩进缩进了四个空格
~~也可以只有if,而没有else
补充:if语句执行有个特点,它是从上往下判断,如果在某个判断上是True,把该判断对应的语句执行后,忽略掉剩下的elif和else
4.2.4.多个条件表达式的组合
多个条件的组合
age = 60gender = 'male'if age >=60 and gender == 'male': print('old gentleman')
注意,上面链接,需要同时成立两个条件,关键字是and**
如果是其中一个条件成立即可的关键字,我们用or,比如
age = 60gender = 'male'if age >= 60 or age < 18: print('you can not play this game')
我们经常在一个条件前面加上not表示反义,比如
age = 60gender = 'male'if not(age >= 60 or age < 18): print('you can play this game')
如下组合也可以
age = 60
gender = ‘male’
if (age >= 60 or age <18 and gender==‘female’)
print(‘you can not play this game’)
4.2.5.条件语句嵌套
条件语句块里面还有条件判断。可以称之为条件语句的嵌套
如下例子:假设一个班级,要给学生安排座位,规则是同名的学生不能安排在一个课桌。并且每个课桌上,名字按字母排序,排在前面的坐在左边
[](javascript:void(0)😉
if studentname1 != studentname2:
print('this could sit together')
if student01 <= student02:
print('%s sit in left' % studentname1)
else:
print('%s sit in left' % studentname2)
[](javascript:void(0)😉
**注意,里面的条件判断对应的执行代码再次缩进
4.3.流程控制:循环
判断和循环是两个最基本的控制程序执行的方式。上面我们讲了条件判断,现在来说说循环。所谓循环就是重复的执行某段代码段。可能会给循环设定一些条件
只有添加满足就不断循环,条件不满足时推出循环
4.3.1.while循环
python就采用while关键字来表示某个条件成立情况下,一直执行一些动作,如下:
while 条件表达式
循环代码
**python中如果需要做不定次数的循环,建议使用while Ture这种结构,但python中没有do-while这种循环
[](javascript:void(0)😉
li = []
while True:
i = input('说:')
if i != 'quit':
li.append(1)
else:
break()
[](javascript:void(0)😉
我们要避免错误的死循环,可是死循环在特定场所也有其应用,像Liunx Shell这样人机交互程序,就是一个死循环,它循环等待用户输入命令,
执行,在等用户输入命令。在执行。
4.3.2.for循环
for循环,在明确循环次数的时候建议使用for循环。
python中for循环可以取一个范围内的值:
[](javascript:void(0)😉
for i in range(3):
age = int(input("请输入年龄:"))
if age >=18:
print("你已经成年了")
elif age >= 65:
print("退休时候了,好好享受吧!!!")
else:
print("哎呀,年龄太小,好好学习吧")
[](javascript:void(0)😉
python中for循环还可以直接从序列中取出元素
#for循环从列表选取
list_num = ['零','壹','贰','叁','肆','伍','陆','柒','捌','玖']
for i in list_num:
print(i)
4.3.3循环嵌套
在循环里面还有循环。这样子被称之为循环的嵌套。循环嵌套通常用来列出可能的组合性
如下:
boys = ['Mike','Jack','Tom']
girls = ['Lisa','Linda','Mary']
for boy in boys
for girl in girls:
print('%s kiss %s' % (boy,girl))
嵌套循环,是从外层往内执行的。当内层的循环都执行完后,再继续执行外层循环。
4.3.4.range()函数
如果我们想计算1-10的整数之和,可以用sum变量做累加
[](javascript:void(0)😉
sum = 0
for x in [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]:
sum = sum + x
print(sum)
print('*******')
print(sum)
[](javascript:void(0)😉
那如果要计算1到10000呢?,这时候就可以使用range()函数,可以生成一个整数序列,例如range(10)生成的序列是从0开始小于10的整数
[](javascript:void(0)😉
Int_list = []
for one in range(10):
Int_list.append(one)
print(one)
print(Int_list)
[](javascript:void(0)😉
那1到10000求和是多少呢?
[](javascript:void(0)😉
Int_list = []
for one in range(10000):
Int_list.append(one)
print(Int_list)
print(sum(Int_list))
[](javascript:void(0)😉
使用range指定区间的值
[](javascript:void(0)😉
for i in range(5,10):
print(i)
D:\tools\Python37-32\python.exe H:/woniuxy/pytestlearn/day03/loop.py
5
6
7
8
9
[](javascript:void(0)😉
**注意,左含右不含,区间为5到10,但是不包含10
使用range()可以指定数字开始并指定不同的增量(甚至可以是负数,有时候也叫做步长),下面例子指定步长为5:
[](javascript:void(0)😉
for one in range(0,20,5):
print(one)
#执行结果
D:\tools\Python37-32\python.exe H:/woniuxy/pytestlearn/day03/loop.py
0
5
10
15
[](javascript:void(0)😉
结合range()和len()函数以遍历一个序列的索引,如下所示
[](javascript:void(0)😉
se = ["google","Baidu","biying","sougou"]
for i in range(len(se)):
print(i,se[i])
#执行结果
D:\tools\Python37-32\python.exe H:/woniuxy/pytestlearn/day03/loop.py
0 google
1 Baidu
2 biying
3 sougou
[](javascript:void(0)😉
4.3.5.break和continue
break语句用来中止当前的循环。注意这里的用词:当前循环。因为循环可能会嵌套
[](javascript:void(0)😉
print("break用法展示:")
sites = ["google","baidu","biying","sougou"]
for site in sites:
if site == "biying":
print("找到了%s" % site )
break
print("循环数据"+site)
print("完成循环")
D:\tools\Python37-32\python.exe H:/woniuxy/pytestlearn/day03/endCycle.py
break用法展示:
循环数据google
循环数据baidu
找到了biying
完成循环
[](javascript:void(0)😉
continue用于中止当前循环的continue后面的剩下的其余语句,但是当前循环本身并不中止,还要继续下一轮循环
[](javascript:void(0)😉
print("continue用法展示:")
sites = ["google","baidu","biying","sougou"]
for site in sites:
if site == "biying":
print("找到了%s" % site)
continue
print("循环数据"+site)
print("完成循环!!!")
D:\tools\Python37-32\python.exe H:/woniuxy/pytestlearn/day03/endCycle.py
continue用法展示:
循环数据google
循环数据baidu
找到了biying
循环数据sougou
完成循环!!!
[](javascript:void(0)😉
4.3.6 else和pass关键字
**else在循环结构中的应用,官方文档提示只有在break后,else不会被执行
[](javascript:void(0)😉
#else关键字
li = ["hello","你好","哈哈大笑","吃饭","123"]
for i in li:
if i == "吃饭":
print("不表演了,妈妈叫你吃饭了!!!")
break
else:
print("完成!")
[](javascript:void(0)😉
执行结果发现:当break后,else里面的代码并没有执行,如果没有else,一定会在后台打印完成
**pass关键字
pass是为了使空结构的结构体能够顺利通过解释器编译的关键字,可以在循环结构、分支结构、函数
类等结构中使用
[](javascript:void(0)😉
li = ["hello","你好","哈哈大笑","吃饭","123"]
for i in li:
if i == "吃饭":
print("不表演了,妈妈叫你吃饭了!!!")
break
elif i == "你好":
pass
[](javascript:void(0)😉
4.3.7 列表生成式
在python里面,我们经常要从一个squence类型的对象里产生一个list。假设下面是某部门人员税前工资表
[10000,12000,20000,8500,5500,13000]
那现在我们要计算一下税收工资列表,需要把里面的所有元素乘以95%(假设个税为5%)
该怎么做?
[](javascript:void(0)😉
#已有知识实现
pay = [10000,12000,20000,8500,5500,13000]pay_list = []for one in pay: pay_list.append(one*0.95)print(pay_list)
[](javascript:void(0)😉
但是python里面提供了,更加简单的写法
[](javascript:void(0)😉
pay = [10000,12000,20000,8500,5500,13000]
pay_list = [one*0.95 for one in pay]
print(pay_list)
D:\tools\Python37-32\python.exe H:/woniuxy/pytestlearn/day03/list.py
[9500.0, 11400.0, 19000.0, 8075.0, 5225.0, 12350.0]
[](javascript:void(0)😉
上述这种写法术语:List comprehensions。而且还支持过滤部分元素生成新的列表。它的完整语法如下:
[expr for iter_var in iterable if cond_expr]
比如上面薪资我们只想计算大于等于10000的那些,怎么计算
pay_list = [one*0.95 for one in pay if one >= 10000]
print(pay_list)
= [one*0.95 for one in pay]
print(pay_list)
D:\tools\Python37-32\python.exe H:/woniuxy/pytestlearn/day03/list.py
[9500.0, 11400.0, 19000.0, 8075.0, 5225.0, 12350.0]
[[外链图片转存中...(img-sTs7jPEi-1602636836599)]](javascript:void(0);)
上述这种写法术语:List comprehensions。而且还支持过滤部分元素生成新的列表。它的完整语法如下:
[expr for iter_var in iterable if cond_expr]
比如上面薪资我们只想计算大于等于10000的那些,怎么计算
```python
pay_list = [one*0.95 for one in pay if one >= 10000]
print(pay_list)