本篇内容从《Python编程 从入门到实践》整理而来,供个人学习和参考。
1.列表
- 列表是有序的集合,访问列表元素只需要给出该元素的位置或者索引就可以了。
- 列表的索引是从0开始的。索引可以为负,最后一个元素的索引为-1, 类似地,倒数第二个元素索引为-2.
- 在列表末尾添加元素,用append()方法;
在列表中间加入元素,用insert()方法,需要指定新元素的索引和值。 - 在列表末尾删除元素,用pop()方法;
删除列表中某个元素,用del()方法,需要知道该元素的索引位置。
del()方法删除后,被删除的元素无法再访问了;pop()方法删除的元素依然可以继续访问。
pop()可以删除列表中任何位置的元素,只需要在括号中指定要删除元素的索引即可,括号中没有索引时,表示删除列表末尾的元素。
知道要删除元素的值,用remove()方法。如果该值出现多次,remove()只删除第一个指定的值。 - 对列表永久性排序用sort()方法;
对列表临时排序用sorted()函数。 - 反转打印列表元素,用reverse()方法。
- 获取列表长度,用len()方法
- 使用列表时要注意索引的正确使用(从0开始),当需要访问列表最后一个元素的时候,用索引-1。
2. 列表的操作
- 用for()循环遍历列表。
- 命名时,使用单数和复数式名称,用来区别是单个列表元素还是整个列表。
- 创建数字列表用函数range(), range(1,5)打印出的是数字1,2,3,4.
range()函数从指定的第一个数字开始数,到达第二个数字后停止(不包括第二个数字)。 - 创建数字列表的一种方法是:先创建一个空列表,然后使用range()函数对一个数值范围进行遍历,计算后的值依次传入空列表,最后循环结束。
- 第二种方法是列表解析法。先指定一个列表名,然后指定一个方括号,定义一个表达式,编写一个for循环,用于给表达式提供值。
squares = [value ** 2 for value in range(1, 11)]
- 要对列表切片,可指定要使用的第一个元素的索引和最后一个元素索引加1。跟range()函数相同,在到达指定的第二个元素前面的元素后停止。 在编写web程序时,可以使用切片来分页显示信息。
print(squares[0: 3])
# 会输出列表的第0个、第1个和第2个元素,不会输出第3个元素
- 复制列表,可以创建一个包含整个列表的切片,同时省略起始索引和终止索引([:]). 如果不使用切片,直接将一个列表变量赋值给另一个变量名,那么两个变量指向的是同一个列表。
# 用切片可以全部复制
listb = lista[:]
# 直接赋值变量名不可以全部复制,两个变量指向的是同一个列表
listb = lista
- 列表的值是可变的,如果需要一系列不可变的元素,那么要用到元组,元组用圆括号定义。
tuple1 = (200, 50)
- 遍历元组的元素使用for循环,和列表类似。
- 元组元素不可以修改,如果要修改 ,只能重新定义整个元组。
3. if语句
- 相等运算符(==)返回的是布尔值,True或者False.
- Python中检查相等时,区分大小写。如果要检查的变量大小写不重要,只想检查变量的值,可以先转换成小写,再进行比较。
car = 'Audi'
car.lower() == 'audi'. # 返回True
如果要把小写单词转换成大写时,用title()方法。
3. 检查多个条件时,使用关键字and或or.
4. 检查特定的值是否包含在某个列表中,使用关键字in。
5. 检查特定的值是否不包含在某个列表中,使用关键字not in.
6. if-elif-else适用于只有一个条件满足的情况,只执行一个代码块;
如果想要执行多个代码块,需要使用一系列独立的if语句。
7. 在对列表进行操作前,一般会先用if语句检查列表是否为空。
4.字典
- 字典用放在{ }中的一系列键值对表示。
alien = {
'color': 'green', 'points': 5}
- 获取字典中与键相关联的值,需要指定字典名和括号中的键。
alien['color']
# 返回 green
- 要添加键值对,需要依次指定字典名、用方括号括起的键和相关联的值。
alien['x_position'] = 0
alien['y_position'] = 10
- 创建空字典,要用一对空的花括号定义一个字典,再分行添加各个键值对。
- 要删除键值对,使用del语句,删除的时候要指定字典名和要删除的键。
del语句删除的键值对永远消失了。
del alien['points']
- Python如果有较长的一行语句,需要进行拆分,在第一行的末尾加上拼接运算符(+), 拆分后的各行需要对齐和缩进一致。
- 遍历字典的所有键值对,用for循环来实现。
for my_key, my_value in mydict.items():
要编写用于遍历字典的for循环,可以声明两个变量,用于存储键值对中键和值,这两个变量的名称可以自己任意指定(如k和v)。
for 循环第二部分包含了字典名mydict和方法items(),返回一个键值对 列表。键值对的返回顺序和储存顺序不一定相同。
- 如果只需要遍历字典所有的键,不需要使用字典的值时,可以使用方法keys().方法keys()其实返回的是一个列表,这个列表中包含字典的所有键。
for name in favorite_language.keys():
- 普通遍历键值对,返回的顺序是不确定的,如果想要以特定的顺序返回键值对,可以在for循环中使用sorted()函数对键值对进行排序。
for name in sorted(favorite_language.keys()):
- 如果只需要遍历字典中所有的值,可以使用方法values().返回的是一个值列表。
- 遍历之后,获取的键或者值列表中,可能会有重复的元素,如果想要剔除重复项,可以使用集合set().
for language in set(favorite_languages.values()):
- 如果要将字典中的一个键关联到多个值时,可以在字典中嵌套一个列表。
5. 用户输入和while循环
- 如果需要获取用户输入的内容,可以使用函数input(),函数input()让程序暂停运行,等待用户输入一些文本,获取用户输入后,将其保存在一个变量中。input()获取的内容python将其解读为一个字符串。
msg = input("Please enter your name:")
print(msg)
这时,用户输入的名字存储在变量msg中,供后面程序的调用。
2. 要创建多行字符串,可以将前半部分保存在变量中,后半部分加在变量之后。(+=)
prompt = "If you tell us who you are, we can personalize the message you see."
prompt += "What is your first name?"
- 使用函数input()时,python将用户的输入解读为一个字符串,如果输入的是数字,并且要用于计算和比较,那么要在input()获取之后,用int()将它转换为数值。
- 求模运算符(%):它将两个数相除,返回余数。如果要判断某个数字是奇数还是偶数,可以让该数字对2求模,偶数返回0,奇数返回1.
- 在while循环中,通常需要设定一个标志flag来决定循环是否进行,flag初始值等于True,当需要循环结束时,flag等于False.
- break: 立即退出while循环,而不再运行循环中余下的代码。break语句可以用于控制程序的流程,控制哪些代码将被执行,哪些代码不执行。
- continue: 返回到循环开头,根据条件测试的结果判断循环是否继续执行。而不是跳出整个while循环。
- for循环可以用于遍历列表,但是for循环中不能修改列表,否则python无法追踪其中的元素。想要遍历列表的同时,对列表进行修改,可以使用while循环。
- 要删除列表中的某个特定值,可以使用remove()方法,但如果要删除的值多次出现,就需要使用while循环。
pets = ['dog', 'cat',