优秀的编程知识分享平台

网站首页 > 技术文章 正文

第5天 | 12天搞定Python,控制语句

nanyue 2024-07-20 23:45:48 技术文章 10 ℃

人们常说人生就是一个不断做选择题的过程:有的人没得选,只有一条路能走;有的人好一点,可以二选一;还有一些人在人生的迷茫期会在原地打转,找不到方向。

编程语言,如Python,可以模拟人类生活的方方面面,通过编程语言中特殊关键字控制程序的执行过程,这些关键字有循环用的for或while,还有条件判断用的if、else等。

5.1 条件语句

所谓的条件,指的就是满足什么条件,允许做什么事,不满足时,是不允许做的。如共享单车,规定满12周岁或以上才可以骑行,没满的则不被允许。三思而后行,再,斯可矣。Python的条件语句有if、if-else和elif语句三种。

1. if语句

如果判断条件为True,就执行if语句内的内容,否则不执行。if的语法结构为:

if 判断条件:

执行语句1

执行语句…

# ---年龄---
age = 12
if age >= 12:
    print("已满12岁,", end="")
    print("可以骑共享单车了。")

输出结果

已满12岁,可以骑共享单车了。

2. if-else语句

如果if的判断条件的结果为True,就执行里面的语句,否则执行else内的语句。if-else的语法结构为:

if 判断条件:

执行语句1

执行语句…

else:

执行语句1

执行语句…

# ---年龄---
age = 12
if age >= 12:
    print("可以骑共享单车,", end="")
    print("去海边看蓝天白云。")
else:
    print("可惜骑不了共享单车,", end="")
    print("因为我未满12岁。")

输出结果

可以骑共享单车,去海边看蓝天白云。

3. if-elif语句

如果if的判断条件1的结果为True,就执行里面的语句,如果判断条件2的结构为True,执行elif内的语句,否则执行else里的语句。if-else的语法结构为:

if 判断条件1:

执行语句1

执行语句…

elif 判断条件2:

执行语句1

执行语句…

else:

执行语句1

执行语句…

# 年龄
age = 12
# 智能手机
android = False
iphone = True
if age >= 12 and android:
    print("已满12岁,", end="")
    print("可惜没有Android智能手机")
elif age >= 12 and iphone:
    print("用IPhone手机进行扫码骑行")
else:
    print("年龄和智能手机,有一样缺少,骑不了")

输出结果

用IPhone手机进行扫码骑行

4. if嵌套语句

条件语句可以进行嵌套。

# 年龄
age = 12
# 智能手机
android = False
iphone = True
if age >= 12:
    if android or iphone:
        print("已满12岁,", end="")
        print("还有智能手机,可以骑行。")
    else:
        print("年龄满足,可没有智能手机,骑不了")
else:
    print("可惜骑不了共享单车,", end="")
    print("因为未满12岁。")

输出结果

已满12岁,还有智能手机,可以骑行。

5. 三元运算符

三元运算又称三目运算,是对简单的条件语句的简写。

if 条件成立:

result = “可骑行”

else:

result = “不可骑行”

改成三元运算是: result =“可骑行” if 条件成立 else “不可骑行”。满足条件,执行前面的语句,不满足,执行后面的语句。

# 年龄
age = 10
result = "可骑行" if age >= 12 else "不可骑行"
print(result)

输出结果

不可骑行

6. switch-case

Python3 没有switch-case语句,查看官方文档说是可以用if-elseif-elseif…代替。实现switch-case需要被判断的变量是可哈希的和可比较的,这与Python倡导的灵活性有冲突,所以没有支持。如果确实有必要,可通过函数的字典的方式实现。

# 定义switch函数
def switch(item):
    switcher = {
        "Mon": 1,
        "Tues": 2,
        "Wed": 3,
        "Thur": 4,
        "Fri": 5,
        "Sat": 6,
        "Sun": 7
    }
    return switcher.get(item, "0")


# 调用switch
print(switch("Mon"))

输出结果

1

5.2 for循环

for循环可以遍历任何序列的元素,如逐个输出字符串、列表、字典或元组等中的元素。它是一种迭代循环机制。通俗点说,就是把这个循环中的第一个元素到最后一个元素依次访问一次,并把访问到的元素供执行语句使用。

1. for语句

for循环从序列里逐个取出元素,并赋值给迭代变量,以供执行语句使用,语法结构为:

for 迭代变量 in 遍历序列:

执行语句1

执行语句…

# 遍历字符串
s = "Welcome to Python."
for c in s:
    print(c)

输出结果

W
e
l
c
o
m
e
 
t
o
 
P
y
t
h
o
n
.

2. range()函数

可以使用内置range()函数,生成数列,并通过for循环取出元素。range(start,end,step=1)顾头不顾尾。

range(5): 默认step=1,start=0,生成数列内容为:[0, 1, 2, 3, 4];

range(1,5):指定start=1,end=5,默认step=1,生成数列内容为:[1, 2, 3, 4]

range(1,5,2):指定start=1,end=5,step=2,生成数列内容为: [1, 3]

# 用range()函数生成数列
for i in range(10):
    print(i)

输出结果

0
1
2
3
4
5
6
7
8
9

3. 索引迭代

除了可通过遍历的方式获取元素外,还可以通过索引迭代的方式获取。用索引迭代时,先通过内置函数len()获取列表的长度,再逐个迭代。

# 数组内容
lang = ["Chinese", "English", "French"]
# 获取数组长度
length = len(lang)
for index in range(length):
    print(lang[index])

输出结果

Chinese
English
French

4. 嵌套语句

for循环允许在一个循环体里面嵌入另一个循环。语法结构为:

for 迭代变量1 in 遍历序列1:

执行语句1

for 迭代变量3 in 遍历序列2:

执行语句2

执行语句…

# 字符串数组
s1 = ["1", "2", "3", "4", "5"]
s2 = ['a', 'b', 'c', 'd', 'e']
for a in s1:
    print(a)
    for b in s2:
        print(b)

输出结果

1
a
b
c
d
e
2
a
b
c
d
e
3
a
b
c
d
e
4
a
b
c
d
e
5
a
b
c
d
e

5. 列表推导

Python中的for循环,除了可以遍历元素外,还可以进行列表推导。列表推导是一种简化代码的优美方法。推导式是可以从一个数据序列构建另一个新的数据序列的结构体。语法结构为:

[表达式 for 变量 in 列表] 或者 [表达式 for 变量 in 列表 if 条件]

# 获取新列表
l1 = [data for data in range(1, 10)]
print(l1)
# 两个列表内容
v1 = [10, 20, 30]
v2 = [30, 40, 50]
# 获取交集
v = [num for num in v1 if num in v2]
print(v)
# 获取差集
v = [num for num in v1 if num not in v2]
print(v)

输出结果

[1, 2, 3, 4, 5, 6, 7, 8, 9]
[30]
[10, 20]

6. 跳出循环

Python语言的跳出循环与大多数语言一样,可以使用关键字continue跳出本次循环。

# continue语句
def f1():
    for i in range(1, 10):
        if i % 2 == 0:
            continue
        # if条件为True的,跳过continue语句下的表达式。
        print(i)


f1()

输出结果。

1
3
5
7
9

用break跳出整个for循环

# break语句
def f1():
    for i in range(1, 10):
        if i % 2 == 0:
            break
        # if条件为True的,跳过continue语句下的表达式。
        print(i)


f1()

输出结果

1

另外还有return语法,会跳出for循环。

# return语句
def f1():
    for i in range(1, 10):
        if i % 2 == 0:
            return i
    return 0


result = f1()
print(result)

输出结果

2

7. for-else语句

如果在循环正常(非break 跳出)执行完,需要执行一些其他动作时,可在后面添加else语句。除了else外,还有一种特殊情况,就是会出现一个语句体什么也不做的情况,这时用pass语句进行占位。它是空语句,什么都不做,只要是保持程序结构的完整性。

正常退出循环,会执行else内容。

# range()生成数列
for i in range(1, 10):
    if i % 2 == 0:
        pass  # pass不做任何操作
    print(i)
else:
    print("循环完成")

输出结果

1
2
3
4
5
6
7
8
9
循环完成

通过break非正常退出循环,不会执行else内容。

# range()生成数列
for i in range(1, 10):
    if i % 2 == 0:
        break
    print(i)
else:
    print("这里不执行")

输出结果

1

5.3 while循环

while 循环用于循环执行程序,即在某条件下,循环执行某段程序,以处理需要重复处理的相同任务。for循环和while循环,两者的相同点在于都能循环做一件重复的事情;不同点在于,for循环是在序列穷尽时停止,while循环是在条件不成立时停止。

1. while语句

while循环通过判断条件,确认是否执行语句。条件为True时,执行语句,否则退出循环。语法结构为:

while 判断条件:

执行语句1

执行语句…

# 初始化整数
i = 5
while i < 10:
    print(i)
    i += 1

输出结果

5
6
7
8
9

2. 嵌套语句

while循环允许在一个循环体里面嵌入另一个循环。语法结构为:

while 判断条件1:

执行语句1

while 判断条件2:

执行语句…

# 定义行变量
row = 1
while row <= 5:
    # 定义列变量
    col = 1
    # 第i行,循环i次
    while col <= row:
        print("*", end="")
        col += 1
    # 每打印完1行,换行
    print("")
    row += 1

输出结果

*
**
***
****
*****

3. while嵌for

while循环里面可以嵌套for循环。

# 初始化数据
i = 2
while i < 5:
    for c in range(5):
        print(c)
    i += 1

输出结果

0
1
2
3
4
0
1
2
3
4
0
1
2
3
4

for循环里面可以嵌套while循环。

# 用range()函数生成数列
for c in range(1, 5):
    i = 2
    while i < 5:
        print(i)
        i += 1

输出结果

2
3
4
2
3
4
2
3
4
2
3
4

4. 跳出循环

Python语言的跳出循环与大多数语言一样,可以使用关键字continue跳出本次循环。

# ---continue语句----
def f1():
    i = 5
    while i < 10:
        if i % 2 == 0:
            i += 1
            continue
        # if条件为True的,跳过continue语句下的表达式。
        i += 1
        print(i)


f1()

输出结果

6
8
10

使用break跳出整个while循环。

# ---break语句----
def f1():
    i = 5

    while i < 10:
        if i % 8 == 0:
            break
        # if条件为True的,跳过continue语句下的表达式。
        i += 1
        print(i)


f1()

输出结果

6
7
8

还有return语法,会跳出while循环。

# ---return语句----
def f1():
    i = 5
    while i < 10:
        if i % 6 == 0:
            return
        # if条件为True的,跳过continue语句下的表达式。
        i += 1
        print(i)


f1()

输出结果

6

5. while-else

如果想在循环正常(非break跳出)执行完,需要执行一些其他动作时,可在后面添加else语句。除了else外,还有一种特殊情况,就是会出现一个语句体什么也不做的情况,这时用pass语句进行占位。它是空语句,什么都不做,只要是保持程序结构的完整性。

正常退出while循环,会执行else里面的内容。

# 初始化数据
i = 5
while i < 10:
    if i % 2 == 0:
        pass  # pass不做任何操作
    i += 1
    print(i)
else:
    print("循环完成")

通过break非正常退出,不会执行else里面的内容。

# 初始化数据
i = 2
while i < 5:
    if i % 4 == 0:
        break  # 退出整个for循环
    i += 1
    print(i)
else:
    print("这里不执行")

控制语句,就在不知不觉中学完了,你真棒,你真胖。如果我说错了,千万别打老陈,老陈可是......

一个当了10年技术总监的老家伙,分享多年的编程经验。想学编程的朋友,可关注今日头条:老陈说编程。我将分享Python,前端(小程序)和App方面的编程知识。关注我,没错的。


#Python##Python编程从入门到实践##程序员#

最近发表
标签列表