python3之循环
来源:互联网 发布:创意中国设计大赛 知乎 编辑:程序博客网 时间:2024/06/13 05:31
本节主要介绍python中循环语句的用法以及其他一些语句exec等,文章后面附有之前的文章;
循环语句
if是值执行一次而循环时在条件满足情况下可以执行相同语句多次;使用循环可以轻松实现序列,词典等的迭代;
while循环:
用来在任何条件为真的情况下重复执行一个代码快:
while i>0:
代码快
其他代码;
演示如下:
>>>i=10>>> while i>0:... print("i=",i)... i-=1... i= 10i= 9i= 8i= 7i= 6i= 5i= 4i= 3i= 2i= 1>>>
for循环:
一般while循环已经满足我们要求了,但是有些时候还得去选择for循环更加有效;比如要为一个集合(序列和其他可迭代对像)的每个元素都执行一个代码快。这时候可以使用for语句;
基本形式:
for <迭代数> in <对象集合>:
>>> name=("peace","rong","nick")>>> for i in name:... print(i)... peacerongnick>>>
一些迭代工具
之前讲解字典时有讲过字典的迭代,现在介绍一下常用的迭代工具;
并行迭代
程序可以同时迭代两个序列
内建函数zip函数可以用来进行并行迭代,这里需要注意的是python2返回的是元祖列表,而python3中返回的是可迭代对象
##python2.7>>> num = zip((1, 2), (3, 4))>>> num[(1, 2), (3, 4)]#返回的是元祖列表;##python3.4>>> num=zip((1,2),(3,4))>>> num<zip object at 0x7fc5b1e7ef08>>>> #返回的是一个对象,并且支持一次遍历。如果需要重新遍历得重新赋值一次;#但是都支持如下的遍历:>>> for i,j in num:... print(i,j)... 1 32 4
当然也可以按索引迭代:
有些时候需要访问序列中的对象,同时还想获取当前对象的索引,例如替换字符串可以使用下面的方法:
>>> strings=["peace","rong","nick"]>>> index=0>>> for string in strings:... if "on" in string:... strings[index]="peace"... index+=1... >>> strings['peace', 'peace', 'nick']>>>
跳出循环:
1.break语句
与其他自然语言c等没有差别;就是结束循环;
2。continue语句:
同样它只是让当次迭代提前结束:
演示如下:
>>> num=[2,4,5,6,]>>> for i in num:... if i==5:... break... print (i)... 24>>> for i in num:... if i==5:... continue... print(i)... 246>>>
循环中的else语句:
else子句可以加在循环后,他仅在没有调用break语句时执行:还是刚在的例子:
>>> num=[2,4,5,6]>>> for i in num:... if i==7:... break... else:... print("not 7")... not 7#没有执行break打印7
列表推导式
列表推导式就是利用其他的列表创建新的列表;他的工作方式类似于for循环也很简单;
例如:创建由range(10)中每个x的平方组成;
>>> [x*x for x in range(10)][0, 1, 4, 9, 16, 25, 36, 49, 64, 81]
同样也可以加条件:比如创建只能被4整除的平方数:
>>> [x*x for x in range(10) if x%4==0][0, 16, 64]>>>
也可以增加更多的for:
>>> [[x*x,y*y] for x in range(10) for y in range(10) if x%4==0 if y%3==0] [[0, 0], [0, 9], [0, 36], [0, 81], [16, 0], [16, 9], [16, 36], [16, 81], [64, 0], [64, 9], [64, 36], [64, 81]]>>>
pass,del,exec介绍
python3中pass
pass语句就是什么都不做,让程序往下执行:比如可以让if,for,while,等块什么都不做时,我们可以加上pass
>>> for i in range(10):... File "<stdin>", line 2 ^IndentationError: expected an indented block>>> for i in range(10):... pass... >>>#从上可以看到不加pass就出错了。因为python时不允许空块存在的;>>> x=11>>> if x>12:... print("x>12")... else:... #等下在写... pass... >>>
python3中del
del删除语句不仅会删除一个对象的引用,也会删除那个名字本省:演示如下
>>> x=1>>> del x>>> xTraceback (most recent call last): File "<stdin>", line 1, in <module>NameError: name 'x' is not defined>>>#x这个名字已经不存在了
但是当两个引用指向同一个对象时,删掉的只是引用名:
#删掉y后x还是指向原来的对象;>>> x=[1,2]>>> y=x>>> y[1]=4>>> x[1, 4]>>> del y>>> x[1, 4]>>>
python3中exec和eval
有些时候我们可能想要得到动态代码,然后将其作为语句执行或作为表达式计算;
例如执行一个字符串的语句是exec
>>>exec("print(1+3)")4
当在字符串中定义变量时一定要小心;如果重名了就会发生不必要的错误;可以通过in来解决,起到了放置代码字符串命名空间的字典;
例如:
>>>from math import sin>>>scope={}>>>exec("sqrt=1") in scope>>>sqrt(4)2>>>scope['sqrt']1
eval是类似于exec的内建函数,只不过是eval会计算表达式,并且返回结果;同样可以使用命名空间;
简单演示如下
>>>eval(input("enter an expression:"))enter an expression:6+8*242
相关链接:
python3入门之类
python3入门之函数
python3入门之循环
python3之if语句
python3入门之赋值语句介绍
python3入门之print,import,input介绍
python3入门之set
python3入门之字典
python3入门之字符串
python3入门之列表和元组
python3入门之软件安装
python3爬虫之入门和正则表达式
- python3之循环
- python3之循环
- Python3之for循环、元组、字典
- Python3 循环
- python3 循环
- Python3-while循环语句
- Python3的循环
- python3 for循环
- Python3.X中的循环
- python013 Python3 循环语句
- Python3 循环语句
- Python3 Day2 循环
- Python3条件控制、循环控制
- 新手村之循环!循环!循环!
- python3的循环和条件控制
- 学习python3 02 条件判断和循环
- python3精简笔记(一)-输入输出,类型,循环
- python3 for 循环中的 else 语句
- JAVA内存泄露原因解析
- 【Ajax技术】Ajax技术回顾与XHR对象的创建
- linux下rpm,yum,apt-get安装软件
- 利用tcpdump+wireshark对android进行抓包分析
- OC - Property
- python3之循环
- 在网站中嵌入视频教学系统
- STM32的bootloader注意啥
- Java 内部类详解
- hdu 1069 dp
- UVa10596 Morning Walk
- poj 1269
- Spring-任务调度
- 二分匹配 HDU1068 Girls and Boys