Python教程

大数协python训练营打卡笔记Task02

本文主要是介绍大数协python训练营打卡笔记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训练营打卡笔记Task02的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!