if语句的使用
一、if判断语句介绍
- if语句是用来进行判断的,其使用格式如下:
    if 要判断的条件:        条件成立时,要做的事情- demo1:
    age = 30    print("------if判断开始------")    if age >= 18:        print("我已经成年了")    print("------if判断结束------")- 运行结果:
    ------if判断开始------    我已经成年了    ------if判断结束------- demo2:
    age = 16    print("------if判断开始------")    if age >= 18:        print("我已经成年了")    print("------if判断结束------")- 运行结果:
    ------if判断开始------    ------if判断结束------小总结:
- 以上2个demo仅仅是age变量的值不一样,导致结果却不同;能够看得出if判断语句的作用:就是当满足一定条件时才会执行代码块语句,否则就不执行代码块语句。
- 注意:代码的缩进为一个tab键,或者4个空格
二、练一练
要求:从键盘获取自己的年龄,判断是否大于或者等于18岁,如果满足就输出“哥,已成年,网吧可以去了”
- 使用input从键盘中获取数据,并且存入到一个变量中
- 使用if语句,来判断 age>=18是否成立
if-else
想一想:在使用if的时候,它只能做到满足条件时要做的事情。那万一需要在不满足条件的时候,做某些事,该怎么办呢?
答:使用 if-else
一、if-else的使用格式
    if 条件:        满足条件时的操作    else:        不满足条件时的操作demo1
    ticket = 1 # 用1代表有车票,0代表没有车票    if ticket == 1:        print("有车票,可以上火车")        print("终于可以见到Ta了,美滋滋~~~")    else:        print("没有车票,不能上车")        print("亲爱的,那就下次见了")结果1:有车票的情况
    有车票,可以上火车    终于可以见到Ta了,美滋滋~~~结果2:没有车票的情况
    没有车票,不能上车    亲爱的,那就下次见了elif
想一想:
如果有这样一种情况:当条件A满足时做事情1;当条件A不满足、条件B满足时做事情2;当条件B不满足、条件C满足时做事情3,那该怎么实现呢?
答:
elif
一、 elif的功能
elif的使用格式如下:
    if xxx1:        事情1    elif xxx2:        事情2    elif xxx3:        事情3说明:
- 当xxx1满足时,执行事情1,然后整个if结束
- 当xxx1不满足时,那么判断xxx2,如果xxx2满足,则执行事情2,然后整个if结束
- 当xxx1不满足时,xxx2也不满足,如果xxx3满足,则执行事情3,然后整个if结束
demo:
    score = 77    if score>=90 and score<=100:        print('本次考试,等级为A')    elif score>=80 and score<90:        print('本次考试,等级为B')    elif score>=70 and score<80:        print('本次考试,等级为C')    elif score>=60 and score<70:        print('本次考试,等级为D')    elif score>=0 and score<60:        print('本次考试,等级为E')二、注意点
可以和else一起使用
   if 性别为男性:       输出男性的体重       ...   elif 性别为女性:       输出女性的体重       ...   else:       第三种性别的体重       ...说明:
-  - 当 “性别为男性” 满足时,执行 “输出男性的体重”的相关代码
- 当 “性别为男性” 不满足时,如果 “性别为女性”满足,则执行 “输出女性的体重”的相关代码
- 当 “性别为男性” 不满足,“性别为女性”也不满足,那么久默认执行else后面的代码,即 “第三种性别的体重”相关代码
 
elif必须和if一起使用,否则出错 else 一般用在最后,即所有条件都不满足时使用
if嵌套
通过学习if的基本用法,已经知道了
- 当需要满足条件去做事情的这种情况需要使用if
- 当满足条件时做事情A,不满足条件做事情B的这种情况使用if-else
想一想:
坐火车或者地铁的实际情况是:先进行安检如果安检通过才会判断是否有车票,或者是先检查是否有车票之后才会进行安检,即实际的情况某个判断是再另外一个判断成立的基础上进行的,这样的情况该怎样解决呢?
答:
if嵌套
一、if嵌套的格式
    if 条件1:        满足条件1 做的事情1        满足条件1 做的事情2        if 条件2:            满足条件2 做的事情1            满足条件2 做的事情2- 说明 - 外层的if判断,也可以是if-else
- 内层的if判断,也可以是if-else
- 根据实际开发的情况,进行选择
 
二、if嵌套的应用
demo:
ticket = 1     # 用1代表有车票,0代表没有车票knife_length = 9     # 刀子的长度,单位为cmif ticket == 1: 
    print("有车票,可以进站")    if knife_length < 10:        print("通过安检")        print("终于可以见到Ta了,美滋滋~~~")    else:        print("没有通过安检")        print("刀子的长度超过规定,等待警察处理...")else:    print("没有车票,不能进站")    print("亲爱的,那就下次见了")结果1:ticket = 1;knife_length = 9
    有车票,可以进站    通过安检    终于可以见到Ta了,美滋滋~~~结果2:ticket = 1;knife_length = 20
    有车票,可以进站    没有通过安检    刀子的长度超过规定,等待警察处理...结果3:ticket = 0;knife_length = 9
    没有车票,不能进站    亲爱的,那就下次见了结果4:ticket = 0;knife_length = 20
    没有车票,不能进站    亲爱的,那就下次见了if补充内容
一、区间比较:
在Python中允许类似于 5<a<10 的写法,这种写法在很多编程语言里都是不允许的,需要使用逻辑与运算符进行连接。
a = 101<a<20  # True11<a<20  # False二、三元运算符:
格式: 变量 = 值1 if 条件 else 值2 当条件成立时把 值1 赋值给变量,条件不成立时把 值2 赋值给变量,其实就是对if...else 语句的一种简写。
示例:
a = 10b = 30if a > b:    c = aelse:    c = bprint('a和b两个数的较大值是%d'%c)以上的 if...else 代码可以简写成以下格式:
a = 10b = 30c = a if a>b else bprint('a和b两个数的较大值是%d'%c)三、自动类型转换
if 语句需要一个判断条件,这个判断条件的结果需要一个布尔值。如果此时输入的判断条件不是一个布尔值,在代码执行的过程中,会将这个值自动转换成为一个布尔值。
if 1<2: # if语句的判断条件需要一个布尔值 
    print('1小于2')if "hello": # if 判断条件后没有传入布尔值,会自动把它转换成为布尔值 
    print("这段代码是否会输出呢?")提示:在Python中,转换成为布尔值时,只有 0,"",'',None,(),{},[] 会被转换成为False,其他都会被转换成为True
while 语法
while 判断条件: 
    代码块我们发现,while循环的语法结构和if语句的结构很相像,那么这两个之间有什么区别呢?
if 判断条件: 
    代码块区别在于,if语句只会执行一次判断条件,条件成立以后,只会执行一次代码块;而while语句,会先执行一次判断条件,如果条件成立,会执行一次代码块,代码块执行完成以后,会再次判断条件语句,如果还成立,将会再执行代码语句... 直到最后条件不成立。
示例
输出十遍hello world
i = 1while i <= 10:    print('hello world')    i += 1 # 一定要记得让 i += 1, 否则会造成死循环for循环
除了while循环以外,for可以完成循环的功能。 在Python中 for循环可以遍历任何序列的项目,如一个列表或者一个字符串等。
for循环的格式
for 临时变量 in 列表或者字符串等可迭代对象: 
    循环满足条件时执行的代码for循环的使用
- 遍历字符串:
for s in "hello": 
    print(s)输出结果:
hello- 打印数字
for i in range(5): 
    print(i)输出结果:
01234练习
使用for循环,计算1~100的和
range
range 可以生成数字供 for 循环遍历,它可以传递三个参数,分别表示 起始、结束和步长。
>>> range(2, 10, 3) 
[2, 5, 8]>>> for x in range(2, 10, 3):...     print(x)...258break和continue
break和continue都用在循环语句里,用来控制循环。
break的使用
结束整个循环。
i = 0while i < 10:    i += 1    if i == 7:        break    print(i)输出结果是:
123456 
continue的使用
结束本次循环,开始下一轮循环。
i = 1while i <= 10:    if i == 7:        continue    print(i)    i += 1输出结果是:
1234568910 
练习
- 打印 1~100 内,不能被 7 整除的所有数字。
- 计算 1~100 内,所有不能被 7 整除的数字之和。
- 不断的询问用户,"我爱你,你爱我吗?",只有用户回答"爱"时,结束循环。
注意点
- 在Python中,break和continue只能用于循环语句中。
- break和continue在嵌套循环中使用时,只对最内层循环有效。
嵌套循环
前面学习过if的嵌套了,想一想if嵌套是什么样子的? 类似if的嵌套,while嵌套就是:while里面还有while
while嵌套的格式
while 条件1: 
        外循环代码块        while 条件2:            内循环代码块内循环一旦开始,则要执行到条件2不满足,才会继续执行外循环的代码。
i = 0  # 内外循环的控制变量不能一样while i < 5:    j = 0  # 内循环的控制变量必须要在外循环里初始化    while j < 5:        print('j= %d' % j)        j += 1    print('i= %d' % i)    i += 1在Python中,循环语句还可以和else语句联合使用。
语法结构:
while 判断条件: 
  条件成立时,循环体代码else:  条件不成立时,执行的代码从上述结构中,我们可以看出,在非死循环中,正常情况下else里的语句都是会被执行的。那这个else语句到底有什么作用呢?一般情况下,循环语句和else共同出现时,在循环语句里都会配合break语句来使用。
查看下面的代码:
i = 0while i < 10:    if i == 5:        break    i += 1else:    print('循环条件不成立时执行的代码')