【学习笔记】Python编程:从入门到实践<第三章>
用这一系列文章来记录自学《python编程:从入门到实践》一书中的所有代码,包括书中代码和课后练习。
第3章 变量和简单数据类型
3.1 列表是什么
- 给列表指定一个复数的名称
#3.1 bicycles.py
bicycles = ['trek', 'cannondale', 'redline', 'specialized']
print(bicycles)
#3.1.1 访问列表元素
print(bicycles[0]) #只返回列表中的元素,不包括方括号和引号
print(bicycles[0].title())
#3.1.2 索引从0开始
print(bicycles[1])
print(bicycles[3])
print(bicycles[-1])
#3.1.3 使用列表中的各个值
bicycles = ['trek', 'cannondale', 'redline', 'specialized']
message = "My first bicycle was a " + bicycles[0].title() + "."
print(message)
练习
#3-1 姓名
names = ['Buranny', 'Ann', 'Candy', 'David']
print(names[0], names[1], names[2], names[-1])
#3-2 问候语
message = ", how are you?"
print(names[0] + message)
print(names[1] + message)
print(names[2] + message)
print(names[3] + message)
#3-3 自己的列表
ways = ['bike', 'motorcycle', 'bus', 'subway']
message = "I would like to go to school by "
print(message + ways[0])
print(message + ways[1])
print(message + ways[2])
print(message + ways[3])
3.2 修改、添加和删除元素
- 为控制用户,可首先创建一个空列表,用于存储用户将要输入的值,然后将用户提供的每个新值附加到列表中。
3.2.1 motorcycles.py
#3.2.1 motorcycles.py
motorcycles = ['honda', 'yamaha', 'suzuki']
print(motorcycles)
motorcycles[0] = 'ducati'
print(motorcycles)
3.2.2 添加元素
#3.2.2 添加元素
#1.末尾添加元素:append()
motorcycles = ['honda', 'yamaha', 'suzuki']
print(motorcycles)
motorcycles.append("ducati") #这里用“”或者‘’都没有影响,因为在列表里就是单引号
print(motorcycles)
motorcycles = []
motorcycles.append('honda')
motorcycles.append('yamaha')
motorcycles.append('suzuki')
print(motorcycles)
#2.列表中插入元素:insert()
motorcycles = ['honda', 'yamaha', 'suzuki']
motorcycles.insert(0, 'ducati')
print(motorcycles)
3.2.3 从列表中删除元素
- del是删除语句,del放在开头;pop()是用在列表名称之后的命令
- 每当使用pop() 时,被弹出的元素就不再在列表中了
- 如果你要从列表中删除一个元素,且不再以任何方式使用它,就使用del 语句;如果你要在删除元素后还能继续使用它,就使用方法pop()
- 使用remove() 从列表中删除元素时,也可接着使用它的值
#3.2.3 从列表中删除元素
#1.del语句删除:知道索引
motorcycles = ['honda', 'yamaha', 'suzuki']
print(motorcycles)
del motorcycles[0]
print(motorcycles)
motorcycles = ['honda', 'yamaha', 'suzuki']
print(motorcycles)
del motorcycles[1]
print(motorcycles)
#2.pop()删除:删除末尾元素,类似于弹出栈顶元素
motorcycles = ['honda', 'yamaha', 'suzuki']
print(motorcycles)
popped_motorcycles = motorcycles.pop()
print(motorcycles)
print(popped_motorcycles)
motorcycles = ['honda', 'yamaha', 'suzuki']
last_owned = motorcycles.pop()
print("The last motorcycle I owned was a " + last_owned.title() + '.')
#3.用pop()弹出列表中任何位置的元素
motorcycles = ['honda', 'yamaha', 'suzuki']
first_owned = motorcycles.pop(0)
print('The first motorcycles I owned was a ' + first_owned.title() + '.')
#4.根据值删除元素:remove()
motorcycles = ['honda', 'yamaha', 'suzuki', 'ducati']
print(motorcycles)
motorcycles.remove("ducati")
print(motorcycles)
motorcycles = ['honda', 'yamaha', 'suzuki', 'ducati']
print(motorcycles)
too_expensive = 'ducati'
motorcycles.remove(too_expensive)
print(motorcycles)
print('\nA ' + too_expensive.title() + ' is too expensive for me.')
练习
#3-4 嘉宾名单
names = ['Andy', 'Buranny', 'Candy']
message = ', would you like to have dinner with me?'
print(names[0] + message)
print(names[1] + message)
print(names[2] + message)
#3-5 另一位嘉宾
print(names[0] + " can't go with me.")
names.pop(0)
names.insert(0, 'David')
print(names[0] + message)
print(names[1] + message)
print(names[2] + message)
#3-6 更大的餐桌
print("I have found a bigger table!")
names.insert(0, 'Ann')
names.insert(2, 'John')
names.append('Judy')
print(names[0] + message)
print(names[1] + message)
print(names[2] + message)
print(names[3] + message)
print(names[4] + message)
print(names[5] + message)
#3-7 缩减名单
print("I can just invite two guests.")
print("Dear " + names.pop() + ", I'm sorry I can't invete you to my home.")
print("Dear " + names.pop() + ", I'm sorry I can't invete you to my home.")
print("Dear " + names.pop() + ", I'm sorry I can't invete you to my home.")
print("Dear " + names.pop() + ", I'm sorry I can't invete you to my home.")
print(names[0] + ", you are still in my lists.")
print(names[1] + ", you are still in my lists.")
del names[0]
del names[0]
print(names)
3.3 组织列表(排序)
- 方法sort() 永久性地修改了列表元素的排列顺序(按字母排序)
- 方法sort(reverse=True)永久逆序
3.3.1 sort()永久排序:cars.py
#3.3.1 sort()永久排序:cars.py
cars = ['bmw', 'audi', 'toyota', 'subaru']
cars.sort()
print(cars)
cars.sort(reverse=True)
print(cars)
3.3.2 函数sorted()对列表临时排序
- [::-1]也是临时逆序打印
#3.3.2 函数sorted()对列表临时排序
cars = ['bmw', 'audi', 'toyota', 'subaru']
print("Here is the original list:")
print(cars)
print("\nHere is teh sorted list:")
print(sorted(cars))
print("\nHere is the original list again:")
print(cars)
3.3.3 reverse()倒着打印列表
- reverse()永久性地逆序打印列表,只是按照列表的逆序,而非字母表逆序
- 但是可以随时恢复,再使用一次reverse()即可
#3.3.3 reverse()倒着打印列表
cars = ['bmw', 'audi', 'toyota', 'subaru']
print(cars)
cars.reverse()
print(cars)
3.3.4 len()确定列表长度
cars = ['bmw', 'audi', 'toyota', 'subaru']
len(cars)
练习
#3-8 放眼世界
places = ['london', 'paris', 'tokyo', 'hawaii', 'newyork']
print(places)
print(sorted(places))
print(places)
print(places[::-1]) #[::-1]也是临时逆序打印
print(places)
places.reverse()
print(places)
places.reverse()
print(places)
places.sort()
print(places)
places.sort(reverse=True)
print(places)
#3-9 晚餐嘉宾
names = ['Andy', 'Buranny', 'Candy']
print(len(names))