一、布尔类型
布尔(bool)表达现实生活中的逻辑,即真和假,True表示真 ,False表示假。 在进行if判断时,表达式的值为1(或者非0)即为真,表达式的值为0即为假。
二、比较运算符
运算符 | 描述 | 示例 |
== | 是否等于 | a=3,b=3,(a==b)为真 |
!= | 是否不等于 | a=3,b=3,(a==b)为假 |
> | 是否大于 | a=2,b=3,(a>b)为假 |
< | 是否小于 | a=2,b=3,(a<b)为真 |
>= | 是否大于等于 | a=3,b=3,(a>=b)为真 |
<= | 是否小于等于 | a=3,b=3,(a<=b)为真 |
三、判断语句
3.1 if 语句
if 要判断的条件:
条件成立时,要做的事情
用代码举例:
if 5>4:
print("5>4")
if 2>4:
print("2>4")
输出:
5>4
第一个if条件成立,为真,执行print语句,输出“5>4”;第二个if条件不成立,为假,不执行print语句。
3.2 if else 语句
if 要判断的条件:
条件成立时,要做的事情
else:
条件不成立时,要做的事情
用代码举例:
条件成立时:
number=4
if number%2==0:
print("number为偶数")
else:
print("number为奇数")
输出:
number为偶数
条件不成立时:
number=7
if number%2==0:
print("number为偶数")
else:
print("number为奇数")
输出:
number为奇数
关于缩进:
在python的if判断语句中,if语句、else语句、elif语句,这些语句能控制多少条子句,都是靠子句的缩进控制的(需要4个空格作为缩进),PyCharm使用非常方便,在写完判断语句后,会一直默认进入执行语句的格式,点击删除键即可正常输入其他语句。
在C语言中,if语句,else语句,else if语句,这些语句能控制多少条子句,都是靠“{ }”控制的,请读者勿混淆。
3.3 if elif else语句
if 条件1:
条件1成立时,要做的事情
elif 条件2:
条件2成立时,要做的事情
elif 条件3:
条件3成立时,要做的事情
......
else:
条件都不成立时,要做的事情
用代码举例:
#在商场消费一定金额可获得相应的赠品
count=599 #消费金融为599元
if count>1000:
print("本次消费您可获得洗衣液一瓶")
elif count>500:
print("本次消费您可获得洗洁精一瓶")
else:
print("本次消费您可获得纸扇一把")
输出:
本次消费您可获得洗洁精一瓶
3.4 if 语句的嵌套
#通过一个长方体的长、宽、高是否相等来判断其是否为正方体
length=3
width=3
height=3
if length==width:
if width==height:
print("该长方体为正方体")
输出:
该长方体为正方体
四、循环语句
循环有2种常用语句,分别是while循环和for循环,语句格式和适用场景稍有不同,逻辑是相同的,符合条件则一直执行操作,直到不符合条件,就退出循环。
4.1 while循环
4.1.1 while循环的基本格式
while 条件:
条件满足时执行操作1
条件满足时执行操作2
条件满足时执行操作3
……
用代码举例:
#输出10次加菲猫爱吃千层面
j=10
while j>0:
print("加菲猫爱吃千层面")
j-=1#等效于j=j-1
输出:
加菲猫爱吃千层面
加菲猫爱吃千层面
加菲猫爱吃千层面
加菲猫爱吃千层面
加菲猫爱吃千层面
加菲猫爱吃千层面
加菲猫爱吃千层面
加菲猫爱吃千层面
加菲猫爱吃千层面
加菲猫爱吃千层面
tips:
- while的条件判断表达式,得出的结果必须是布尔类型,True表示继续循环,False表示结束循环
- 需要设置循环终止的条件,如i += 1配合 i < 100,就能确保100次后停止,否则将无限循环
- while循环和 if 判断一样,都依靠空格缩进来控制相应的子句
4.1.2 while循环的嵌套循环
python中默认的print语句输出内容后会自动换行,如代码所示:
print("Hello")
print("World")
输出:
Hello
World
如果想要输出不换行,在print语句中加上 end=' '即可。代码如下:
print("Hello",end=' ')
print("World",end=' ')
输出:
Hello World
通过while循环,输出如下九九乘法表内容:
i=1#定义行变量
while i<=9:#外层循环
j = 1#定义列变量
while j<=i:#内层循环
print("%d*%d=%d\t"%(j,i,i*j),end=' ')#通过\t制表符进行对齐
j+=1
i+=1
print()#print空内容,换行的作用
输出:
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
4.2 for循环
4.2.1 for循环的基本格式
for 临时变量 in 待处理的数据集:
满足循环条件时所执行的操作
用代码举例:
#通过for循环,遍历此字符串,统计有多少个英文字母:"o"
name="my heart go on"
count=0#count用来记录name中有几个字母o
for x in name:
if x=="o":
count+=1
print("name中有%d个字母o"%count)
输出:
name中有2个字母o
tips:
- for循环无法定义条件,只能被动地从数据集中取出数据,因此for循环也称为遍历循环。
- for循环也是靠空格缩进控制子句。
- for循环中的临时变量,其作用域限定为循环内
4.2.2 range函数
range函数的功能:获得一个简单的数字序列,主要有3种语法:
- range(num),获取一个从0到num的数字序列(不包含num本身),例如range(5)获得的数字序列是[0,1,2,3,4]
- range(num1,num2),获取一个从num1到num2的数字序列(不包含num2本身),例如range(3,9)获得的数字序列是[3,4,5,6,7,8]
- range(num1,num2,step),获取一个从num1到num2,步长为step的数字序列(step默认为1),例如range(3,9,2)获得的数字序列是[3,5,7]
for循环语句,本质上是遍历可迭代对象。 通过range语句,获得的一个简单的数字序列就是可迭代类型的一种。for循环通常搭配range语句一起使用。
4.2.3 for循环的作用域
在for循环的基本格式中,我们提到过 i 是一个临时变量。
临时变量,在编程规范上,作用域只限定在for循环内部。
如果在for循环外部访问临时变量, 实际上是可以访问到的,但是在编程规范上,是不允许、不建议这么做的。
4.2.4 for循环的嵌套循环
通过for循环,输出如下九九乘法表内容:
方法一:
for i in range(1,10):
for j in range(1,10):
if j<=i:
print("%d*%d=%d\t" % (j, i, i * j), end=' ') # 通过\t制表符进行对齐
print()#换行
方法二:
for i in range(1,10):
for j in range(1,i+1):
print("%d*%d=%d\t" % (j, i, i * j), end=' ') # 通过\t制表符进行对齐
print()#换行
方法一通过 if 判断来控制列数,方法二通过使range函数的第二个参数为变量来控制列数,两个方法的输出都是一样的:
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
五、循环中断:continue和break
continue和break,在while循环和for循环中的作用一致。
5.1 continue关键字
continue的作用:中断当前循环体的本次循环(continue之后的代码不再执行),直接进入当前循环体的下一次执行。
5.1.1 while循环与continue
#输出从0-10但不包括5的数字序列
n=0
while n<11:
if n==5:
n += 1 # n为5时,也要加一,否则会陷入死循环
continue
else:
print("%d "%n,end='')
n += 1
输出:
0 1 2 3 4 6 7 8 9 10
tips:
5.1.2 for循环与continue
#输出从0-10但不包括5的数字序列
for m in range(11):
if(m==5):
continue
else:
print("%d "%m,end='')
输出:
0 1 2 3 4 6 7 8 9 10
for循环中的range函数,在效果上相当于自动加1。while循环需要条件判断,又需要手动加1,因此略微繁琐。我们通过这个例子,也能品出while循环和for循环的区别,进而选择更好的适用情景。
5.2 break关键字
break的作用:直接跳出当前循环体。
接下来沿用5.1 continue关键字中的代码示例,以便更好地区分continue和break的不同作用。
5.2.1 while循环与break
n=0
while n<11:
if n==5:
n += 1
break
else:
print("%d "%n,end='')
n += 1
输出:
0 1 2 3 4
5.1.2 for循环与break
for m in range(11):
if(m==5):
break
else:
print("%d "%m,end='')
输出:
0 1 2 3 4
4组代码的输出结果证明了:continue和break在while循环和for循环中的作用一致。
通过下图可以更好地理解循环体和本次循环的含义。