think python 2ed_Think Python 2ed 笔记(二)

第六章  有返回值的函数

1. 返回值:没有返回值的函数返回None

2. 增量式开发:增量式开发的目标,是通过每次只增加和测试少量代码,来避免长时间的调试。该函数的最终版不会在运行时显示任何东西,仅仅返回一个值。 我们之前写的print语句在调试时是很有用的,不过在函数能够正确运行之后,你就该删了它们。 我们称这样的代码为脚手架代码(scaffolding), 因为它对程序的构建很有用,但不是最终产品的一部分。

当你刚开始的时候,最好每次只加入一两行代码。 随着经验见长,你会发现自己可以编写、调试更大的代码块了。 无论哪种方式,增量式开发都能节省你大量的调试时间。这种开发方式的关键是:

从一个能运行的程序开始,并且每次只增加少量改动。无论你何时遇到错误,都能够清楚定位错误的源头。

用临时变量存储中间值,这样你就能显示并检查它们。

一旦程序正确运行,你要删除一些脚手架代码,或者将多条语句组成复合表达式,但是前提是不会影响程序的可读性。

3. 组合:从一个函数调用另一个函数

4. 布尔函数:布尔函数通常被用于条件语句中

5. 监护人、调试

第七章 迭代

1. while语句:在计算机程序中,重复也被称为**迭代(iteration)**

2. break:有些时候循环执行到一半你才知道循环该结束了。这种情况下,你可以使用break语句 来跳出循环。while循环的这种写法很常见,因为你可以在循环的任何地方判断条件 (而不只是在循环开始),而且你可以积极地表达终止条件(“当出现这个情况是终止”), 而不是消极地表示(“继续运行直到出现这个情况”)。

第八章 字符串

1. 字符串是一个序列:由字符组成的序列

2. len

3. 使用for循环遍历

4. 字符串切片

5. 字符串方法:.upper    .find

6. in 运算符:是一个布尔运算符

第十章 列表

1. 列表是一个序列:[  ],一个列表在另一个列表中,称为**嵌套(nested)列表**,即[…[..]..],嵌套的列表本身还是被看作一个单个元素

2. 列表是可变的:list[0]=333可以索引赋值

3. 遍历列表:for…in list

4. 列表操作:+运算拼接多个列表;*运算以给定次数重复一个列表

5. 列表切片:list[1:2]   list[:]

6. 列表方法:list.append()将元素添加到结尾;list1.extend(list2)将一个列表添加到目标列表中;list.sort()对列表中元素进行排列

7. 映射、筛选和归并:sum(list)求和(称为“归并”)

8. 剔除元素:list.pop(1)将list中索引为1的值从list中剔除,返回值是该剔除值;del list[1:2]直接删除;list.remove(‘b’)在不知道’b’的索引的情况下,将该值从list中剔除。

9. 列表和字符串:list = list(string),list()函数将字符串分割成单独的字符存入列表中;string.split(分隔符)按照分隔符将string变成列表;’分隔符’.join(list)用分隔符将list组成字符串

10. 对象和值、别名、列表参数(!!注意理解!!)

粗心地使用列表(以及其他可变对象)会导致长时间的调试。 下面列举一些常见的陷阱以及避免它们的方法:

大多数的列表方法会对参数进行修改,然后返回None。这和字符串方法相反,后者保留原始的字符串并返回一个新的字符串。

如果你习惯这样写字符串代码:

word=word.strip()

那么你很可能会写出下面的列表代码:

t=t.sort()# 错误!

因为sort返回None,所以你的下一个对t执行的操作很可能会失败。

在使用list方法和操作符之前,你应该仔细阅读文档,然后在交互模式下测试。

选择一种写法,坚持下去。

列表的一个问题就是有太多方法可以做同样的事情。 例如,要删除列表中的一个元素,你可以使用pop、remove、del甚至是切片赋值。

要添加一个元素,你可以使用append方法或者 + 运算符。假设t是一个列表,x是一个列表元素,以下这些写法都是正确的:

t.append(x)t=t+[x]t+=[x]

而这些是错误的:

t.append([x])# 错误!t=t.append(x)# 错误!t+[x]# 错误!t=t+x# 错误!

在交互模式下尝试每一个例子,保证你明白它们做了什么。 注意只有最后一个会导致运行时错误;其他的都是合乎规范的的,但结果却是错的。

通过创建拷贝来避免别名.

如果你要使用类似sort这样的方法来修改参数, 但同时有要保留原列表,你可以创建一个拷贝。

>>>t=[3,1,2]>>>t2=t[:]>>>t2.sort()>>>t[3, 1, 2]>>>t2[1, 2, 3]

在这个例子中,你还可以使用内置函数sorted,它将返回一个新的已排序的列表,原列表将保持不变。

>>>t2=sorted(t)>>>t[3, 1, 2]>>>t2[1, 2, 3]

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/504837.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

dumpbin发现没有入口函数_JavaScript基础之入口函数-2020版

JavaScript基础之入口函数-2020版1.入口函数window.onload function(){ 内部放js}这个函数的意思就是说,当我们页面加载完毕之后(就是说等页面的结构 样式 节点等加载完毕),采取执行函数体里面的js部分。也就是说可以使用此方法,就不用考…

java相等_Java 判断相等

1.除 float 和 double 外的原始数据类型 : 使用 long a (long) 1234567890;long b (long) 1234567890;if (a b) {System.out.println("基本数据类型相等");}2.包装类使用 equals 或者转换为基本数据类型再用 Long a (long) 1234567890;Long b (long) 1234567890;i…

农委系统先进集体推荐报告_来自司法行政的他们,荣获上海档案系统表彰!

为表彰先进、弘扬正气,激发全市各级档案部门和广大档案工作者的积极性和创造性,进一步推进上海档案事业创新发展,经各地区、各部门、各单位民主推荐,市人力资源社会保障局和市档案局审核同意,决定授予50家集体“上海市…

java如何获得wlan mac_Android M 如何获取 Wifi MAC地址

今天在撸代码时发现,之前能获取mac地址的方法在nexus 6上返回了“02:00:00:00:00:00”,进入设置查看mac地址,结果不相同,肯定有问题,于是就开始上网查资料一探究竟。原先获取mac地址的代码段:6.0之前获取ma…

python docx官网_【记录】尝试用DocxyGen为Python代码生成文档

【背景】之前折腾技术的时候,或多或少,知道一个东西:DocxyGen是用于从代码生成文档的。最近,又从:->该地址无效,但是自己手动输入地址,而找到:看到页面右下角,就显示了…

我的世界java多大内存_我的世界电脑版内存多大

下载方法如下:1,百度搜索 我的世界电脑版,即可找到下载。2,直接点击普通下载,即可下载。3,我的世界电脑版硬件要求如下:最低配置:CPU:1.5G GHz多和处理器/2.0GHz单核处理…

天正双击墙体不能编辑_今日设计分享:CAD常用快捷键、Ps快捷键大全、天正快捷键总结!...

▶今天记忆一个技巧,成就明天一个大师!▶同行小可爱们,加油吧!CAD最常用快捷键L直线;PL多段线;U回车Ctrlz后退;D修改,调整;REC矩形;C圆;TR修剪&am…

java获取spring注解的实体_Spring 注解实体类中非数据库字段属性

今天要给一个实体类添加一个List集合属性!private List childList new ArrayList();写完后get/set方法一写,启动就报错:org.hibernate.MappingException: Could not determine type for: java.util.List, at table: T_REVERTS, for columns:…

odoo tree视图过滤数据_数据存储结构 LSM Tree PK B TREE (从底层了解数据库设计)...

随着使用数据库的深度和理解能力的提升,有一个问题硬件的提升,与数据量的变化是否对数据库底层的架构有冲击。 我们公认的BTREE BTREE 是否还能面对现在的硬件的变化。 BTREE 到底是为那种硬件逻辑来服务的,这点是需要搞清楚的在MYSQL 中使用的BTREE的改…

java s结尾的工具类_FilenameUtils工具类

commons-iocommons-io2.4import java.util.ArrayList;import java.util.List;import org.apache.commons.io.FilenameUtils;import org.apache.commons.io.IOCase;/*** org.apache.commons.io.FilenameUtils工具类笔记* author*/public class FilenameUtilsTest {public static…

python类继承返回值_python继承threading.Thread实现有返回值的子类实例

继承与threading.thread实现有返回值的子类mythread,废话不多说,大家直接看代码import threadingclass mythread(threading.thread):def __init__(self,func,args()):super(mythread,self).__init__()self.func funcself.args argsdef run(self):self.…

python继承super函数_Python中的super函数如何实现继承?

本篇文章给大家带来的内容是关于Python 中的super函数如何实现继承?有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。Py 2.x 和 Py 3.x 中有一个很大的区别就是类,无论是类的定义还是类的继承。Py 3.x 中类的继承可以直接使用…

java逸出_Java并发编程 - 对象的共享

编写正确的并发程序,关键问题在于:在访问共享的可变状态时需要进行正确的管理。同步代码块和同步方法可以确保以原子的方式执行操作,同步还有另一个重要的方面:内存可见性。可见性为了确保多个线程之间对内存写入操作的可见性&…

mgr未同步 mysql_mysql8.0 搭建mgr踩坑记录

启动总是报错:2020-08-21T04:52:36.332502Z 10 [System] [MY-010597] [Repl] CHANGE MASTER TO FOR CHANNEL group_replication_applier executed. Previous state master_host, master_port 3306, master_log_file, master_log_pos 4, master_bind. New state mast…

java rpm包安装_rpm包安装java jar开机自启

1.下载jdk2.安装jdk;rpm -ivh jdk-8u201-linux-x64.rpm3.检查安装:java -version输出Java版本,则不用第4步和第5步4.配置jdk路径打开/etc/profile增加以下内容:export JAVA_HOME/usr/java/jdk1.8.0_201export JAVA_BIN/usr/java/j…

idea 保存设置 新建项目_配置、创建IntelliJ IDEA Spring MVC 项目

前言步骤,下载安装 IntelliJ IDEA及Tomcat 客户端、服务端下载安装,这些都配置完之后准备创建项目点击下一步修改完项目名称其他的名称也跟项目名称一样,我就改了保存位置其他都跟项目名称一样的名字,点击Finish后会下载本框架需要…

java+中的final关键字有哪些用法_Java中的Final关键字用法汇总及简单示例

可能使用到final的情况有3种:数据、方法和类。一、final数据对于基本类型,final使数值恒定不变;而对于对象引用,final使引用恒定不变。一旦引用被初始化指向一个对象,就无法把它改为指向另一个对象。然而,对…

mr图像翻转的原因_MRI图像常见问题及对策

1MRI图像常见伪影及对策伪影是指MR图像中与实际解剖结构不相符的信号,可以表现为图像变形、重叠、缺失、模糊等。每一幅MRI图像都存在不同程度的伪影。MRI检查中伪影主要造成三个方面的问题:(1)使图像质量下降,甚至无法分析;(2)掩…

java icon动态变换,以编程方式自动更改ImageIcon [Java]

I am making a simple game right now. When a JButton is clicked, the ImageIcon of a JLabel is supposed to change. How can I accomplish this?解决方案Simple, just quickly run setIcon() on the JLabel via the action listener of the button.An example:if ("…

shell打开wifi命令_MacWiFi:一款管理Mac系统WIFI的命令行工具(包含交互式Shell)...

今天给大家介绍的是一款名叫mac-wifi的命令行工具,它可以管理macOS系统的无线网络,并且还提供了交互式Shell。mac-wifimac-wifi脚本可以查询或管理macOS平台上的WiFi配置以及网络环境信息,脚本代码在最小化的类中实现了针对macOS环境的设计逻…