Python选择与循环

条件语句

Python 中,选择(条件)语句可细分为 3 种形式,分别是if语句、if else语句和if elif else语句。

标准格式:

if 表达式 1:
    代码块 1
elif 表达式 2:
    代码块 2
elif 表达式 3:
    代码块 3
...//可以有零条或多条elif语句
else:
    代码块 n

表达式可以是一个单纯的布尔值或变量,也可以是比较表达式或逻辑表达式; 如果 if 中的表达式为“真”,程序就会执行 if 中的代码块

代码块指的是具有相同缩进格式的多行代码。一般情况下,一个代码块会被当成一个整体来执行。

Python是一门很“独特”的语言,它的代码块是通过缩进来标记的,具有相同缩进的多行代码属于同一个代码块, 通常建议缩进 4 个空格。

Python冒号精确表示代码块的开始点这个功能不仅在条件执行体中如此,后面的循环体、方法体、类体全部遵守该规则。

s = ""
if s :
    print('s不是空字符串')
else:
    print('s是空字符串')

s = input("请输入一个整数: ")
s = int(s)
if s > 5:
    print("大于5")
elif s < 5:
    # 空语句,相当于占位符
    pass
else:
    print("等于5")

assert断言函数

assert断言语句和if分支有点类似,它用于对一个bool表达式进行断言,如果该bool表达式为True,该程序可以继续向下执行;否则程序会引发AssertionError错误。

s_age = input("请输入您的年龄:")
age = int(s_age)
assert 20 < age < 80
print("您输入的年龄在20和80之间")

"""
请输入您的年龄:23
您输入的年龄在20和80之间
========================
请输入您的年龄:1
Traceback (most recent call last):
  File "C:\Users\mengma\Desktop\1.py", line 3, in <module>
    assert 20 < age < 80
AssertionError

循环语句

while循环

Python中,while循环只要在条件(表达式)为真的情况下,就会一直重复执行相应的循环代码块。

while语句的语法格式如下:

while 条件表达式:
    代码块

while语句执行的具体流程为:首先判断条件表达式的值,其值为真(True)时,则执行代码块中的语句,当执行完毕后,再回过头来重新判断条件表达式的值是否为真,若仍为真,则继续重新执行代码块...如此循环,直到条件表达式的值为假(False),才终止循环。

# 循环的初始化条件
num = 1
# 当 num 小于100时,会一直执行循环体
while num < 100 :
    print("num=", num)
    # 迭代语句
    num += 1
print("循环结束!")

for循环

for循环的语法格式如下:

for 迭代变量 in 字符串|列表|元组|字典|集合:
    代码块

格式中,迭代变量用于存放从序列类型变量中读取出来的元素,所以一般不会在循环中对迭代变量手动赋值;代码块指的是具有相同缩进格式的多行代码(和while一样),由于和循环结构联用,因此代码块又称为循环体

print("计算 1+2+...+100 的结果为:")
#保存累加结果的变量
result = 0
#逐个获取从 1 到 100 这些值,并做累加操作
for i in range(101):
    result += i
print(result)

"""结果为
计算 1+2+...+100 的结果为:
5050
"""

range()函数的语法格式如下:

range(start,end,step)

此函数中各参数的含义如下:

  1. start:用于指定计数的起始值,如果省略不写,则默认从 0 开始。
  2. end:用于指定计数的结束值(不包括此值),此参数不能省略。
  3. step:用于指定步长,即两个数之间的间隔,如果省略,则默认步长为 1。

总之,在使用range()函数时,如果只有一个参数,则表示指定的是end;如果有两个参数,则表示指定的是start和end。

for循环遍历列表和元组

在使用for循环遍历列表和元组时,列表或元组有几个元素,for循环的循环体就执行几次,针对每个元素执行一次,迭代变量会依次被赋值为元素的值。

src_list = [12, 45, 3.4, 13, 'a', 4, 56, 'crazyit', 109.5]
my_sum = 0
my_count = 0
for ele in src_list:
    # 如果该元素是整数或浮点数
    if isinstance(ele, int) or isinstance(ele, float):
        print(ele)
        # 累加该元素
        my_sum += ele
        # 数值元素的个数加1
        my_count += 1
print('总和:', my_sum)
print('平均数:', my_sum / my_count)

运行结果为:

12
45
3.4
13
4
56
109.5
总和: 242.9
平均数: 34.7

for循环遍历字典

使用for循环遍历字典其实也是通过遍历普通列表来实现的。前面在介绍字典时己经提到,字典包含了如下三个方法:

  1. items():返回字典中所有key-value对的列表。
  2. keys():返回字典中所有key 的列表。
  3. values():返回字典中所有value的列表。
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

break用法

break用于完全结束一个循环,跳出循环体。 不管是哪种循环,一旦在循环体中遇到break,系统就将完全结束该循环,开始执行循环之后的代码。

另外,针对嵌套的循环结构来说,Pythonbreak语句只能结束其所在的循环体,而无法结束嵌套所在循环的外层循环。

for i in range(0,4) :
    print("此时 i 的值为:",i)
    for j in range(5):
        print("    此时 j 的值为:",j)
        break
    print("跳出内层循环")

运行结果为:

此时 i 的值为: 0
    此时 j 的值为: 0
跳出内层循环
此时 i 的值为: 1
    此时 j 的值为: 0
跳出内层循环
此时 i 的值为: 2
    此时 j 的值为: 0
跳出内层循环
此时 i 的值为: 3
    此时 j 的值为: 0
跳出内层循环

continue的用法

continue语句的作用只能终止本次循环而继续执行下一次循环。

# 一个简单的for循环
for i in range(0, 3 ) :
    print("i的值是: ", i)
    if i == 1 :
        # 忽略本次循环的剩下语句
        continue
    print("continue后的输出语句")

运行上面程序,将看到如下运行结果:

i的值是:  0
continue后的输出语句
i的值是:  1
i的值是:  2
continue后的输出语句
posted @ 2024-08-05 17:23  古月厷  阅读(73)  评论(0)    收藏  举报