条件语句(if语句、if-else语句、if-elif-else语句、assert关键词)
循环语句(while循环、while-else循环、for循环、for-else循环、range函数、enumerate函数、break语句、continue语句、pass语句、列表/元组/字典/集合推导式)
expression为条件表达式;expr_true_suite为代码块
if expression: expr_true_suite
①单个if语句可以通过布尔操作符and,or,not进行多重判断
②只有当表达式为真时,才会执行代码块
if expression: expr_true_suite else: expr_false_suite
表示:
若条件成立,就执行其包含的某条语句或某个代码块;
若条件不成立,就执行另外的某条语句或代码块。
注意:if语句支持嵌套,通过缩进进行表示,需注意else的悬挂问题。
【例子】
a=3 b=5 small = a if a < b else b print(small) #3
if expression1: expr1_true_suite elif expression2: expr2_true_suite . . elif expressionN: exprN_true_suite else: expr_false_suite
表示:
判断多个条件,若第1个条件不成立,则判断第2个条件;若第2个条件不成立,则判断第3个条件(若有条件成立,则执行特定代码块中的代码)……最后添加的else表示上面所有条件均不成立的情况下,执行某条代码块。
assert称为“断言”,当这个关键词后边的条件为 False 时,程序崩溃并输出:AssertionError
while 布尔表达式: 代码块
while循环的代码块会一直执行直到布尔表达式的值为假;
while 布尔表达式: 代码块 else: 代码块
while执行完包含的代码块后执行else包含的代码块。(除非while循环中出现跳出循环的语句)
for 迭代变量 in 可迭代对象: 代码块
序列迭代器,可以遍历任何有序序列(str、list、tuple)和任何可迭代对象(dict)。
【例子】
for each in "Dashuxie": print(each,end="") #Dashuxie
for 迭代变量 in 可迭代对象: 代码块 else: 代码块
同while-else循环,for执行完包含的代码块后执行else包含的代码块。(除非for循环中出现跳出循环的语句)
range([start,] stop[, step=1])
①有三个参数,用中括号括起来的两个参数代表可选;
②step=1代表默认增减值为1;
③range函数代表的是生成数字序列:从start参数到stop参数,但不包括stop参数的值,以step的值递增减进行运算。
enumerate(sequence, [start=0])
①sequence代表支持迭代的对象
②start是下标开始的位置
③返回enumerate(枚举)对象
④可与for循环结合使用,用enumerate(A,j)还可以确定索引起始值为j(默认值为0)。(返回A中元素)
break语句可以跳出当前所在层循环体。
continue语句表示终止本轮循环并开始下一轮循环。
注意:无论是break语句还是continue语句,都只能作用于一层循环体。
不做任何事,但用于需要语句的位置,防止提示出错。
列表推导式
[ expr for value in collection [if condition] ]
输出:[-3,-2,-1,0,1,2,3]
元组推导式
( expr for value in collection [if condition] )
输出:(0,1,2,3)
字典推导式
{ key_expr: value_expr for value in collection [if condition] }
输出:{0: True, 3: False, 6: True, 9: False}
集合推导式
{ expr for value in collection [if condition] }
输出:{1,2,3}(不重复 同集合的定义)
其它
【自己的问题】
参考了链接:Python字典推导式 (biancheng.net);python的各种推导式(列表推导式、字典推导式、集合推导式) - 苍松 - 博客园 (cnblogs.com)
大概是和列表推导式类似,只不过改中括号为大括号。
参考链接:python enumerate用法总结_竹聿Simon的专栏-CSDN博客_enumerate
我的理解是生成了一个类似于目录的索引。
【课后练习题】
for i in range(1500,2701): if (i % 7 == 0) & (i % 5 == 0): print(i)
确实不会写 写一点思考
①由于要对数值进行比较并且最终输出三种结果,考虑到的应该是if-elif-else语句
②由于v1,v2,t,s限定范围,考虑range函数
③l不仅限定范围还规定为v1,v2的公倍数,此时也要用到if语句:
if (l % v1 == 0) & (i % v2 == 0 ):
……
④秒数通过运算算出
就想到这里而已……
range(stop)
range(start,stop)
range(start,stop,step)
start和stop的关系类似于区间中的左闭右开
要取0~10,必须输入:range(11)
【例子】
for i in range(11): print(i)
【例子】
for i in range(10,4,-2): print(i) #10 8 6
①第一次接触推导式,不知道要怎么样去运用和理解。
②有些例子还不能很好地理解,自己在给的文件笔记里面做了标记,打算后面如果遇到了再回来打开文件进行理解。
③遇到完整的题目还是不知道从何下手。
④提前看了相关的教学视频,基本上可以掌握和运用基础的条件语句和循环语句。
⑤本次学习加笔记用时大概四个小时左右,效率还可以。