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 ...
随机推荐
- PostgreSQL数据库部署之 :PostgreSQL pgadmin4 the application server could not be contacted
遇到问题: 尝试了删除c:\Users\your_name\AppData\Roaming\pgAdmin 之内的删除所有文件和文件夹, 然后在C:\Program Files\PostgreSQL\ ...
- Json,Gson,Ajax基础知识
//json 是一种轻量级的文本格式,解析简单,他也是一键值来存,数据与数据的分割是以,来分割 //{} 看到大括号就是一个对象,[]代表集合 ,基本上所有数据的交互都是以json格式来进行传递的 / ...
- 音频处理EQ的基本概念
我们通常所说的人声,歌声以及乐声都是一个复合音,也就是由声音的基音和一系列的泛音所构成的.这些泛音都是基音频率的倍数,物理学中叫分音,电声学中叫谐波,音乐中则把它们称做泛音.可以说,泛音对音色的特性 ...
- 浅论各种调试接口(SWD、JTAG、Jlink、Ulink、STlink)的区别
JTAG协议 JTAG(Joint Test Action Group,联合测试行动小组)是一种国际标准测试协议(IEEE 1149.1兼容),主要用于芯片内部测试.现在多数的高级器件都支持JTAG协 ...
- C# 实现WebSocket通信
本实例可通过web网页端进行测试,下面直接上代码. 首先要在NuGet导入“Fleck”包,需 .NET Framework 4.5及以上. using System; using System.Co ...
- linux(centos)上安装mysql教程,为需要远程登录的用户赋予权限
最近把之前学生时代的win server换成了linux(centos)系统,因为win对于部署一些项目时候比较麻烦,直接入正题 1.准备阶段 我使用xshell工具管理服务器,相应下载和安装自行百度 ...
- docker~docker-compose的使用
回到目录 docker-compose是用来在Docker中定义和运行复杂应用的工具,比如在一个yum文件里定义多个容器,只用一行命令就可以让一切就绪并运行. 使用docker compose我们可以 ...
- 使用 ASP.NET Core MVC 创建 Web API(二)
使用 ASP.NET Core MVC 创建 Web API 使用 ASP.NET Core MVC 创建 Web API(一) 六.添加数据库上下文 数据库上下文是使用Entity Framewor ...
- JAVA WEB快速入门之从编写一个JSP WEB网站了解JSP WEB网站的基本结构、调试、部署
接上篇<JAVA WEB快速入门之环境搭建>,在完成了环境搭建后(JDK.Tomcat.IDE),现在是万事具备,就差写代码了,今天就来从编写一个JSP WEB网站了解JSP WEB网站的 ...
- 如何使用.net开发一款小而美的O2O移动应用? ——“家庭小秘”APP介绍及采访记录
“家庭小秘”是一款“互联网+生活服务”平台,为市民家庭提供优质家庭生活服务和企业后勤服务,包含了用户注册.购买预约.订单查询.充值付款.即时通讯等功能. 这款应用已上线至AppStore和安卓的应用商 ...