循环&条件
- 一、条件语句
- 二、循环语句
- 三、条件与循环进阶
一、条件语句
- 基础
# 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 |
Int | 0为False,其余为True |
Bool | True 为True,False为False |
List/Tuple/Dict/Set | Iterable 为空解析为False,其余为True |
Object | None解析为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')else:print(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))