目录
1. if判断语句
1.1 if语句基本语法
1.2 示例代码
1.3 if语句嵌套
1.4 pass空语句
2. while循环语句
2.1 while语句基本语法
2.2 示例代码
2.3 while无限循环语法
2.4 while 循环使用else语句
2.5 使用while循环遍历列表和元组
3. for循环语句
3.1 for循环语句基本语法
3.2 使用for语句进行数值循环
3.3 使用for循环语句输出列表/元组元素
3.4 使用for循环语句遍历字典
3.5 嵌套for循环示例
4. break循环控制语句
5. continue循环控制语句
6. assert语句
上一篇:04 Python3基础:运算符_卡卡6的博客-CSDN博客
判断语句是指编程语言中用来判定所给定的条件是否满足,根据判定的结果执行给出的操作之一。
语法格式如下:
if <条件1>:
#code block1
elif <条件2>:
#code block2
else:
#code block3
如果 "<条件1>" 为 True 将执行 "code block1" 块语句
如果 "<条件1>" 为False,将判断 "<条件2>"
如果 "<条件2>" 为 True 将执行 "code block2" 块语句
如果 "<条件2>" 为False,将执行"code block3"块语句
Python 中用 elif 代替了 else if,所以if语句的关键字为:if – elif – else。
注意:
(1) 每个条件后面要使用冒号:,表示接下来是满足条件后要执行的语句块。
(2) 使用缩进来划分语句块,相同缩进数的语句在一起组成一个语句块。
(3) 在Python中没有switch – case语句。
示例1:多分支判断语句
#!/usr/bin/python3
a=100
if a>200:
print("a>200")
elif a==200:
print("a==200")
else:
print("a<200")
示例2:判断平年闰年
#!/usr/bin/python3
year=int(input("请输入年份:"))
if (year%400==0) or (year%4==0 and year%100!=0):
print("%d是闰年" % (year))
else:
print("%d是平年" % (year))
如果if语句体中只有一条语句,可以将该语句与if写在同一行中
#!/usr/bin/python3
if 123<456:print("123<456")
在嵌套 if 语句中,可以把 if...elif...else 结构放在另外一个 if...elif...else 结构中。
语法格式如下:
if 表达式1:
语句
if 表达式2:
语句
elif 表达式3:
语句
else:
语句
elif 表达式4:
语句
else:
语句
示例代码3:
#!/usr/bin/python3
num=int(input("输入一个数字:"))
if num%2==0:
if num%3==0:
print("输入的数字可以整除 2 和 3")
else:
print("输入的数字可以整除 2,但不能整除 3")
else:
if num%3==0:
print("输入的数字可以整除 3,但不能整除 2")
else:
print("输入的数字不能整除 2 和 3")
很多程序都提供了“空语句”支持,Python 也不例外,Python 的 pass 语句就是空语句。
有时候程序需要占一个位、放一条语句,但又不希望这条语句做任何事情,此时就可通过 pass 语句来实现。通过使用 pass 语句,可以让程序更完整。
pass只是为了防止语法错误。
if a>1:
pass #如果没有内容,可以先写pass,但是如果不写pass,就会语法错误
pass就是一条空语句,在代码段中或定义函数的时候,如果没有内容,或者先不做任何处理,直接跳过,就可以使用pass。
示例代码4:
#!/usr/bin/python3
s = input("请输入一个整数: ")
s = int(s)
if s > 5:
print("大于5")
elif s < 5:
#空语句,相当于占位符
pass
else:
print("等于5")
编程语言的循环结构用于重复执行同一段代码。
例如:要计算 1+2+3+……+99+100 的值,就要重复进行 99 次加法运算。
Python中,while 循环和 if 条件分支语句类似,即在条件(表达式)为真的情况下,会执行相应的代码块。不同之处在于,只要条件为真,while 就会一直重复执行那段代码块。
Python中while语句的语法形式:
while <判断条件>: <执行语块> |
使用while语句需要注意冒号和缩进。在 Python 中没有 do..while 循环。
while 语句执行的具体流程为:首先判断条件表达式的值,其值为真(True)时,则执行代码块中的语句,当执行完毕后,再回过头来重新判断条件表达式的值是否为真,若仍为真,则继续重新执行代码块...如此循环,直到条件表达式的值为假(False),才终止循环。
示例代码:用 while循环来计算 1 到 100 的总和
#!/usr/bin/python3
n = 100
sum = 0
i = 1
while i <= n:
sum = sum + i
i+=1
print("1 到 %d 之和为: %d" % (n,sum))
在程序里,有些时候必须无限循环重复做某件事情,我们可以通过设置while语句的条件表达式永远不为 false 来实现无限循环。示例代码:
#!/usr/bin/python3
number=0
while True:
number=int(input("请输入你喜欢的数字:"))
print("你输入的数字:%d" % (number))
while … else语句支持在条件语句为 false 时执行 else 的语句块。
语法格式如下:
while <判断条件>: #code block1 else: #code block2 |
示例代码:
#!/usr/bin/python3
#number=0
number=10
while number<5:
print("number的值小于5,number当前值:%d" % (number))
number+=1
else:
print("number的值大于5,number当前值:%d" % (number))
Python的列表和元组的元素都是有索引的,因此程序可通过 while 循环、列表或元组的索引来遍历列表和元组中的所有元素。示例代码:
#!/usr/bin/python3
a_tuple = ('python', 'C#', 'C++')
i = 0
# 只有i小于len(a_list),继续执行循环体
while i < len(a_tuple):
print(a_tuple[i]) # 根据i来访问元组的元素
i += 1
Python中的循环语句有2种,分别是 while 循环和 for 循环。
for 循环,它常用于遍历字符串、列表、元组、字典、集合等序列类型,逐个获取序列中的各个元素。
for 循环的语法格式如下:
for 迭代变量 in 字符串|列表|元组|字典|集合:
代码块
语法格式中,迭代变量用于存放从序列类型变量中读取出来的元素,所以一般不会在循环中对迭代变量手动赋值;代码块指的是具有相同缩进格式的多行代码(和 while 一样),由于和循环结构联用,因此代码块又称为循环体。
示例代码: 逐个取出字符串里的字符
#!/usr/bin/python3
str = "欢迎学习Python编程语言"
#变量ch,逐个输出各个字符
for ch in str:
print(ch)
示例代码: 逐个取出列表里的数据
#!/usr/bin/python3
list=["C++","PYTHON","C#","JAVA"]
for ch in list: #ch就是迭代变量
print(ch)
示例代码: for循环也支持else子语句
while 循环语句和 for 循环语句使用 else 的区别:
(1) 如果 else 语句和 while 循环语句一起使用,则当条件变为 False 时,则执行 else 语句。
(2) 如果 else 语句和 for 循环语句一起使用,else 语句块只在 for 循环正常终止时执行。
#!/usr/bin/python3
list=["C++","PYTHON","C#","JAVA"]
for ch in list:
print(ch)
else:
print("循环结束")
如果需要遍历数字序列,可以使用内置range()函数,使用range()函数可以生成数列。
range() 函数的语法格式如下:
range(start,end,step)
函数中各参数的含义:
(1) start:用于指定计数的起始值,如果省略不写,则默认从 0 开始。 (2) end:用于指定计数的结束值(不包括此值),此参数不能省略。 (3) step:用于指定步长,即两个数之间的间隔,如果省略,则默认步长为 1。 |
在使用 range() 函数时,如果只有一个参数,则表示指定的是 end;如果有两个参数,则表示指定的是 start 和 end。
示例代码: 使用range函数循环5次
#!/usr/bin/python3 for i in range(5): print(i) |
输出:
0 1 2 3 4 |
示例代码: 指定步长
#!/usr/bin/python3 for i in range(1,10,2): print(i) |
输出:
1 3 5 7 9 |
示例代码: 输出列表元素
#!/usr/bin/python3
list=["c++","python","c#","php"]
for i in list:
print("当前元素", i)
示例代码: 输出元组元素
#!/usr/bin/python3
data=("c++","python","c#","php")
for i in data:
print("当前元素", i)
示例代码: 通过索引方式输出元组元素
#!/usr/bin/python3
data=("c++","python","c#","php")
for i in range(0,len(data)):
print("当前元素",data[i])
使用 for 循环遍历字典其实也是通过遍历普通列表来实现的。
字典包含了如下三个方法:
items():返回字典中所有 key-value 对的列表。 keys():返回字典中所有 key 的列表。 values():返回字典中所有 value 的列表。 |
如果要遍历字典,完全可以先调用字典的上面三个方法之一来获取字典的所有 key-value 对、所有 key、所有 value,再进行遍历。(遍历键,再通过键来取值)
示例代码:三种方法遍历字典
#!/usr/bin/python3
my_dict = {'语文': 89, '数学': 92, '英语': 80}
# 通过items()方法遍历所有key-value对
# 由于items方法返回的列表元素是key-value对,所以需要定义两个迭代变量
for key, value in my_dict.items():
print('key:', key)
print('value:', value)
print('-------------')
# 通过keys()方法遍历所有key
for key in my_dict.keys():
print('key:', key)
# 在通过key获取value
print('value:', my_dict[key])
print('-------------')
# 通过values()方法遍历所有value
for value in my_dict.values():
print('value:', value)
结果:
key: 语文 value: 89 ------------- key: 数学 value: 92 ------------- key: 英语 value: 80 ------------- key: 语文 value: 89 ------------- key: 数学 value: 92 ------------- key: 英语 value: 80 ------------- value: 89 value: 92 value: 80 |
示例代码: 输出半边三角形
#!/usr/bin/python3
for i in range(1,6):
for j in range(1, i+1):
print("*",end='') #end="" 表示不需要换行
print('\r')
示例代码: 输出9*9乘法口诀表,顺序输出
#!/usr/bin/python3
for i in range(1,10):#生成的整数的范围:start~end-1=1~9
for j in range(1,i+1):
print("%dx%d=%d " % (j,i,j*i), end="")
print()
结果:
1x1=1 1x2=2 2x2=4 1x3=3 2x3=6 3x3=9 1x4=4 2x4=8 3x4=12 4x4=16 1x5=5 2x5=10 3x5=15 4x5=20 5x5=25 1x6=6 2x6=12 3x6=18 4x6=24 5x6=30 6x6=36 1x7=7 2x7=14 3x7=21 4x7=28 5x7=35 6x7=42 7x7=49 1x8=8 2x8=16 3x8=24 4x8=32 5x8=40 6x8=48 7x8=56 8x8=64 1x9=9 2x9=18 3x9=27 4x9=36 5x9=45 6x9=54 7x9=63 8x9=72 9x9=81 |
逆序输出
for i in range(9,0,-1):
for j in range (1,i):
print("\t",end="")
for k in range (i,10):
print("%dx%d=%d" % (i,k,k*i), end="\t")
print()
示例代码:冒泡排序
#!/usr/bin/python3
list=[]
#从键盘上输入10个整数
for i in range(0,5):
list.append(int(input("请输入整数:")))
i+=1
#输出输入的数据
print("排序之前list[]=")
for i in range(0,len(list)):
print(" ",list[i],end="")
else:
print();
#冒泡排序
for i in range(0,len(list)-1):
for j in range(0,len(list)-i-1):
if(list[j]>list[j+1]):
temp=list[j]
list[j]=list[j+1]
list[j+1]=temp
print("排序之后list[]=")
for i in range(0,len(list)):
print(" ",list[i],end="")
运行:
请输入整数:2 请输入整数:6 请输入整数:78 请输入整数:0 请输入整数:1 排序之前list[]= 2 6 78 0 1 排序之后list[]= 0 1 2 6 78 |
在执行 while 循环或者 for 循环时,只要循环条件满足,程序将会一直执行循环体,不停重复。
在某些场景下,可能希望在循环结束前就手动退出循环,Python 提供了2种强制离开当前循环体的办法:
(1) 使用 continue 语句,可以跳过执行本次循环体中剩余的代码,转而执行下一次的循环。
(2) 只用 break 语句,可以完全终止当前循环。
break 用于完全结束一个循环,跳出循环体。不管是哪种循环,一旦在循环体中遇到 break,系统就完全结束该循环,开始执行循环之后的代码。
break 语句一般会结合 if 语句进行搭配使用,表示在某种条件下,跳出循环体,如果使用嵌套循环,break 语句将跳出当前的循环体。
break 语句的语法非常简单,只需要在相应 while 或 for 语句中直接加入即可。跟C语言的使用情况其实是一样的。
示例代码:使用break跳出for 循环
#!/usr/bin/python3
for i in range(0, 10):
print("i的值是: ", i)
if i == 2 :
break # 执行该语句时将结束循环
对于带 else 块的 for 循环,如果使用 break 强行中止循环,程序将不会执行 else 块。下面代码的else块代码就不会执行。
#!/usr/bin/python3
for i in range(0, 10) :
print("i的值是: ", i)
if i == 2 :
break # 执行该语句时将结束循环
else:
print('else块: ', i)
针对嵌套的循环结构来说,Python 的 break 语句只能结束其所在的循环体(最近的一层循环),而无法结束嵌套所在循环的外层循环。示例代码:
#!/usr/bin/python3
cnt=0
for i in range(0, 5) :
for j in range(0,5):
if (j==2):
break #只能跳出最近的一层for循环
else:
cnt+=1
print("cnt=%d" % (cnt)) #最终cnt为10
和 break 语句相比,continue 语句的作用则没有那么强大,它只能终止本次循环而继续执行下一次循环。
continue 语句的用法和 break 语句一样,只要 while 或 for 语句中的相应位置加入即可,也是对最近的一层循环有效。
示例代码:continue语句
#!/usr/bin/python3
for i in range(0,5):
if i == 2 :
continue #忽略本次循环的剩下语句
print("i=%d" % (i))
结果:
i=0 i=1 i=3 i=4 |
continue语句被用来告诉 Python 跳过当前循环块中的剩余语句,然后继续进行下一轮循环。
Assert中文意思就是“断言”,assert 断言语句和 if 分支有点类似,它用于对一个 bool 表达式进行断言,如果该 bool 表达式为 True,该程序可以继续向下执行;否则程序会引发 AssertionError 错误。
通常,assert 语句用在检查函数参数的属性(参数是否是按照设想的要求传入),或者作为初期测试和调试过程中的辅助工具。
断言也可以对逻辑表达式进行判断,因此实际上断言也是于一种特殊的分支语句。
assert 断言的执行逻辑类似if语句:
if 表达式的值为 True:
程序继续运行;
else: # 表示式的值为 False
程序引发 AssertionError 错误
assert的语句格式:
assert (逻辑表达式), data # data是可选的
示例代码:
#!/usr/bin/python3
data=int(input("请输入数据:"))
print("你输入的数据:",data)
#断言代码
assert data>=50, print("你输入的数据大于50")
结果:
请输入数据:100 你输入的数据: 100 |
结果:对于输入,不符合逻辑表达式的情况
请输入数据:20 你输入的数据: 20 你输入的数据大于50 Traceback (most recent call last): File "run.py", line 6, in assert data>=50, print("你输入的数据大于50") AssertionError: None |