一、 if语句
思考一:如果周末不下雨,就去逛街,否则就在家学习,像这样的一个选择,该如何用代码表示出来呢?
思考二:在程序当中,我们同样会有很多需要做出选择的地方,那么该怎么做呢?
tianqi = 'xiayu'
if tianqi != 'xiayu':
print('逛街')
else:
print('在家学习')
分析一下,先用个变量表示下条件,然后用if语句进行判断,后面加上冒号(英文的)表示还没结束,下面进行判断条件后的动作,要用到缩进这是pyhton的重点,else表示上一个条件不否,继续冒号,然后是不否怎么做,缩进写上记下来的动作,条件判断返回的都是bool类型,也就是(True,False)
语法详解
!= 代表不等于的意思
== 两个等于号才用来表示相等的意思
if 关键字,判断语句,有“如果”的意思,后面跟上判断语句
else 常和“if”连用,有“否则”的意思,后面直接跟上冒号“:”
优化一下代码:
weather = 'rain'
if weather == 'rain':
print('在家学习')
else:
print('逛街')
优化原则:1、逻辑更加简单,比如少用否定,多用肯定;2、用英文代替拼音,减少歧义
但是想想上线如果我们有多中选择呢?是不是要这样
weather = 'overcast' # 阴天
if weather == 'rain':
print('在家学习')
if weather == 'overcast'"
print('去钓鱼')
if weather == 'sunny':
print('逛街')
多种选择时,可以使用elif,保证在一个判断当中,否则会做很多次判断,增加程序运行时间如下代码
weather = 'overcast'
if weather == 'rain':
print('在家学习')
elif weather == 'overcast':
print('去钓鱼')
else:
print('逛街')
总结:
1、if使用:if后面跟上判断表达式,注意加上某号和缩进
2、else使用:else不能单独使用,后面直接跟上某号,没有判断式
3、elif使用:elif只能跟在if后面,不能单独出现
4、判断使用:判断语句是基本的语句,是必须要掌握的内容
二、 三木运算
思考一:刚才给大家演示了常规的if判断,但是一些简单的if判断有没有简单写法呢?
a = 6
if a > 5:
print(True)
else:
print(False)
a = 6
print(True if a > 5 else False)
分析下,’True‘为真试返回的值,’if a > 5‘是判断式,'False’为假时返回的值
上面第二个同样也是判断,但是要简洁相当多,这样可以节省很多的代码,让代码看起来更加简洁
注意:只有简单if判断可以使用,过于复杂判断就不要使用了,那样会影响代码的可读性
三、 逻辑运算
思考一:刚才我们介绍了if后面可以接上判断语句,如果我们需要同时判断多个条件该怎么办呢?
> | 大于 |
---|---|
< | 小于 |
>= | 大于等于 |
<= | 小于等于 |
== | 等于 |
!= | 不等于 |
在上面已经见到了等于和不等于,在pytho中常用的还有这些比较运算符,这里比较运算符的返回结果都是bool型,在实际使用中,会经常用到它们,或者他们的组合
a = 6
if a > 3 and a < 9:
print('ok')
else:
print('no')
and:表示”并且“或者”和“的意思,只有当and两边都是为真的时候,才会返回真,其他语言中常用&来表示and
左边 | 右边 | 结果 |
---|---|---|
1 | 1 | 1 |
0 | 1 | 0 |
1 | 0 | 0 |
0 | 0 | 0 |
a = 11
if a > 8 or a < 2:
print('ok')
else:
print('no')
or:表示”或者“的意思,只有两边存在真,就会返回真,都会假才会返回假,在其他语言中常用 | 来表示or
左边 | 右边 | 结果 |
---|---|---|
1 | 1 | 1 |
0 | 1 | 1 |
1 | 0 | 1 |
0 | 0 | 0 |
a = False
if not a:
print('ok')
else:
print('no')
not:表示”取反“的意思,也就是真的会变成假的,假的会变成真的,在其他语言中常用!来表示not
右边 | 结果 |
---|---|
1 | 0 |
0 | 1 |
逻辑运算过程中,如果已经能够得到最后的值,则不会再进行后面的判断,这个称为逻辑短路
在这个例子中,因为前面为False,那么结果肯定为False,所以后面的判断就不会再运行,直接返回False
or也存在逻辑短路,只要前面确定为True,则后面就不会再进行判断
Python底层会把连续判断转化成and连接的形式
总结:
1、and是并且的意思,也就是说左右两边需要同时满足
2、or是或者的意思,左右两边只要满足一个即可
3、逻辑短路,理解逻辑短路的原理
4、not是取反的意思,也就是真的会变成假,假的会变成真
四、while循环
思考一:if判断可以选择做某事,但是只能做一次,如果要重复判断很多次呢?
a = 1
while a < 5:
print(a)
a += 1
while的使用和if类似,判断为真的时候则运行缩进里面的代码,判断式为假时则停止循环
使用while循环要注意:循环一定能够停止,注意判断是否能够为假
分析一下:
a | a<5 | 代码 |
---|---|---|
1 | True | print(a);a+=1 |
2 | True | print(a);a+=1 |
3 | True | print(a);a+=1 |
4 | True | print(a);a+=1 |
5 | False | / |
整个循环的过程就如同上表一样,依次执行,知道循环结束
a = 1
while a < 5:
print(a)
a += 1
else:
print('循环结束')
while循环后面也可以接上else循环,当循环正常结束时,就会执行else内的代码
a = 1
while True:
if a % 5 == 0:
break
print(a)
a += 1
else:
print('循环结束')
while后面也可以直接跟上True,但是内部就必须要使用break来终止循环,使用break终止的循环,是不会执行else的内容
总结:
1、while使用:while的使用方法
2、循环终止:循环一定要能够被终止掉,判断式可以为假
3、while中的else:了解:while后面的else在循环正常终止的情况下会执行
4、break:掌握:break终止循环,其后面的else不会执行
五、 本节课总结:
一、if判断
掌握:if判断的使用
掌握:多个条件下的选择判断
二、三目运算
掌握:三目运算的基本使用
三、逻辑判断
掌握:and、or和not三种逻辑运算符
四、while
掌握:while的循环使用方法
掌握:break的使用方法
六、 上次作业
参考代码如下
1、一个时间格式的整数:20201012,利用计算取出它的年月日
a = 20201012
year = a // 10000
moth = a // 100 % 100
day = a % 100
print('{}年{}月{}日'.format(year,moth,day))
2、将多个单词利用字符串拼接,输出成一句话 ‘hello world’‘ my name is ’‘xxx’ 3种
a = 'hello world'
b = 'my name is'
c = 'xiaoyu'
print(a + ' ' + b + ' '+ c)
print(f'{a} {b} {c}')
print('%s %s %s' % (a,b,c))
print('{} {} {}'.format(a,b,c))
import math
r = float(input('请输入圆的半径:'))
area = math.pi * r ** 2
girth = 2 * math.pi * r
print('圆的面积为:{:.2f}'.format(area))
print('圆的周长为:{:.2f}'.format(girth))
六、 作业
1、利用while写出九九乘法表
2、利用random的randint方法写一个猜数字的小游戏*
参考代码下个博客见