请选择 进入手机版 | 继续访问电脑版
 找回密码
 立即注册
首页 社区 Java 24小时删!你不可能学不会的知识python基础 ...

24小时删!你不可能学不会的知识python基础

猿梦 2022-11-25 10:45:35
门锁他们拿走了工资%电视丁友梅抹掉#至此,我们已经把python最基本的数据结构讲的差不多了不了解这个你可能永远不会成为python大佬(3)不了解这个你可能永远不会成为python大佬(4)从这节开始,你就可以写一个完整的程序结构,而不是一些零碎的小片段啦!这节我们开始讲:if条件语句 | for循环 | while循环 | 跳出和终止循环[赞][赞][赞][赞][赞][赞]01if条件语句顾名思义,if是“如果”的意思,它常用来判断程序在什么情况下需要做什么事,python里的条件语句形如:1. 如果如果a成立,则执行bif 条件a :b2. 如果a成立,则执行b,否则(else)执行cif 条件a:belse:c3.如果a成立,则执行b,否则如果c成立,则执行d,如果都不成立,执行eif 条件a :belif 条件c :delse:e上文中的 仅代表4个空格缩进,如果是在notebook里写,冒号":"回车后会自动缩进(python程序结构的划分就是依据严格的缩进,if、for等语句的缩进必须注意)条件语句可以多种多样,像下面这样:a=    3b=  5if   a==  3     and   b==  4  :print(  'and用法'  )elif   a==  3     or   b==  4  :print(  'or用法'  )else  :print(  '比大小'  )aandb表示必须两个同时成立,aorb则只需要至少一个成立即可。输出结果:or用法小知识:短路效应a and b中,a如果为假,则python默认不执行b语句,由定义直接判定为假a or b中,a如果为真,则默认不执行b语句,直接判定为真,这就是著名的短路效应02for、while循环循环是让一个语句重复多次,为了提高程序效率。for循环形如:for 变量 in 序列:语句可以依次循环列表中每个值,如:for   i   in   [  'a'  ,  'b'  ,  'c'  ,  'd'  ]:print(i)输出结果:a b c d上面的循环还可以写成另一种形式:list_1=[    'a'  ,  'b'  ,  'c'  ,  'd'  ]for   i   in   range(len(list_1)):print(list_1[i])输出结果:a b c d第二种方法虽然看起来麻烦些,但实际工作中其实用的更多。range()函数上面程序里出现了range()函数,这里简单讲一下:其中len()函数是获取列表的长度,range()函数是一个生成序列数的函数。基本形式为range(x,y,l) range(10)代表一个0~9的序列,range(0,10)与range(10)相同,默认步长为1,如下:list_1=[x     for   x   in   range(  10  )]#0~9,省略起始数字,左闭右开list_2=[x   for   x   in   range(  0  ,  10  )]#0~9,起始数字为0,左闭右开list_3=[x   for   x   in   range(  0  ,  10  ,  2  )]#0~9,步长为2取,左闭右开print(list_1);print(list_2);print(list_3)输出结果:[    0  ,   1  ,   2  ,   3  ,   4  ,   5  ,   6  ,   7  ,   8  ,   9  ][  0  ,   1  ,   2  ,   3  ,   4  ,   5  ,   6  ,   7  ,   8  ,   9  ][  0  ,   2  ,   4  ,   6  ,   8  ]上面也是一种用for循环生成列表的快捷方式。实际工作里,如果想在n个不同序列中同时循环n个量,可以像这样:for   i, n, c   in   zip([  0  ,  1  ], [  'bad'  ,  'good'  ], [  'green'  ,  'red'  ]):print(i,n,c)输出结果:0   bad green1   good red其中,zip()是一个“打包”函数,将[0,1], ['bad','good'], ['green','red']变为[(0,'bad','green'),(1,'good','red')],然后i、n、c分别进行循环。( ps:我经常用这个方式绘图,可以一次性绘制多个参数,有奇效 )while意为当...成立时执行...,循环形如:while 条件 :语句简单例子:i=    0while   (i<  5  ) :print(i)i=i+  1上面程序就是让i每次循环中变化,直到不满足i<5时跳出循环。for和while选择哪个一般来说都行,while更侧重明确有中断条件的情况,for更侧重于有确定长度或是循环已知的列表,但也可以在结构里设置中断,总的来说,for的适用面更广泛。03break与continue余下的篇幅简单讲下循环中的中断标志符:break和continuebreak很简单,遇到break直接跳出当前循环,这个循环就废了,不再进行continue则是跳过本轮的循环,后面循环继续。简单的例子展示一下区别:list_1=[    'a'  ,  'b'  ,  'c'  ,  'd'  ]for   i   in   range(len(list_1)):if  (list_1[i]==  'c'  ):breakprint(list_1[i])输出结果:ab换成continue:for   i   in   range(len(list_1)):if  (list_1[i]==  'c'  ):continueprint(list_1[i])输出结果:abd区别显而易见了。这时候就很多人要问了,如果我想满足某个条件就连续跳出好几层循环,该咋办?如果直接用break,会出现下面这样:for   i   in   range(  10  ):for   j   in   range(  10  ):if  (j==  3  ):breakprint(  'j中断位置:'  ,j)print(  'i中断位置:'  ,i)输出结果:j中断位置:    3i中断位置:  9显然break只能跳出内层循环,外部的循环仍然完整的进行了。我们引入break_flag标志位来解决这个问题:for   i   in   range(  10  ):break_flag =   False#跳出整个循环的标志for   j   in   range(  10  ):if  (j==  3  ):break_flag =   Truebreakif  (break_flag):break#跳出外层循环print(  'j中断位置:'  ,j)print(  'i中断位置:'  ,i)输出结果:j中断位置:    3i中断位置:  0这里,内层break前先将break_flag置为True,跳出内层后if(break_flag)判定成立,再次执行外层的break,达到了连续跳多层循环的目的。

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册