Python零基础入门-3 流程控制

简介: Python零基础入门-3 流程控制

流程控制即控制代码执行的顺序。Python中的流程控制一般通过判断、循环语句实现。

本文思维导图:

一、判断

1.1 if语句

最常用的判断语句是if语句:

例:if语句

x = int(input("Please enter an integer: "))
if x < 0:
    x = 0
    print('Negative changed to zero')
elif x == 0:
    print('Zero')
elif x == 1:
    print('Single')
else:
    print('More')

注1:这里if下面的语句有4个空格缩进,说明下面的两行语句是属于if语句的。Python中用缩进表示代码所属级别。

注2:elif即对else if的缩写。

(用户输入一个整数存到变量x中,然后对x进行判断。

如果x小于0,就让给x赋值0,并且使用print输出消息Negative changed to zero;否则,如果x等于0,就输出消息Zero;否则,如果x等于1,输出消息Single;否则,以上都不符合,输出消息More。)

if语法:

if 条件:
    命令1
elif 条件:
    命令2
...可以有更多elif...
else:
    命令n

二、循环

2.1 for语句

Python中最常用的循环是for语句。典型用法是用for来遍历一个列表(或任意可迭代对象)

例:使用for语句打印words中单词及其长度。

words = ['cat', 'window', 'defenestrate']
for w in words:
    print(w, len(w))


for -in语法:

for x in 可迭代对象:
    语句

2.2 遍历集合

遍历集合时修改集合的内容,会很容易生成错误的结果。因此不能直接进行循环,而是应遍历该集合的副本或创建新的集合:

#创建一个集合。集合就是一些“键:值”形式的键值对。
users = {'Hans': 'active', 'Éléonore': 'inactive', '景太郎': 'active'}
# 在副本上迭代
for user, status in users.copy().items():
    if status == 'inactive':
        del users[user]
# 或者创建新集合
active_users = {}
for user, status in users.items():
    if status == 'active':
        active_users[user] = status

2.3 range()函数


range可当成是一种不可变序列。 range(start, stop[, step]),range可以传入三个参数,起始值,终止值,步长。其中,start默认值为0,步长默认为1。


range的典型用法就是只指定stop,用于循环指定次数。

for i in range(5):
    print(i)

range(5)就能循环5次:

0
1
2
3
4

range()三参数形式start, stop[, step]:

list(range(0, 10, 3)) #[0, 3, 6, 9]

使用len()和range()可以按索引迭代序列(不推荐)。

a = ['Mary', 'had', 'a', 'little', 'lamb']
for i in range(len(a)):
    print(i, a[i])

推荐使用更简洁的enumerate

a = ['Mary', 'had', 'a', 'little', 'lamb']
for i,x in enumerate(a):
    print(i,x)

2.4 while循环

while循环用于在某些条件下进行循环,条件为假时,循环结束:

a, b = 0, 1
while a < 10:
    print(a)
    a, b = b, a+b

while语法:

while 条件为真:
    执行...

2.5 循环中的break,continue语句

break 语句和 C 中的类似,用于跳出最近的 forwhile 循环。

continue 语句也借鉴自 C 语言,表示继续执行循环的下一次迭代。

for i in range(1, 100):
    if i % 7 == 0 and i % 5 == 0:
        print(i)
        print(i, " is good")

使用break,会直接跳出所在的for循环

#例子break。
for i in range(1,100):
    if i % 7 == 0 and i % 5 == 0:
        print(i)
        break     #会结束所在的for循环
        print(i, " is good")

使用continute会跳过下面的语句,继续下一次循环。

# continue例子
for i in range(1, 100):
    if i % 7 == 0 and i % 5 == 0:
        print(i)
        continue
        print(i, " is good") #会被跳过

2.6 for-else语法(不推荐)

循环结束时执行else,break停止循环时不执行。

# for- else
for i in range(5):
    if i**1 +i**2 + i**3 > 200:
        print("find ",i)
        break
else:
    print("not find")
#not find

循环结束,没有break,就执行else子句。

# for- else
for i in range(10):
    if i**1 +i**2 + i**3 > 200:
        print("find ",i)
        break
else:
    print("not find")
#find  6

循环被break提前结束,不执行else子句。


三、其它

3.1 pass语句

pass语句什么都不做,通常当做占位符。

比如我们预期将来要写一个函数,可以先使用pass占位,后面再实现实际功能。

def initlog(*args):
    pass   # Remember to implement this!

3.2 match

match语句是Python3.10新特性,用来匹配目标。

def http_error(status):
    match status:
        case 400:
            return "Bad request"
        case 404:
            return "Not found"
        case 418:
            return "I'm a teapot"
        case _:
            return "Something's wrong with the internet"

变量名” _ 被作为 通配符 并必定会匹配成功

除了字面值,match还可以匹配模式。

# point is an (x, y) tuple
match point:
    case (0, 0):
        print("Origin")
    case (0, y):
        print(f"Y={y}")
    case (x, 0):
        print(f"X={x}")
    case (x, y):
        print(f"X={x}, Y={y}")
    case _:
        raise ValueError("Not a point")

类形式:

class Point:
    x: int
    y: int
def where_is(point):
    match point:
        case Point(x=0, y=0):
            print("Origin")
        case Point(x=0, y=y):
            print(f"Y={y}")
        case Point(x=x, y=0):
            print(f"X={x}")
        case Point():
            print("Somewhere else")
        case _:
            print("Not a point")


相关文章
|
3月前
|
测试技术 Python
Python接口自动化测试框架(基础篇)-- 流程控制之循环语句for&while
本文介绍了Python中的循环语句,包括while和for循环的使用,range()函数的运用,以及continue、break和pass关键字的说明,同时提出了关于while循环是否能与成员运算符结合使用的思考。
52 1
Python接口自动化测试框架(基础篇)-- 流程控制之循环语句for&while
|
3月前
|
测试技术 索引 Python
Python接口自动化测试框架(练习篇)-- 数据类型及控制流程(一)
本文提供了Python接口自动化测试中的编程练习,包括计算器、猜数字、猜拳和九九乘法表等经典问题,涵盖了数据类型、运算、循环、条件控制等基础知识的综合应用。
47 1
|
1月前
|
人工智能 IDE 测试技术
使用通义灵码提升Python开发效率:从熟悉代码到实现需求的全流程体验
作为一名Python开发者,我最近开始使用通义灵码作为开发辅助工具。它显著提高了我的工作效率,特别是在理解和修改复杂代码逻辑方面。通过AI编码助手,我能够在短时间内快速上手新项目,实现新需求,并进行代码优化,整体效率提升了60%以上。通义灵码不仅加快了代码生成速度,还增强了代码的健壮性和稳定性。
|
1月前
|
SQL 关系型数据库 数据库
优化Web开发流程:Python ORM的优势与实现细节
【10月更文挑战第4天】在Web开发中,数据库操作至关重要,但直接编写SQL语句既繁琐又易错。对象关系映射(ORM)技术应运而生,让开发者以面向对象的方式操作数据库,显著提升了开发效率和代码可维护性。本文探讨Python ORM的优势及其实现细节,并通过Django ORM的示例展示其应用。ORM提供高级抽象层,简化数据库操作,提高代码可读性,并支持多种数据库后端,防止SQL注入。Django内置强大的ORM系统,通过定义模型、生成数据库表、插入和查询数据等步骤,展示了如何利用ORM简化复杂的数据库操作。
61 6
|
3月前
|
测试技术 Python
Python接口自动化测试框架(基础篇)-- 流程控制之if条件控制
Python中的流程控制语句if条件控制,涵盖了比较运算符、成员运算符、身份运算符、逻辑运算符的使用,if语句的嵌套,以及如何使用input和print函数进行交互式编程练习。
32 1
Python接口自动化测试框架(基础篇)-- 流程控制之if条件控制
|
2月前
|
SQL 关系型数据库 MySQL
Python操作pymysql数据库的流程与技巧
在现代软件开发中,Python作为一门高效且易于学习的编程语言,广泛应用于各种场景,其中包括数据库操作。**PyMySQL** 是一个流行的Python数据库接口,用于连接和操作MySQL数据库。它提供了一种简便的方法来执行SQL语句、处理数据和管理数据库事务。以下是使用PyMySQL操作MySQL数据库的流程与技巧,旨在为开发者提供一个清晰、实用的指南。
55 0
|
3月前
|
存储 测试技术 数据格式
Python接口自动化测试框架(练习篇)-- 数据类型及控制流程(二)
本文通过数据类型转换和文件读取的练习,复习了Python中的数据类型、循环、条件判断、内置函数等基础知识,并演示了如何将字符串数据转换为字典列表,以及如何从文本文件中读取和转换数据。
36 1
|
3月前
|
机器学习/深度学习 Ubuntu 数据挖掘
Ubuntu系统部署Anaconda环境及Python语言的详细流程
以上就是在Ubuntu系统中安装Anaconda环境及Python语言的详细流程。Anaconda为Python科学计算提供了便捷的管理方式,帮助用户轻松处理不同项目之间依赖管理的复杂性。通过以上步骤,你现在应该有了一个完全可用的Anaconda环境,可以开始在Ubuntu上进行Python编程和数据科学项目的探索了。
90 5
|
3月前
|
Python
python学习笔记---流程控制
这篇文章详细介绍了Python中的流程控制,包括选择结构(if、if-else语句、嵌套if语句)和循环语句(while循环、for循环以及for循环与range()函数的使用),以及如何在循环中使用break和continue语句。
python学习笔记---流程控制
|
3月前
|
JSON 数据库 开发者
FastAPI入门指南:Python开发者必看——从零基础到精通,掌握FastAPI的全栈式Web开发流程,解锁高效编码的秘密!
【8月更文挑战第31天】在当今的Web开发领域,FastAPI迅速成为开发者的热门选择。本指南带领Python开发者快速入门FastAPI,涵盖环境搭建、基础代码、路径参数、请求体处理、数据库操作及异常处理等内容,帮助你轻松掌握这一高效Web框架。通过实践操作,你将学会构建高性能的Web应用,并为后续复杂项目打下坚实基础。
119 0
下一篇
无影云桌面