4.1.分支结构--条件判断

4.1.顺序结构:秉承从上到下,从做到右的运行规则,如下图:

[复制代码](javascript:void(0)😉

#顺序结构
xiaoming = "我很帅。"
xiaoliu = "小明你的确很帅,但是不能当饭吃啊!!!,还是要继续努力学习!"
print("小明说:"+xiaoming,xiaoliu,sep='小刘鄙视的说:')

#=运行结果
小明说:我很帅。小刘鄙视的说:小明你的确很帅,但是不能当饭吃啊!!!,还是要继续努力学习!

[复制代码](javascript:void(0)😉

4.2.分支结构–条件判断

条件语句或判断语句,指明了当某些条件成立时才运行某个模块。否则,会跳过这个区块中的语句,然后继续运行区块后面的语句

python中的条件语句都以if开头

img

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)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值