语法
条件语句:
if
''''''
if - else
'''''''''''
if - elif - elif-……-elif - else
循环语句:
while 布尔表达式:
代码块
#while循环的代码块会一直循环执行,直到布尔表达式的值为布尔假。
布尔表达式不带有<、>、==、!=、in、not in等运算符,仅仅给出数值之类的条件,也是可以的。当while后写入一个非零整数时,视为真值,执行循环体;写入0时,视为假值,不执行循环体。也可以写入str、list或任何序列,长度非零则视为真值,执行循环体;否则视为假值,不执行循环体。
2. while - else 循环
while 布尔表达式:
代码块
else:
代码块
for 迭代变量 in 可迭代对象:
代码块
for 迭代变量 in 可迭代对象:
代码块
else:
代码块
range([start,] stop[, step=1])
start:起始值
stop:终止值(不包括本身)
step:步长(默认为一)
括号括起来的两个表示这两个参数是可选的。
6. enumerate()函数
enumerate(sequence, [start=0])
sequence : 一个序列、迭代器或其他支持迭代对象
返回枚举对象
默认start(起始位置)为0
for i, language in enumerate(languages, 2):
print(i, 'I love', language)
print('Done!')
'''
2 I love Python
3 I love R
4 I love Matlab
5 I love C++
Done!
'''
break 语句
跳出当前所在层的循环
continue 语句
终止本轮循环并开始下一轮循环
pass 语句
占位,使程序不报错
推导式
列表推导式:
variable = [out_exp for out_exp in input_list if out_exp == 2]
out_exp_res:列表生成元素表达式,可以是有返回值的函数。
for out_exp in input_list:迭代input_list将out_exp传入out_exp_res表达式中。
if out_exp == 2:根据条件过滤哪些值可以。
【例子】
x = [-4, -2, 0, 2, 4]
y = [a * 2 for a in x]
print(y)
# [-8, -4, 0, 4, 8]
【例子】
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)]
【例子】
x = [i for i in range(100) if (i % 2) != 0 and (i % 3) == 0]
print(x)
# [3, 9, 15, 21, 27, 33, 39, 45, 51, 57, 63, 69, 75, 81, 87, 93, 99]
【例子】
a = [(i, j) for i in range(0, 3) for j in range(0, 3)]
print(a)
# [(0, 0), (0, 1), (0, 2), (1, 0), (1, 1), (1, 2), (2, 0), (2, 1), (2, 2)]
【例子】
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)
# [(0, 2)]
元组推导式:
(表达式 for 迭代变量 in 可迭代对象 [if 条件表达式] )
【例子】
a = (x for x in range(10))
print(a)
# at 0x0000025BE511CC48>
print(tuple(a))
# (0, 1, 2, 3, 4, 5, 6, 7, 8, 9)
variable = {
out_exp for out_exp in input_list if out_exp == 2}
和其它推导式的语法格式相比,唯一不同在于,字典推导式用的是大括号{}。
listdomn = ('你好','世界')
newlist = {
key : vlaue for key,vlaue in listdomn}
print(newlist)
{
表达式 for 迭代变量 in 可迭代对象 [if 条件表达式] }
区分集合推导式与字典推导式:
根据表达式进行判断。如果表达式以键值对(key:value)的形式,则证明此推导式是字典推导式;反之,则是集合推导式。
练习
for a in range(1500,2701,1):
if a%7==0 and a%5==0:
print(a,end=' ')
v1, v2, t, s, l = map(int, input().split())
L1 = l
L2 = l
i = 0
time = int(l/v2)
while L1 > 0 and L2 > 0:
if L2 - L1 < t:
L1 -= v1
L2 -= v2
i += 1
else:
L2 -= v2*s
i += s
if L1 <= 0 < L2:
print('R')
print(i)
break
elif L2 <= 0 < L1:
print('T')
print(time)
break
elif L1 <= 0 and L2 <= 0:
if (L1+v1)/v1 > (L2+v2)/v2:
print('R')
print(i)
break
elif (L1+v1)/v1 < (L2+v2)/v2:
print('T')
print(time)
break
else:
print('D')
print(i)
break