if语句:
a = 5
if a == 4:#不成立
print('a的值等于4')
else:
print(f'a的值是{a}')
!=:判断不等于的意思
==:判断等于的意思
if:关键字,判断语句,有“如果”的意思,后面跟上判断语句
else:常和“if” 连用,有“否则”的意思,后面直接跟上冒号 “:”
代码优化:优化的原则: 1. 逻辑更加简单,比如少用否定,多用肯定
2. 用英文代替拼音,减少歧义
elif:多种选择时,可以使用 elif ,保证在一个判断当中,
否则会要做很多次判断,增加程序运行时间
x = 6 #
if x == 5:#False
print('x的值是5')
elif x == 6:
print('x的值是6')
elif x == 7:
print('x的值是7')
else:
print('我也不知道')
三目运算:注意:只有简单if判断可以使用,过于复杂判断就不要使用了,那样会影响代码的可读性
a = 12
#为真执行 if a==12 为假执行
print('a的值小于等于12') if a <= 12 else print('a的值大于12')
==================== RESTART: C:\Users\Guai\Desktop\1.py ====================
a的值小于等于12
>>>
逻辑运算:
> | < | >= | <= | == | != |
---|---|---|---|---|---|
大于 | 小于 | 大于等于 | 小于等于 | 等于 | 不等于 |
当需要同时判断多个内容的时候,可以使用 与、或、非 等逻辑来同时判断多个条件
与逻辑:and
表示“并且”或者“和” 的意思,只有当 and 两边都是为真的时候,才会返回 真, 在其他语言中常用 & 来表示 and
a = "小龙虾"
b = "可乐"
if a == "小龙虾" and b == "雪碧": #两者为真 且为真
print("宵夜真好吃1")
else:
print("不吃")
==================== RESTART: C:\Users\Guai\Desktop\1.py ====================
不吃
>>>
或逻辑:or
表示“或者”的意思,只要两边存在真,就会返回真,都会假才会返回假, 在其他语言中常用 | 来表示 or
if a == "小龙虾" or b == "可乐": #两者其一为真 且为真
print("宵夜真好吃2")
else:
print("不吃")
==================== RESTART: C:\Users\Guai\Desktop\1.py ====================
宵夜真好吃2
>>>
非逻辑:not
表示“取反”的意思,也就是真的会变成假的,假的会变成真的,在其他语言中常用 ! 来表示 not
if not(True): #真为假 假为真 取反 not(a == "小龙虾" and b == "可乐")
print("宵夜真好吃3")
else:
print("不吃")
==================== RESTART: C:\Users\Guai\Desktop\1.py ====================
不吃
>>>
逻辑短路:逻辑运算过程中,如果已经能够得到最后的值,则不会再进行后面的判断,这个称为逻辑短路
>>> a = 3
>>> a > 2 and b > 1
Traceback (most recent call last):
File "<pyshell#1>", line 1, in <module>
a > 2 and b > 1
TypeError: '>' not supported between instances of 'str' and 'int'
>>> a > 4 and b > 1
False
在上面这个例子中,因为前面为False,那么结果肯定为False,所以后面的判断就不会再运行,直接返回False
>>> a = 5
>>> a < 5 or b > 1
Traceback (most recent call last):
File "<pyshell#4>", line 1, in <module>
a < 5 or b > 1
TypeError: '>' not supported between instances of 'str' and 'int'
>>> a == 5 or b > 1
True
>>>
or 也存在逻辑短路,只要前面确定为True,则后面就不会再进行判断
>>> '1'>'2'>3
False
>>> '1'>'2' and '2'>3
False
>>>
Python底层会把连续判断转化成and 连接的形式
while循环:
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的内容
#break 结束循环 属性循环内的函数
z = 1
while True:
print(z)
z += 1
if z % 5 == 0:
break
#continue 跳出循环 执行下一次循环
f = 1
while f < 10: # t t t t t 5《10
if f == 5: #t
f += 1 #6
continue
print(f)
f += 1 #3+1 4+1
作业:
九九乘法表:
a=1
while a <= 9:
b = 1
while b <= a:
print(f'{b}*{a}={b*a}',end = '\t')
b += 1
print()
a += 1
====== RESTART: C:\Users\Guai\Desktop\python\04条件语句和while循环\作业\99乘法表.py ======
1*1=1
1*2=2 2*2=4
1*3=3 2*3=6 3*3=9
1*4=4 2*4=8 3*4=12 4*4=16
1*5=5 2*5=10 3*5=15 4*5=20 5*5=25
1*6=6 2*6=12 3*6=18 4*6=24 5*6=30 6*6=36
1*7=7 2*7=14 3*7=21 4*7=28 5*7=35 6*7=42 7*7=49
1*8=8 2*8=16 3*8=24 4*8=32 5*8=40 6*8=48 7*8=56 8*8=64
1*9=9 2*9=18 3*9=27 4*9=36 5*9=45 6*9=54 7*9=63 8*9=72 9*9=81
>>>
猜数:
import random
boom = random.randint(1,100)
number = input('请输入猜的一个数值: ')
number = int(number)
while number != boom:
if number > boom:
print('您猜的数大了')
else:
print('您猜的数小了')
number = input('请输入猜的一个数值: ')
number = int(number)
else:
print('恭喜你猜对了')
print('游戏结束')
======= RESTART: C:\Users\Guai\Desktop\python\04条件语句和while循环\作业\猜数.py =======
请输入猜的一个数值: 18
您猜的数小了
请输入猜的一个数值: 40
您猜的数小了
请输入猜的一个数值: 50
您猜的数小了
请输入猜的一个数值: 60
您猜的数小了
请输入猜的一个数值: 70
您猜的数大了
请输入猜的一个数值: 68
恭喜你猜对了
游戏结束
>>>