python学习笔记2_条件循环和其他语句
一、条件循环和其他语句
1、print和import的更多信息。
1.1、使用逗号输出 //print() 打印多个表达式是可行的,用逗号隔开。
在脚本中,两个print语句想在一行输出,那么第一个结束的位置添加一个逗号(,)。注意只有脚本中有效,交互式对话框是看不到效果的。
1.2、想把某件事做另一件事导入。
从模块中导入函数的时候:
import somemodule 或者 from somemodule import somefunction, anotherfunction,yetanotherfunction 或者 from somedule import *只有确定自己想要导入给模块的功能的时候,才能使用最后一种。
如果有两个模块有相同的函数名,可以在语句末尾加上 as ,给该句或者整个模块提供模板
2、赋值魔法
2.1、序列解包(sequence unpacking)或可选代解包 //将多个值得序列解开,然后放到变量的序列中。
当方法或者函数返回的是元组或其他序列或其他可迭代对象尤其有用。它允许寒素返回一个以上的值,并打包成元组,然后通过赋值语句很容易访问。 注意 解包序列中的元素数量必须和放置在赋值号=左边的变量数量完全一致。不然会报错。(在3.0版本中,赋值好左边的变化可以少于右边,在其中的变量后面加星号(*),可以把多个变量赋值给这个带星号的变量(也就是赋值成列表[1,2,3])。)
2.2、链式赋值 //将同一个值复制给多个变量。x=y=somefunction()。 这里 x=y=somefuntion() 不等于 x=somefuntion(),y=somefunction()
2.3、增量赋值 // x=x+1; (augment assignment)增量赋值x +=1;对于 *、/、%等标准运算符都有用。
3、语句块:缩排的乐趣
在语句块中条件为真(条件语句)是执行或者执行多次(循环语句)的一组语句。在代码前放置空格来缩进的语句即可创建语句块。注意推荐的语句块是4个空格。
4、条件和条件语句
4.1、布尔变量的作用
真值也叫布尔值:在布尔表达式中会被解释器看作假的: False None 0 "" () {} {} //虽然这些都为假,但是他们却不相等。其他的一切都为真。
标准的真值是 True和False,但是一些语言,如c和python2.3,把0和1看作真值。事实上True和False只不过是0和1华丽的说法。看起来不一样,作用相同。
4.2、条件执行和if语句
if else elif
4.3、比较运算符
x==y x<y x>y x>=y x<=y x!=y //基本判断。注意:x不等于y.也可是使用x <>y,但是不推荐这么写。
x is y //x和y是同一个对象
x is not y //x和y不是同一个对象
x in y //x是y容器(例如:序列)的成员
x not in y //x不是是y容器(例如:序列)的成员
4.3.1、is:同一性运算符
使用 == 运算符判定两个对象是否相等,使用is判定两者是否等同(同一个对象)。注意:请不要,使用is运算符比较类似数值和字符串这类不可变值。因python内部操作这些对象的方式原因,结果不可预测。
4.4、断言
if 语句有一个非常优秀的近亲 断言(assert)。断言,确保程序中的某一个语句一定为真,如果为假,主动抛出异常。(在检查和调试某段代码的时候非常有用。)
可以添加字符串,用来解释断言。
5、循环
while for 注意:能使用for的地方尽量不要使用while。
5.1、遍历字典
5.2、一些迭代工具
1、并行迭代
程序可以同时迭代两个序列。zip函数可以用来进行并行迭代。zip函数的功能:把两个压缩在一起,然后返回一个元组列表。
2、编号迭代
有时候迭代序列中项同时,还想知道项的索引。
3、反转和排序迭代
两个很有用的寒素:reversed()反转和sorted()排序
注意reversed()函数返回的是序列,不能进行索引,分片等操作,例子中已经给出需要先转换成list。
5.3、跳出循环
break //终止循环 其中range(),前两个参数是开始和结束,第三个参数是间隔给元素,如果是负数倒序。
continue //结束本次循环,接这继续下个循环。
while True/break习语 // while True部分实现了永远不停的循环,而if break实现了有满足条件结束循环。
5.4、循环中的else子句
因为100以内有最大平方根的数字是81,但是这里只有100-82所以到程序跑完循环也没执行break语句,这个时候执行了else子句。在while和for循环中使用continue、break的语句,break语句。
6、列表推导式,-轻量级循环
列表推导式(list comprehension)是利用其他列表创建新列表(类似数学术语中的集合推导式)的一种方式。
得到名字首字母相同的男孩女孩的新集合。但是上述方法不高效,龟叔推荐这样列表推导式不用尝试所有男女的组合,只要检查字典的首字母即可。
7、三人行
介绍三个语句,pass、del、exec。
1、pass 当子句什么也不做的时候,如果空着程序会报错的。这个时候可以使用pass if name=='zhang' #子句没想好 pass即可,接着写下面的语句。
2、del del 删除的只是名称,不能删除值,python有垃圾回收机制,在没有使用的时候自动删除。
3、使用 exec和eval 执行和求值字符串
有时候需要python动态创建语句和表达式。这些未知的语句和表达式,近视“黑魔法”使用要十分的慎重。因可能造成非常严重的安全漏洞。
1、exec //执行字符串的语句。python3.0版本以后成为函数。
简单的执行exec语句绝对不是好事,通常给它指定命名空间。这样简单的执行就会出现问题。
1.1、指定命名空间: in <scope>.其中的<scope>就是起放置代码字符串命名空间的作用的字典。
2、eval(用于求值)是类似exec的内置函数。exec语句会执行一系列的Python语句,而eval会计算python表达式,并返回结果值。
python学习笔记2_条件循环和其他语句的更多相关文章
- Python学习笔记五--条件和循环
5.1 if语句 没什么好说,if语句语法如下: if expression: expr_true_suit 5.1.1多重条件表达式 单个if语句可以通过布尔操作符and,or,not实现多重条件判 ...
- Python学习笔记之条件、循环和其他语句
一.函数导入 1.为模块提供别名 >>> import math as foobar #设置math 别名为foobar >>> foobar.sqrt(4) 显示 ...
- Python学习笔记----数据类型 运算符 循环 条件判断
1. Python安装 在官网www.python.org下载安装程序,可以支持的操作系统linux,windows,mac. Python版本:2.x和3.x,分别有x86和x64. 在Window ...
- python 学习笔记3(循环方式;list初始化;循环对象/生成器/表推导;函数对象;异常处理)
### Python的强大很大一部分原因在于,它提供有很多已经写好的,可以现成用的对象 16. 循环方式笔记: 1)range(0, 8, 2) #(上限,下限,步长) 可以实现对元素或者下标的 ...
- Python 学习笔记7 条件语句 If
Python中条件语句if 是通过一条或者多条的执行语句的结果,来判断是否执行其包含的代码块. 通常会配合else.elif一起使用,达到根据条件进行多个代码块的执行操作. 简单的if score = ...
- python学习笔记(二)---for循环与操作列表
内容概要 for循环 range(start,end,step)函数 生成随机数列表 list()函数 将range()的结果整合到某个列表 列表的操作 切片(start: end :step) 元组 ...
- Python学习笔记 第二课 循环
>>> movies=["The Holy Grail", 1975, "The Life of Brian", 1979, "Th ...
- python学习笔记2_二元运算符和比较运算
一.二元操作符 a+b : a加b a-b : a减b a*b : a乘b a/b : a除以b a//b:a整除以b,表示的是返回a除以b的结果的整数部分,而不是证明了a能被b整除.要证明a能被 ...
- Python学习笔记2_一些小程序
counts = [98,12,3,4,1,4,9,3821] minNum = min(counts) #print minNum minNum_index = counts.index(minNu ...
随机推荐
- WPF 通过透明度遮罩和变换制作倒影效果
倒影效果 代码 <Canvas xmlns="http://schemas.microsoft.com/client/2007" xmlns:x="http:/ ...
- 微擎where范围查询in
where sale_time in($todayStart,$todayEnd)
- Python用Django写restful api接口
用Python如何写一个接口呢,首先得要有数据,可以用我们在网站上爬的数据,在上一篇文章中写了如何用Python爬虫,有兴趣的可以看看: https://www.cnblogs.com/sixrain ...
- 学python走过的坑一 类的实例化
运行结果:line 21, in <module> s=speaker('ken',10,'aaa')TypeError: __init__() missing 1 required p ...
- 6. VIM 系列 - 全局搜索(ctrlsf.vim)
目录 全局搜索利器 ag.vim 更强大的全局搜索利器 ctrlsf.vim 全局搜索利器 ag.vim 终端上安装ag: sudo apt install silversearcher-ag vim ...
- 如何接入银联“快速接入”产品API
引言:使用银联开放平台的用户或多或少都接触过产品API吧,那么大家对于“快速接入”产品API是否还会存在一些疑问呢?因为我之前对“快速接入”模糊不清,所以整理的一份详细的资料,里面梳理了“快速接入”产 ...
- 跟我一起学opencv 第三课之图像在opencv中的表示-Mat对象
1.下面第一章图是一位美女图像,和其他数据一样图像在计算机中也是以二进制存储,下面第二张图 2.在摄像头眼里一幅图像就是一个矩阵或者说是二维数组,数组元素是像素值 3.opencv中以Mat对象表示图 ...
- NuGet 手动清除缓存不起作用
问题 有时更新了一些内网的程序库/包,但仅仅是一些小的更改,不想增加版本号再推送到内网服务器.手动删除了 .nuget 文件夹下的相关包文件,但是使用 Visual Studio 重新构建的时候,其使 ...
- GlideDemo【Glide3.7.0版本的简单使用以及圆角功能】
版权声明:本文为HaiyuKing原创文章,转载请注明出处! 前言 本Demo主要记录Glide3.7.0版本的简单运用和实现圆角方案. 效果图 代码分析 Glide的centerCrop()和fit ...
- pycharm安装svn插件
弄了svn的服务端和客户端,为了方便我pycharm的使用,我又在pycharm里进行了配置,要用到subversion 下载 https://sourceforge.net/projects/win ...