目录
条件语句
条件语句就是对给出的条件进行判断,对不同的判断结果指定不同的处理方法.
-
语法
if condition1:
<method1>
elif condition2:
<method2>
else:
<method3>
条件语句的判断顺序一定是自上而下,一旦达成指定条件,则执行相应的处理方法,而其他的代码不在执行.
所以,在设计判断条件时,务必要小心,设定好条件的适用范围,避免出现条件适用范围重叠而导致代码不执行的情况.
当然,条件语句是可以无限嵌套的,既每一个条件下,还可以无限嵌套其他条件.
if condition1:
if condition_first:
excute some code
elif condition_second:
excute other code
else:
excute code
elif condition2:
if condition_first:
excute some code
elif condition_second:
excute other code
else:
excute code
else:
excute code
-
举例说明
假设让用户输出一个数字,对该数字进行判断,若小于0则大于其绝对值,若等于0则直接打印该数字,若大于0又分三种不同的情况来处理.0到10之间大于其平方数,10到20之间大于'10到20之间'的字符,若大于20则大于'大于20'字符.
var=input()
var=int(var)
if var < 0:
print(abs(var))
elif var == 0:
print(var)
else:
if var < 10:
print(var**2)
elif 10 <= var <= 20:
print('10到20之间')
else:
print('大于20')
循环和控制
循环又分为变量循环为条件循环,同时continue和break两个关键字又可以进行循环控制.
遍历循环
-
语法
for var in sequence:
code statement
例如:
for i in [1,2,3]:
print(i+1)
#输出:
2
3
4
-
什么是iterable
python中一切皆对象.可以使用for in 循环遍历的对象就是可迭代对象.可迭代性也就是Iterable.
python的六种六列数据结构(int,str,list,tuple,dict,set),除了int意外,其他的都是可迭代的,也就是Iterable.
当然,可迭代的对象不仅仅这些,还有以后会介绍的生成器,或者实现了特定魔法方法的自定义类型也都可以是Iterable.
那如何判断对象是否可以被迭代呢?
内置模块collections为我们提供这样的功能.
from collections import Iterable
print(isinstance(list(),Iterable))#输出True
print(isinstance(int(),Iterable))#输出False
-
举例
一般情况下,遍历循环都是正序的,比如:
for i in range(0,3):
print(i)
#输出:
0
1
2
能不能倒序呢?答案是肯定的.
for i in range(3,0,-1):
print(i)
#输出:
3
2
1
其实range函数接收的第三个参数为负数时,就代表了逆序,同时也表示间隔,例如,间隔一个再打印一个.当然,正序时也同样可以实现间隔.
for i in range(3,0,-2):
print(i)
#输出:
3
1
for i in range(0,3,2):
print(i)
#输出:
0
2
那如果被遍历循环的对象不是range函数,怎么实现间隔呢?幸好python提供了另一个enumerate函数.
for k,v in enumerate('abc'):
print(k,v)
#输出:
0 a
1 b
2 c
for k,v in enumerate('abc',1):
print(k,v)
#输出:
1 a
2 b
3 c
enumerate接收两个参数,第一个代表要迭代的对象,第二个表示索引值,默认为0,当人也可以自行指定.
有了索引下标,就可以实现间隔循环了.divmod是python的一个内置函数,以tuple形式返回两个是的商和余数.
for k,v in enumerate('abc',1):
if divmod(k,2)[-1] !=0 :
print(k,v)
#输出:
1 a
3 c
条件循环
-
语法
while conditione:
code statement
例如:
a=10
while a > 0:
print('a > 0')
a=a-20
#输出:
a > 0
条件循环最最重要的是对给定的条件进行判断,如果为True则执行循环,如果判断为False,则不执行.
使用条件循环最重要的是就是设置合理的终止条件,否则将无限的死循环下去.......
-
真假判断
while循环以True/False判断结果作为循环执行的依据,那在python中的True/False是如何判断的呢?
类型 | TRUE | FALSE |
int | 非0 | 0 |
str | 非空 | 空 |
其他数据结构 | 非[] {} () | [],{},() |
特殊关键字 | 非None | None |
Not 的使用 | not False为True | not True为False |
还需要注意逻辑判断的关键字 and 和 or的用法.
循环控制
python为循环控制提供给了两个关键字continue,break.
continue:表示继续循环
break:表示终止循环
-
continue例子
假设有一个列表,既有数字又包含字母.我们的目的将其中所有的数字都加上1,而字母则跳过不做任何处理.
L=[1,2,'a',3,'b']
for i in range(len(L)):
if isinstance(L[i],int):
L[i]+=1
else:
continue
print(L)
#输出:
[2, 3, 'a', 4, 'b']
-
break例子
每次循环我们都将num加2,但当num大于等于20时中断整个循环.
num=10
while True:
num+=2
if num >= 20:
break
print(num)
#输出:
20
-
嵌套式的循环控制例子
现在我们将以前的例子综合一下,既遍历循环中嵌套条件循环,同时使用continue和break两个循环控制的关键字.
还是假设一个既包含数字又包含字母的列表,只要列表中的数字不大于20就乘上2,但一旦大于20就终止.
同样还是忽略字母,不做任何处理.
L=[1,2,'a',3,'b']
for i in range(len(L)):
if isinstance(L[i],int):
while True:
L[i]*=2
if L[i] >= 20:
break
else:
continue
print(L)
#输出:
[32, 32, 'a', 24, 'b']