玩转python循环条件

news/2024/11/13 3:54:22/

循环&条件

  • 一、条件语句
  • 二、循环语句
  • 三、条件与循环进阶

一、条件语句

  • 基础
# y = |x| 使用条件语句解释
if x < 0:y = -x
else:y = x# 注:其他语言的条件语句都会这样去写:if(x < 0){ ... } ,而python 是条件语句后加冒号(:)# 且 python 中是不支持switch语句的,所以当存在多个条件判断时,我们需要使用else if,
# 而在python 中则为elif
if 条件语句1:结果1
elif 条件语句2:结果2
else:结果3
  • 省略简写
# 简写的条件语句
if s: # s 是一个string...if l: # l 是一个list...if i: # i 是一个int...
数据类型结果
String空字符串解析为False,其余为True
Int0为False,其余为True
BoolTrue 为True,False为False
List/Tuple/Dict/SetIterable 为空解析为False,其余为True
ObjectNone解析为False,其余为True

二、循环语句

  • 基础

    Python的循环一般通过for和while循环实现

  • for循环

# 遍历列表中的元素并打印
l = [1,2,3,4]
for item in l:print(item)
#1
#2
#3
#4# 注:python中的数据结构之遥时可迭代的(iterable),比如列表、集合等,那么都可以通过
# for item in <iterable> 来实现# 遍历字典,由于字典只有键是可迭代的,其他遍历值需要调用其内置的d.values()、遍历键值对需要调用d.items()方法来进行处理
# 1.遍历键
d = {'name':'liuyi','age':18,'gender':'male'}
for k in d:print(k)
#name
#age
#gender# 2.遍历值
for v in d.values():print(v)
#liuyi
#18
#male# 3.遍历键值对
for k,v in d.items():print('key:{},value:{}'.format(k,v))
#key:name,value:liuyi
#key:age,value:18
#key:gender,value:male# 如果现在有个需求是遍历上诉l 的前三个元素如何解决呢?
# 你会发现我们无法通过上诉for的方法去拿到集合的索引,当然也有可以实现的方法,如:
for index in range(0,len(l)):if index < 3:print(l[index])
#1
#2
#3
# 那有没有一种更简便的方法去是我们方便的拿到集合内的索引和内容呢?
# 我们可以通过Python中内置的函数enumerate()来遍历集合
for index,item in enumerate(l):if index < 3:print(item)
#1
#2
#3# 跳出循环
# 在循环中我们一般常常会搭配上continue和break一起使用。
# 而continue是让程序跳过当前循环,继续执行下面的循环;
# 而break 是直接跳出整个循环,不再执行后面的循环操作。
# 举例:
for index,item in enumerate(l):if index == 2:continueelse:print(item)
#1
#2
#4
for index,item in enumerate(l):if index == 2:breakelse:print(item)
#1
#2
  • while循环
# while 便利数组
l = [1,2,3,4]
index = 0
while index < len(l):print(l[index])index += 1
#1
#2
#3
#4# 所以在大多数的场景下while和for是可以替换的。
# 但是如果现在有个交互式系统,需求是根据客户输入的内容返回对应消息?
# 其并没有明确的遍历次数,这个时候用while相对for就会更好
# user_input 值是用户客户端输入
while user_input != 'quit':if user_input == '1'print('1')elseprint(user_input)

三、条件与循环进阶

  • 进阶
# 简写 if 判断
expression1 if condition else expression2
# 它等同于
if condition:expression1
else:expression2# 简写 if判断 &for
expression1 if condition else expression2 for item in iterable
# 它等同于
for item in iterable:if condition:expression1else:expression2# 如果没有else 语句 简写为
expression for item in iterable if condition# 简写 for循环
[(xx,yy) for xx in x for yy in y if xx != yy]
# 它等价于
l = []
for xx in x:for yy in y:if xx != yy:l.append((xx,yy))

http://www.ppmy.cn/news/538712.html

相关文章

Espressif 玩转 固件下载

今天来撸一下 Espressif 的 Serial Protocol。虽然 Espressif 已经提供了 esptool 工具用于固件下载&#xff0c;但架不住还是有将下载功能集成到自己工具中的需求呀。 对于 Serial Protocol&#xff0c;Espressif 已经提供了比较完善的文档。但个人认为文档写的过于繁琐&…

mysql增删改查

目录 一、准备工作1.1 安装或关闭以下服务1.2 本次安装环境 2、MYSQL增加数据2.1 准备工作2.2 创建新表2.3 查看新增表2.4 MYSQL写入数据 3、删除数据3.1 删除数据表中某列3.2 删除数据表中的数据3.3 删除数据表 4、MYSQL修改4.1 修改数据表名称4.2 修改数据表列名称4.3修改数据…

申万宏源程序化接口的编写

一个程序化接口的编写,接口不实现另一个通达信数据接口的编写,接口&#xff0c;但可以继承多个其他通达信数据接口的编写,接口。程序化接口的编写,接口的多继承特点弥补了类的单继承。

客户视频|申银万国期货金老师:选择ZStack,省钱省力又安心

申银万国期货交易系统部网络工程师 金晓骏表示&#xff1a; ZStack的解决方案确实帮我们节省了很多硬性成本&#xff0c;对比从前的实体机柜&#xff0c;现在我们只要2-3个机柜就可以搞定100多台机器&#xff0c;而且机柜也是可以租赁的&#xff0c;为我们省了很多费用。 从维…

客户视频|申银万国期货曹总:选择ZStack的3个关键因素

申银万国期货信息技术总部总经理 曹骏表示&#xff1a; 金融机构在选择基础云平台时&#xff0c;要充分考虑云平台的稳定性、灵活性、可持续性、安全性及管理运维的便利性。而ZStack的云服务就能很好的帮助我们解决了这些问题&#xff0c;这也是我们选择ZStack的原因所在。 从…

客户视频|申银万国期货,从ZStack社区版到私有云

​申银万国期货上云前面临的问题&#xff1a; 每当业务系统上线&#xff0c;就需要部署一台硬件服务器&#xff0c;这过程中会涉及到许多硬件服务器的采购、审批等流程&#xff0c;整个项目的实施周期都会变得非常长。另外设备的上下架、调试给机房运维人员带来很繁重的工作量。…

【从零开始玩量化14】如何获取申万行业数据

前言 申万行业分类&#xff0c;是我非常喜欢用的一个股票行业分类标准&#xff0c;用它来分类股票&#xff0c;做行业对比&#xff0c;梳理产业链上下游结构&#xff0c;都是非常好的工具。 申万行业标准 申万行业标准&#xff0c;是申万宏源研究所&#xff0c;发的的权威行…

网络检测,其实我们可以做的更多

上海朗坤信息系统有限公司成立于1999年&#xff0c;一直专注于网络测试以及网络维护领域&#xff0c;为用户提供各类网络测试、网络验收、系统评测等产品解决方案。上海朗坤技术部自成立以来&#xff0c;不断同各行业用户开展业务合作&#xff0c;提供各类测试和检测服务&#…