判断在生活中无处不在,比如在一些场所会看到“未满18岁禁止入内”的标语,就是以人的年龄来进行判断是否允许进入;计算机只认识0和1,所有的代码最终给机器执行时就是判断 0 or 1;Python中使用if语句来判断条件的真或假,然后决定下一步要执行的代码,但一条 if 语句只能实现满足一种条件后执行需要的代码,故常与 elif 连用来对多种条件分别判断,如果所有条件都不满足时也需要执行一些代码则使用else实现。
if、elif、else的组合使用必须满足以 if 语句开始,不可在无 if 的情况下使用 elif 和 else,使用格式如下:
age = 20
#1.单独使用if
if age >=18:
print("你可以进去嗨皮了")
#2.if与elif组合
if age >= 18:
print("你可以进去嗨皮了")
elif 16 <= age < 18:
print("你可以看看,但不能自己上")
#3.if与else组合
if age >= 18:
print("你可以进去嗨皮了")
else:
print("等你长大再来吧")
#4.if、elif、else组合使用
if age >= 18:
print("你可以进去嗨皮了")
elif 16 <= age < 18:
print("你可以看看,但不能自己上")
elif 14 <= age < 16:
print("你多给点钱就让你看几眼")
else:
print("等你长大再来吧")
以“输入学生成绩,判断优秀、良好、及格、不及格”为例,简单介绍 if 的嵌套使用。
#判断学生成绩属于优秀、良好、及格、不及格中的哪一档,并打印
stu_score = int(input("请输入学生的成绩"))
if 0 <= stu_score <= 100:
if stu_score >= 60:
if stu_score >= 80:
if stu_score >= 90:
print("优秀")
else:
print("良好")
else:
print("及格")
else:
print("不及格")
else:
print("抱歉,您的输入有误")
逻辑运算即我们所熟知的与、或、非运算,在Python中使用 and、or、not 来表示,运算规则如下:
1.and运算遵循“同真为真,有假即假”,即 真 and 真 = 真、真 and 假 =假、 假 and 假 =假;
2.or运算遵循“同假为假,有真即真”,即真 or 真 = 真、真 or 假 =真、 假 or 假 =假;
3.not运算即取反,由假变真,由真变假。
如同加减乘除,当一个式子中存在多种运算符且无括号包裹,将按照运算符的优先级进行计算;Python中的逻辑运算符也有优先级 ,我们结合 if 判断语句来验证一下该优先级的顺序。
#1.验证 and 和 not 的优先级:
if not False and False:
print("and 的优先级高于 not")
else:
print("not 的优先级高于 and")
#2.验证 and 和 or 的优先级:
if True or False and False:
print("and 的优先级高于 or")
else:
print("or 的优先级高于 and")
所以在Python中逻辑运算符的优先级排序为:not > and > or,但个人感觉为了省去判断优先级的麻烦可按照运算需求添加(),同时也提高了可读性,一举两得,何乐而不为呢?
在现实生活中,程序往往都需要运行多次,或者说由用户来决定什么时候关闭,例如超市收银员使用收银系统时,给一个顾客结账后需要立刻给下一位顾客结账;此时就需要使用循环来满足程序运行的次数、在什么情况下关闭等需求。
Python中的循环分为两种:1.while循环 2. for循环,其中for循环主要用于遍历功能。
while说的通俗点就是“当什么什么时候,做什么什么事情”,以输出1,2,3,4,5为例:
#使用while循环输出1,2,3,4,5
i = 1
while i<=5:
print(i)
i+=1
for循环一般与in连用,来实现将一个范围中的数据一个一个拿出来运行循环中的代码,这个范围相当宽泛,可以是字符串、列表、字典等等。
讲到for循环,就不得不讲range函数,range函数有三个参数,用法为:range(起始数,终止数,步长),注意:1.range中的起始数默认为0,步长默认为1; 2.range中的终止数是无法取到的,即range(1)只能取到0.
同样以输出1,2,3,4,5为例:
#使用for循环输出1,2,3,4,5
for num in range(1,6,1):
print(num)
只要使用引号(单引号、双引号)引起来的数据就是字符串,例如'1',"abc","1.1"。
下标就类似超市门口的自助储物柜编号,我们拿着打印编号的条码纸可以打开对应的柜子;如果想从字符串中取出想要的字符,有了字符串的下标就好办多了。
#从'Sunshine'这个字符串中取出'S'、's'、'e'、'i'
my_str = 'Sunshine'
print(my_str[0]) #从左至右,下标从0开始,那么'S'的下标就是0
print(my_str[3]) #那么's'的下标就是3
print(my_str[-1]) #下标除了从左至右算起,还可以从右至左算起,下标从-1开始
print(my_str[-3]) #那么'i'的下标就是-3
切片就是将一个整体中我们需要的部分切出来,为我所用。用法与range相似,my_str[起始下标,终止下标,步长],同样的要注意以下三点:1.终止下标是无法取到的,且起始坐标的默认值为0,步长默认值为1;2.终止下标没有默认值,但如果不传参数,那么默认切片至最后一位。3. 切片时也可使用负数下标。用以下两个例子简单演示切片的使用:
# 1.从'Do you love me ?'中取出'love'
my_str = 'Do you love me ?'
print(my_str[7:11:1])
print("="*10+"华丽的分割线"+"="*10)
print(my_str[-9:-5:1])
# 2.将'smart'变为trams
my_word = 'smart'
print(my_word[::-1])