前言
本章主要介绍Python中的条件语句:if语句及if语句的嵌套、for循环、while循环、break语句、continue语句等等。
一、if语句
通过if语句,产生分支,通过定义的条件结果执行不同的操作(True 或 False)。if语句中常用的大于小于或者小于或等于与一般一样,这里要注意的等于表示为”==“,不等于表示为”!=“,其左右跟要比较的对象。
(一)单分支
if语句的单分支,指只有if关键字的条件语句,可以理解为如果条件正确,则执行代码,而如果条件为假,程序会跳过if语句,执行下面的语句。
例如下列Python代码:
x = int(input("请输入一个整数:")) if x < 0: print(f"输入的数字{x}小于0")
运行结果如下:
当我们输入数字大于0时,没有显示:
而当我们输入数字小于0时,满足if条件语句:
(二)双分支
通过if……else语句可以产生双分支if语句,如下,当条件表达式为正确时,执行代码块1,而当条件表达式为错误时,执行代码块2。
if 条件表达式: 代码块1 else: 代码块2
以下是一个双分支判断程序,下列Python代码:
account = input("请输入账号:") password = input("请输入密码:") print("请再次确认您输入的账号和密码!") print("您的账号为:", account, end="") print("您的密码为:", password) print("请稍后...") if account == "admin" and password == "123456": print("管理员登陆成功") else: print("登陆失败!")
运行结果如下:
这里运用到了and,表示只有当账户和密码都为特定的值时,才能登陆成功,同样也有or,它表示或者的意思,
(三)多分支
多分支if……elif……else语句,可以处理多种情况,当条件表达式1的值为正确时,执行代码块1,否则执行条件表达式2,若条件表达式2正确,则执行代码块2,否则执行条件表达式3,依次下去,如果else语句前面的条件表达式都为错误时,则执行代码块n,格式如下:
if 条件表达式1: 代码块1 elif 条件表达式2: 代码块2 elif 条件表达式3: 代码块3 elif 条件表达式n-1: 代码块n-1 ... else: 代码块n
下列Python代码,当输入小于0、大于0或等于0时,会有不同的输出结果:
x = float(input("请输入数字:")) if x < 0: print("该数字小于0") elif x > 0: print("该数字大于0") else: print("该数字等于0")
运行结果如下:
当输入数字大于0时:
当输入数字小于0时:
当输入数字等于0时:
下列Python程序,当输入学生的成绩,会自动评价:
x = float(input("请输入学生的成绩:")) if 60 <= x <= 70: print("及格!") elif 80 <= x <= 90: print("良好") elif 90 <= x <= 100: print("优秀!") else: print("不及格!")
运行结果如下:
(四)if语句的嵌套
if语句可以多层嵌套,嵌套是指在if语句中包含if语句,通过缩进来表示嵌套,这里指的if语句包括上面三种分支。
比如下面的示例,程序首先判断条件表达式1的结果,若为正确,则执行代码块1,此时再判断嵌套的if语句(条件表达式2),若正确,则执行代码块2:
if 条件表达式1: 代码块1 if 条件表达式2 代码块2
二、for循环
for循环可以对可迭代对象进行遍历,比如列表、字符串、元组、字典或集合,且可以通过range()函数来控制for循环中的循环次数。
(一)for循环的定义
for循环的格式如下,其中每当for语句执行一次循环,其临时变量会被赋值为从可迭代对象中读取的序列元素:
for 临时变量 in 可迭代对象: 代码块
下列Python代码,通过for语句遍历输出该字符串每个字符以及遍历输出列表name的值,可迭代对象为number字符串以及列表name,然后遍历输出临时变量的值:
number = "first" name = ["ab", "ad", "ac"] for x in number: print(x) for i in name: print(i)
运行结果如下:
另外,可以在for语句中使用continue语句跳出本次循环,使用break语句跳出整个循环,例如下列python代码:
name = ["ab", "ad", "ac", "ae", "af"] for i in name: if i == "ab": continue if i == "ae": break print(i)
运行结果如下:
(二)range()函数控制循环次数
可以通过range()函数来生成数列,进行遍历,通过该函数控制循环执行次数,比如range(5,10)它表示的是5到9的值,即左闭右开区间。
下列Python代码,输出三次for语句中的内容:
for x in range(3): print("HELLO WORLD!")
运行结果如下:
下列Python代码,通过range()函数来生成数列,也可以用区间或步长来表示,可看到range(3,6)输出的是3至5:
for x in range(3, 6): print(x) print("\t") for y in range(3): print(y)
运行结果如下:
下列Python代码,利用for循环输出1+2+3+……+100的结果,可以直接让for循环执行100次,即range(101):
number_sum = 0 for i in range(101): number_sum += i print(number_sum)
运行结果如下:
通过range()函数,了解到它默认每次循环序列加1,所以可通过添加一个参数来指定增量值,比如这里range(3, 20, 2)表示3到19每次循环增加2:
for z in range(3, 20, 2): print(z)
运行结果如下:
(三)for循环中的else子句
可以在for循环内添加else子句来指定循环结束时执行的代码。
例如下列python代码:
for z in range(3, 20, 2): print(z) else: print("循环结束!")
运行结果如下:
(四)for语句的嵌套
for循环可嵌套,要注意缩进,例如下列python代码:
a = ["1班", "2班", "3班", "4班"] b = [25, 30] for i in a: for x in b: print(i, x)
运行结果如下:
例如下列python代码,要求通过for循环来输出100以内的质数(素数也叫质数,即只有两个正因数【1和本身】的自然数),通过for循环嵌套:
i = 2 for i in range(2, 100): j = 2 for j in range(2, i): if i % j == 0: # 若i与j的余数等于0时则通过break语句跳出整个循环 break else: # 否则输出i print(f"{i} ", end="")
运行结果如下:
也可以创建一个列表来完成本题,如下:
a = [] # 创建一个列表 for i in range(2, 100): # 判断i是否为素数,若为则打印该数,否则通过break语句跳过本次循环 for j in range(2, i): if i % j == 0: break else: a.append(i) # 通过append()方法在列表a的末尾添加新的元素 print(a)
运行结果如下:
三、while循环
while循环的格式如下,若条件表达式为正确时,则重复执行代码块中的内容,直到表达式为错误时退出,不再执行循环中的代码块:
while 条件表达式: 代码块
下列Python,通过while循环计算1+2+…+100的值:
i = 1 sum = 0 while i <= 100: sum = i + sum i = i + 1 print("1+2+...+100的值为:", sum)
运行结果如下:
另外可以通过设置while 1或while True来无限循环,如下列Python代码:
a = 0 while 1: x = int(input("输入数字:")) x = x + 1 a = x + a print(f"目前结果为:{a}")
运行结果如下:
另外while循环也是可以嵌套的,也是通过缩进来进行嵌套。
四、break语句和continue语句
Python中有两种跳转语句,它们只能在循环中使用,不能够单独使用,break语句表示跳出整个循环,continue语句表示跳出本次循环。
下列Python代码中,通过continue语句,设定当输入数字i小于0时,跳出本次循环,不将其加入sum计算中:
sum = 0 y = 1 while y == 1: x = int(input("输入数字:")) x = x + 1 if x < 0: continue sum = x + sum print("目前结果为:", sum)
运行结果如下:
下列Python代码中,通过break语句,设定当输入数字i小于0时,跳出整个循环并输出结果:
sum = 0 y = 1 while y == 1: x = int(input("输入数字:")) x = x + 1 if x < 0: break sum = x + sum print("结果为:", sum)
运行结果如下:
五、pass语句
pass语句也叫占位语句,通过使用可以避免程序抛出异常,即用在代码中使程序可以正常运行。
for x in [0, 1, 2, 3]: if x == 0 or x == 3: pass else: continue print(x)
运行结果如下: