标签:语句 推导 python 代码 else range 循环 打卡 Task02
一、学习知识点概要
条件语句(if语句、if-else语句、if-elif-else语句、assert关键词)
循环语句(while循环、while-else循环、for循环、for-else循环、range函数、enumerate函数、break语句、continue语句、pass语句、列表/元组/字典/集合推导式)
二、学习内容
(一)条件语句
(1)if语句
expression为条件表达式;expr_true_suite为代码块
if expression:
expr_true_suite
①单个if语句可以通过布尔操作符and,or,not进行多重判断
②只有当表达式为真时,才会执行代码块
(2)if-else语句
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
(3)if-elif-else语句
if expression1:
expr1_true_suite
elif expression2:
expr2_true_suite
.
.
elif expressionN:
exprN_true_suite
else:
expr_false_suite
表示:
判断多个条件,若第1个条件不成立,则判断第2个条件;若第2个条件不成立,则判断第3个条件(若有条件成立,则执行特定代码块中的代码)……最后添加的else表示上面所有条件均不成立的情况下,执行某条代码块。
(4)assert关键词
assert称为“断言”,当这个关键词后边的条件为 False 时,程序崩溃并输出:AssertionError
(二)循环语句
(1)while循环
while 布尔表达式:
代码块
while循环的代码块会一直执行直到布尔表达式的值为假;
(2)while-else循环
while 布尔表达式:
代码块
else:
代码块
while执行完包含的代码块后执行else包含的代码块。(除非while循环中出现跳出循环的语句)
(3)for循环(迭代循环)
for 迭代变量 in 可迭代对象:
代码块
序列迭代器,可以遍历任何有序序列(str、list、tuple)和任何可迭代对象(dict)。
【例子】
for each in "Dashuxie":
print(each,end="")
#Dashuxie
(4)for-else循环
for 迭代变量 in 可迭代对象:
代码块
else:
代码块
同while-else循环,for执行完包含的代码块后执行else包含的代码块。(除非for循环中出现跳出循环的语句)
(5)range函数
range([start,] stop[, step=1])
①有三个参数,用中括号括起来的两个参数代表可选;
②step=1代表默认增减值为1;
③range函数代表的是生成数字序列:从start参数到stop参数,但不包括stop参数的值,以step的值递增减进行运算。
(6)enumerate函数
enumerate(sequence, [start=0])
①sequence代表支持迭代的对象
②start是下标开始的位置
③返回enumerate(枚举)对象
④可与for循环结合使用,用enumerate(A,j)还可以确定索引起始值为j(默认值为0)。(返回A中元素)
(7)break语句
break语句可以跳出当前所在层循环体。
(8)continue语句
continue语句表示终止本轮循环并开始下一轮循环。
注意:无论是break语句还是continue语句,都只能作用于一层循环体。
(9)pass语句
不做任何事,但用于需要语句的位置,防止提示出错。
(10)列表/元组/字典/集合推导式
列表推导式
[ 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}(不重复 同集合的定义)
其它
三、学习问题与解答(自己遇到的问题+课后题)
【自己的问题】
1.不理解字典推导式
参考了链接:Python字典推导式 (biancheng.net);python的各种推导式(列表推导式、字典推导式、集合推导式) - 苍松 - 博客园 (cnblogs.com)
大概是和列表推导式类似,只不过改中括号为大括号。
2.不理解enumerate函数的含义
参考链接:python enumerate用法总结_竹聿Simon的专栏-CSDN博客_enumerate
我的理解是生成了一个类似于目录的索引。
【课后练习题】
1、编写一个Python程序来查找那些既可以被7整除又可以被5整除的数字,介于1500和2700之间。
for i in range(1500,2701):
if (i % 7 == 0) & (i % 5 == 0):
print(i)
2、龟兔赛跑游戏
确实不会写 写一点思考
①由于要对数值进行比较并且最终输出三种结果,考虑到的应该是if-elif-else语句
②由于v1,v2,t,s限定范围,考虑range函数
③l不仅限定范围还规定为v1,v2的公倍数,此时也要用到if语句:
if (l % v1 == 0) & (i % v2 == 0 ):
……
④秒数通过运算算出
就想到这里而已……
四、学习思考与总结
1.range有三种形式且参数都只能是整型:
range(stop)
range(start,stop)
range(start,stop,step)
start和stop的关系类似于区间中的左闭右开
要取0~10,必须输入:range(11)
【例子】
for i in range(11):
print(i)
2.range的step还可以是负数
【例子】
for i in range(10,4,-2):
print(i)
#10
8
6
3.总结
①第一次接触推导式,不知道要怎么样去运用和理解。
②有些例子还不能很好地理解,自己在给的文件笔记里面做了标记,打算后面如果遇到了再回来打开文件进行理解。
③遇到完整的题目还是不知道从何下手。
④提前看了相关的教学视频,基本上可以掌握和运用基础的条件语句和循环语句。
⑤本次学习加笔记用时大概四个小时左右,效率还可以。
标签:语句,推导,python,代码,else,range,循环,打卡,Task02 来源: https://blog.csdn.net/Slender_X/article/details/121545334
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。