三、条件语句
if 条件:
执行语句
elif 条件:
执行语句
else:
执行语句
可嵌套:
a = int('11')
if 8<a<=10:
if a ==10:
print('a ==10')
elif a<8:
print('a is' + ' '+str(a))
else:
print('a is' + ' '+str(a)+'!')
输出 a is 11 !
assert:
assert 条件语句 只有条件语句为True才继续运行
while:
while 条件语句:
代码块
条件语句为False停止循环
str="qweasdzxc"
while str:
print(str)
str =str[0:]
成功写出一个死循环/(ㄒoㄒ)/~~
while-else:
while 条件语句:
代码块
else:
代码块
while中break后执行else中的代码
和php或java、javascript比 没有用大括号抱起来 else可以判断while的结束位置
for:
for 迭代变量 in 可迭代对象
代码块
value可以是任何有序序列
str=True
for i in str:
print(i,end='&')
布尔值为非有序序列 所以会报错
对象循环:
objs={'a':1,'b':'qwe','c':True}
for k,v in objs.items():
print(k,v,sep=":",end=" ")
for-else:
for 迭代变量 in 可迭代对象
代码块
else:
代码块
range():
range([start,] stop[, step=1])
- 这个BIF(Built-in functions)有三个参数,其中用中括号括起来的两个表示这两个参数是可选的。
step=1
表示第三个参数的默认值是1。range
这个BIF的作用是生成一个从start
参数的值开始到stop
参数的值结束的数字序列,该序列包含start
的值但不包含stop
的值
enumerate:
enumerate(sequence, [start=0])
- sequence:一个序列、迭代器或其他支持迭代对象。
- start:下标起始位置。
- 返回 enumerate(枚举) 对象
ran = range(1,10,3)
for i in ran:
print(i)
else:
ran1 = enumerate(ran)
for k,v in ran1:
print(k,v,sep=":")
这样写可以正常执行
ran1前面没空格会报错
ran1在上述位置 不加else会执行三遍
ran1前面没空格 不加else仅执行一遍
故在前面没空格 则认为是前面的语句执行完成
break:跳出循环
continue:执行下一次循环
pass:
非执行语句
if 1>0:
pass
print(123)
不输出任何代码
推导式:
列表推导式
[ expr for value in collection [if condition] ]
x = [i ** 2 for i in range(1, 10)]
print(x)
# [1, 4, 9, 16, 25, 36, 49, 64, 81]
x = [(i, i ** 2) for i in range(6)]
print(x)
# [(0, 0), (1, 1), (2, 4), (3, 9), (4, 16), (5, 25)]
nums = range(1,100)
#获取偶数个数
nums1 = [i for i in nums if (i%2)==0]
print(nums1,len(nums1))
x = [[i, j] for i in range(0, 3) for j in range(0, 3)]
print(x)
# [[0, 0], [0, 1], [0, 2], [1, 0], [1, 1], [1, 2], [2, 0], [2, 1], [2, 2]]
x[0][0] = 10
print(x)
# [[10, 0], [0, 1], [0, 2], [1, 0], [1, 1], [1, 2], [2, 0], [2, 1], [2, 2]]
a = [(i, j) for i in range(0, 3) if i < 1 for j in range(0, 3) if j > 1]
print(a)
元组推导式:
( expr for value in collection [if condition] )
a = (x for x in range(10))
print(a)
# <generator object <genexpr> at 0x0000025BE511CC48>
print(tuple(a))
# (0, 1, 2, 3, 4, 5, 6, 7, 8, 9)
字典推导式:
{ key_expr: value_expr for value in collection [if condition] }
b = {i: i % 2 == 0 for i in range(10) if i % 3 == 0}
print(b)
# {0: True, 3: False, 6: True, 9: False}
集合推导式:
{ expr for value in collection [if condition] }
c = {i for i in [1, 2, 3, 4, 5, 5, 6, 4, 3, 2, 1]}
print(c)
# {1, 2, 3, 4, 5, 6}
其他:
next(iterator[, default])
返回并删除集合中的下一个
e = (i for i in range(10))
print(e)
# <generator object <genexpr> at 0x0000007A0B8D01B0>
print(next(e)) # 0
print(next(e)) # 1
for each in e:
print(each, end=' ')
# 2 3 4 5 6 7 8 9
s = sum([i for i in range(101)])
print(s) # 5050
s = sum((i for i in range(101)))
print(s) # 5050