《Python编程:从入门到实践》第一轮学习笔记(2-4章)

文章目录

第二章 变量和简单数据类型

2.1 运行hello_world.py时发生的情况

编写程序时,编辑器会以各种方式突出程序的不同部分。这种功能称为语法突出 ,在你刚开始编写程序时很有帮助。

2.2 变量

2.2.1 变量的命名和使用

#规则
1.变量名只能包含字母、数字和下划线。变量名可以字母或下划线打头,但不能以数字打头,
2.变量名不能包含空格,但可使用下划线来分隔其中的单词。
3.不要将Python关键字和函数名用作变量名,
4.变量名应既简短又具有描述性。
5.慎用小写字母l和大写字母O,因为它们可能被人错看成数字10

2.2.2 使用变量时避免命名错误

名称错误通常意味着两种情况:要么是使用变量前忘记了给它赋值,要么是输入 变量名时拼写不正确。

2.3 字符串

字符串 就是一系列字符。在Python中,用引号括起的都是字符串,其中的引号可以是单引号,也可以是双引号,

2.3.1 使用方法修改字符串的大小写

方法是Python可对数据执行的操作。每个方法后面都跟着一对括号,这是因为方法通常需要额外的信息来完成 其工作。这种信息是在括号内提供的。

title()以首字母大写的方式显示每个单词,即将每个单词的首字母都改为大写;
upper()每个字母都大写;
lower()每个字母都小写。

2.3.2 合并(拼接)字符串

Python使用加号(+)来合并字符串。这种合并字符串的方法称为拼接。通过拼接,可使用存储在变量中的信息来创建完整的消息。你可以使用拼接来创建消息,再把整条消息都存储在一个变量中。

2.3.3 使用制表符或换行符来添加空白

在编程中,空白 泛指任何非打印字符,如空格、制表符和换行符。你可使用空白来组织输出,以使其更易读。

#要在字符串中添加制表符,可使用字符组合\t
print("python")--->print("\tpython")
#要在字符串中添加换行符,可使用字符组合\n 
print("Languages:\nPython\nC\nJavaScript")
#在同一个字符串中同时包含制表符和换行符,可使用字符串"\n\t"
print("Languages:\n\tPython\n\tC\n\tJavaScript")

2.3.4 删除空白

1.要确保字符串末尾没有空白,可使用方法rstrip()
2.剔除字符串开头的空白,或同时剔除字符串两端的空白。可分别使用方法lstrip()和strip()
#要永久删除字符串中的空白,必须将删除操作的结果存回到变量中

2.3.5 使用字符串时避免语法错误

Python将第一个单引号和撇号之间的内容视为一个字符串,进而将余下的文本视为Python代码,从而引发错误。


2.4 数字

在编程中,经常使用数字来记录游戏得分、表示可视化数据、存储Web应用信息等。Python根据数字的用法以不同的方式处理它们。

2.4.1 整数

在终端会话中,Python直接返回运算结果。

在Python中,可对整数执行加(+ )减(- )乘(* )除(/ )运算。Python使用两个乘号表示乘方运算。Python还支持运算次序,可使用括号来修改运算次序。

2.4.2 浮点数

Python将带小数点的数字都称为浮点数 。

需要注意的是,结果包含的小数位数可能是不确定的

2.4.3 使用函数str()避免类型错误

TypeError:

2.5 注释

2.5.1 如何编写注释

在Python中,注释用井号(# )标识。井号后面的内容都会被Python解释器忽略。

2.5.2 该编写什么样的注释


2.6 Python之禅

>>>import this
Beautiful is better than ugly.
Explicit is better than implicit.
Simple is better than complex.
Complex is better than complicated.
Flat is better than nested.
Sparse is better than dense.
Readability counts.
Special cases aren't special enough to break the rules.
Although practicality beats purity.
Errors should never pass silently.
Unless explicitly silenced.
In the face of ambiguity, refuse the temptation to guess.
There should be one-- and preferably only one --obvious way to do it.
Although that way may not be obvious at first unless you're Dutch.
Now is better than never.
Although never is often better than *right* now.
If the implementation is hard to explain, it's a bad idea.
If the implementation is easy to explain, it may be a good idea.
Namespaces are one honking great idea -- let's do more of those!

第三章 列表简介

3.1 列表是什么

列表由一系列按特定顺序排列的元素组成。你可以创建包含字母表中所有字母、数字0~9或所有家庭成员姓名的列表;也可以将任何东西加入列表中,其中的元素之间可以没有任何关系。

鉴于列表通常包含多个元素,给列表指定一个表示复数的名称(如letters 、digits 或names )是个不错的主意。在Python中,用方括号([])来表示列表,并用逗号来分隔其中的元素。

3.1.1 访问列表元素

列表是有序集合,因此要访问列表的任何元素,只需将该元素的位置或索引告诉Python即可。要访问列表元素,可指出列表的名称,再指出元素的索引,并将其放在方括号内。

当你请求获取列表元素时,Python只返回该元素,而不包括方括号和引号。

bicycles = ['trek', 'cannondale', 'redline', 'specialized'] print(bicycles[0])

trek

3.1.2 索引从0而不是1开始

在Python中,第一个列表元素的索引为0,而不是1。

Python为访问最后一个列表元素提供了一种特殊语法。通过将索引指定为-1, 可让Python返回最后一个列表元素。这种约定也适用于其他负数索引,例如,索引-2 返回倒数第 二个列表元素,索引-3 返回倒数第三个列表元素,以此类推。

3.1.3 使用列表中的每个值

可像使用其他变量一样使用列表中的各个值。

3.2 修改、添加和删除元素

3.2.1 修改列表元素

要修改列表元素,可指定列表名和要修改的元素的索引,再指定该元素的新值。

3.2.2 在列表中添加元素

1.在列表末尾添加元素    ---列表名.append('值')
2.在列表中插入元素    --- 列表名.insert(索引,'值')

3.2.3 从列表中删除元素

1.使用del语句删除元素。 --- del 列表名[索引]
2.使用方法pop()可删除列表末尾的元素,并将其存储在新变量中以备使用。---列表名.pop()
3.弹出列表中任意位置处的元素。--- 列表名.pop(索引)
#注1:每当你使用pop() 时,被弹出的元素就不再在列表中了。
#注2:如果你要从列表中删除一个元素,且不再以任何方式使用它,就使用del 语句;如果你要在删除元素后还能继续使用它,就使用方法pop()。

4.根据值删除元素。列表中要删除的值所在的位置未知,只知道值的内容。使用remove() 从列表中删除元素时,也可接着使用它的值。--- 列表名.remove('值')
#注3:remove()只删除第一个指定的值。如果要删除的值可能在列表中出现多次,就需要使用循环来判断是否删除了所有这样的值。

3.3 组织列表——排序

3.3.1 使用方法sort()对列表进行***永久性***排序

方法sort() 可以永久性地修改列表元素的排列顺序,使得列表按字母顺序排序。sort(reverse=True)可以永久性地让列表按与字母相反的顺序排序。这里的永久性是指改变了原来列表中元素的顺序且无法还原。

3.3.2 使用函数sorted()对列表进行***临时***排序

方法sorted()可以按照字母顺序修改列表元素的排列,同时也不影响它们在列表中的原始排列顺序。这里的临时是指改变元素顺序后,原列表中元素排列的顺序不受影响。

3.3.3 倒着打印列表

要反转列表元素的排列顺序,可使用方法reverse() 。

3.3.4 确定列表的长度

使用函数len() 可快速获悉列表的长度。Python计算列表元素数时从1开始,因此确定列表长度时,你应该不会遇到差一错误。

3.4 使用列表时避免索引错误

索引错误意味着Python无法理解你指定的索引。程序发生索引错误时,请尝试将你指定的索引减1,然后再次运行程序,看看结果是否正确。

每当需要访问最后一个列表元素时,都可使用索引-1 。仅当列表为空时,这种访问最后一个元素的方式才会导致错误。

发生索引错误却找不到解决办法时,请尝试将列表或其长度打印出来。列表可能与你以为的截然不同,在程序对其进行了动态处理时尤其如此。通过查看列表 或其包含的元素数,可帮助你找出这种逻辑错误。

第四章 操作列表

4.1 遍历整个列表

需要对列表中的每个元素都执行相同的操作时,可使用Python中的for循环。

4.1.1 深入地研究循环

使用循环时请牢记,对列表中的每个元素,都将执行循环指定的步骤,而不管列表包含多少个元素。

编写for 循环时,对于用于存储列表中每个值的临时变量,可指定任何名称。选择描述单个列表元素的有意义的名称大有帮助。这些命名约定有助于你明白for 循环中将对每个元素执行的操作。

使用单数和复数式名称,可帮助你判断代码段处理的是单个列表元素还是整个列表。

4.1.2 在for循环中执行更多的操作

在for 循环中,可对每个元素执行任何操作。

在for循环中,想包含多少行代码都可以。在代码行for … in … 后面,每个缩进的代码行都是循环的一部分,且将针对列表中的每个值都执行一次。因 此,可对列表中的每个值执行任意次数的操作。

4.1.3 在for循环结束后执行一些操作

在for 循环后面,没有缩进的代码都只执行一次,而不会重复执行。

4.2 避免缩进错误

Python根据缩进来判断代码行与前一个代码行的关系。Python通过使用缩进让代码更易读;简单地说,它要求你使用缩进让代码整洁而结构清晰。

4.2.1 忘记缩进

对于位于for 语句后面且属于循环组成部分的代码行,一定要缩进。通常,将紧跟在for 语句后面的代码行缩进,可消除这种缩进错误。

4.2.2 忘记缩进额外的代码行

4.2.3 不必要的缩进

4.2.4 循环后不必要的缩进

4.2.5 遗漏了冒号

4.3 创建数值列表

列表非常适合用于存储数字集合,而Python提供了很多工具,可帮助你高效地处理数字列表。

4.3.1 使用函数range()

Python函数range() 让你能够轻松地生成一系列的数字。使用range() 时,如果输出不符合预期,请尝试将指定的值加1或减1。

4.3.2 使用range()创建数字列表

要创建数字列表,可使用函数list() 将range() 的结果直接转换为列表。如果将range() 作为list() 的参数,输出将为一个数字列表。

使用函数range() 时,还可指定步长,如range(2,11,2)表示打印2-11之间的偶数。

4.3.3 对数字列表执行简单的统计计算

几个专门用于处理数字列表的Python函数:min() max() sum()

4.3.4 列表解析

列表解析 将for 循环和创建新元素的代码合并成一行,并自动附加新元素。

要使用这种语法,首先指定一个描述性的列表名;然后,指定一个左方括号,并定义一个表达式,用于生成你要存储到列表中的值。接下来,编写一个for循环,用于给表达式提供值,再加上右方括号。请注意,这里的for 语句末尾没有冒号。

squares = [value**2 for value in range(1,11)] 
print(squares)

4.4 使用列表的一部分

处理列表的部分元素称为切片。

4.4.1 切片

要创建切片,可指定要使用的第一个元素和最后一个元素的索引。

如果你没有指定第一个索引,Python将自动从列表开头开始。要让切片终止于列表末尾,也可使用类似的语法。

无论列表多长,这种语法都能够让你输出从特定位置到列表末尾的所有元素。本书前面说过,负数索引返回离列表末尾相应距离的元素,因此你可以输出列表末尾的任何切片。

4.4.2 遍历切片

如果要遍历列表的部分元素,可在for 循环中使用切片。

4.4.3 复制列表

要复制列表,可创建一个包含整个列表的切片,方法是同时省略起始索引和终止索引([:] )。这让Python创建一个始于第一个元素,终止于最后一个元素的切片,即复制整个列表。

friend_foods = my_foods[:]
friend_foods = my_foods
上下两行代码的区别在于前者复制当前列表且复制后的列表相互独立,后者是将两个列表关联起来形成一个共同的列表。

4.5 元组

列表非常适合用于存储在程序运行期间可能变化的数据集,是可以修改的。Python将不能修改的值称为不可变的,而不可变的列表被称为元组。

4.5.1 定义元组

元组看起来犹如列表,但使用圆括号而不是方括号来标识。定义元组后,就可以使用索引来访问其元素,就像访问列表元素一样。

由于试图修改元组的操作是被禁止的,因此Python指出不能给元组的元素赋值。

4.5.2 遍历元组中的所有值

像列表一样,也可以使用for 循环来遍历元组中的所有值,返回元组中所有的元素。

4.5.3 修改元组变量

虽然不能修改元组的元素,但可以给存储元组的变量赋值。

因此,如果要修改前述矩形的尺寸,可重新定义整个元组。

4.6 设置代码格式

4.6.1 格式设置指南

Python改进提案 (Python Enhancement Proposal,PEP)

4.6.2 缩进

PEP 8建议每级缩进都使用四个空格,这既可提高可读性,又留下了足够的多级缩进空间。在字处理文档中,大家常常使用制表符而不是空格来缩进,混合使用制表符和空格会让Python解释器感到迷惑。

4.6.3 行长

建议每行不超过80字符,注释的行长不超过72字符。

4.6.4 空行

要将程序的不同部分分开,可使用空行。空行不会影响代码的运行,但会影响代码的可读性。Python解释器根据水平缩进情况来解读代码,但不关心垂直间距。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值