列表简介
num=['a','b','c','d']
print(num)
---------------------------------------------------------------
['a','b','c','d'] #打印结果
---------------------------------------------------------------
如果是遍历的话是:
for i in num:
print(i)
---------------------------------------------------------------
a
b
c
d #打印结果
---------------------------------------------------------------
列表访问元素
注意:列表的索引是从0开始的,不是1
print(num[0].title())
---------------------------------------------------------------
A #打印结果
---------------------------------------------------------------
print(num[-1].title()) #注意Python逆向是从-1开始的
---------------------------------------------------------------
D #打印结果
---------------------------------------------------------------
使用列表中的各个值
bicycles = ['trek', 'cannondale', 'redline', 'specialized']
message = "My first bicycle was a " + bicycles[0].title() + "."
print(message)
---------------------------------------------------------------
My first bicycle was a Trek. #打印结果
---------------------------------------------------------------
修改、添加和删除列表元素
修改列表元素:
motorcycles = ['honda', 'yamaha', 'suzuki']
print(motorcycles)
motorcycles[0] = 'ducati' #修改motorcycles索引为0的元素为'ducati'
print(motorcycles)
---------------------------------------------------------------
['honda', 'yamaha', 'suzuki']
['ducati', 'yamaha', 'suzuki'] #打印结果
---------------------------------------------------------------
在列表中添加元素
motorcycles = ['honda', 'yamaha', 'suzuki']
print(motorcycles)
motorcycles.append('ducati') #append()是内置函数,意思是在列表的最后添加一个元素
print(motorcycles)
---------------------------------------------------------------
['honda', 'yamaha', 'suzuki']
['honda', 'yamaha', 'suzuki', 'ducati'] #打印结果
---------------------------------------------------------------
也可以用append()添加元素
motorcycles = []
motorcycles.append('honda')
motorcycles.append('yamaha')
motorcycles.append('suzuki')
print(motorcycles)
---------------------------------------------------------------
['honda', 'yamaha', 'suzuki'] #打印结果
---------------------------------------------------------------
在列表中插入元素
motorcycles = ['honda', 'yamaha', 'suzuki']
motorcycles.insert(0, 'ducati') #insert()函数的意思是添加元素,其索引为0
print(motorcycles)
从列表中删除元素
motorcycles = ['honda', 'yamaha', 'suzuki']
print(motorcycles)
del motorcycles[0] #删除索引为0的元素
print(motorcycles)
---------------------------------------------------------------
['honda', 'yamaha', 'suzuki']
['honda', 'suzuki'] #打印结果
---------------------------------------------------------------
使用方法pop()删除元素
motorcycles = ['honda', 'yamaha', 'suzuki']
print(motorcycles)
popped_motorcycle = motorcycles.pop() #将列表最后一个元素弹出,然后赋值给新的变量,这也叫列表元素
print(motorcycles)
print(popped_motorcycle)
---------------------------------------------------------------
['honda', 'yamaha', 'suzuki']
['honda', 'yamaha']
suzuki #打印结果
---------------------------------------------------------------
弹出列表中任何位置处的元素
motorcycles = ['honda', 'yamaha', 'suzuki']
first_owned = motorcycles.pop(0)
print('The first motorcycle I owned was a ' + first_owned.title() + '.')
---------------------------------------------------------------
The first motorcycle I owned was a Honda. #打印结果
---------------------------------------------------------------
根据值删除元素
motorcycles = ['honda', 'yamaha', 'suzuki', 'ducati']
print(motorcycles)
motorcycles.remove('ducati')
print(motorcycles)
---------------------------------------------------------------
['honda', 'yamaha', 'suzuki', 'ducati']
['honda', 'yamaha', 'suzuki'] #打印结果
---------------------------------------------------------------
使用方法 sort()对列表进行永久性排序
cars = ['bmw', 'audi', 'toyota', 'subaru']
cars.sort() #reverse=True 逆序打印列表
print(cars)
---------------------------------------------------------------
['audi', 'bmw', 'subaru', 'toyota'] #打印结果
---------------------------------------------------------------
使用函数 sorted()对列表进行临时排序
cars = ['bmw', 'audi', 'toyota', 'subaru']
print("Here is the original list:")
print(cars)
print("\nHere is the sorted list:")
print(sorted(cars)) # reverse=True
print("\nHere is the original list again:")
print(cars)
---------------------------------------------------------------
Here is the original list:
['bmw', 'audi', 'toyota', 'subaru']
Here is the sorted list:
['audi', 'bmw', 'subaru', 'toyota']
Here is the original list again:
['bmw', 'audi', 'toyota', 'subaru'] #打印结果
---------------------------------------------------------------
倒着打印列表
cars = ['bmw', 'audi', 'toyota', 'subaru']
print(cars)
cars.reverse()
print(cars)
---------------------------------------------------------------
['bmw', 'audi', 'toyota', 'subaru']
['subaru', 'toyota', 'audi', 'bmw'] #打印结果
---------------------------------------------------------------
确定列表的长度
cars = ['bmw', 'audi', 'toyota', 'subaru']
>>> print(len(cars))
4
操作列表 注意:Python对缩进要求很严,缩进不同程序输出的内容也不一样
magicians = ['alice', 'david', 'carolina']
for magician in magicians:
print(magician)
---------------------------------------------------------------
alice
david
carolina #打印结果
---------------------------------------------------------------
在for循环中执行更多的操作
magicians = ['alice', 'david', 'carolina']
for magician in magicians:
print(magician.title() + ", that was a great trick!")
#Python对缩进有强烈的要求
---------------------------------------------------------------
Alice, that was a great trick!
David, that was a great trick!
Carolina, that was a great trick! #打印结果
---------------------------------------------------------------
#避免缩进错误 (重点)
Python根据缩进来判断代码行与前一个代码行的关系。在前面的示例中,向各位魔术师显示消息的代码行是for循环的一部分,因为它们缩进了。Python通过使用缩进让代码更易读;简单地说,它要求你使用缩进让代码整洁而结构清晰。在较长的Python程序中,你将看到缩进程度各不相同的代码块,这让你对程序的组织结构有大致的认识。 当你开始编写必须正确缩进的代码时,需要注意一些常见的缩进错误。例如,有时候,程序员会将不需要缩进的代码块缩进,而对于必须缩进的代码块却忘了缩进。通过查看这样的错误示例,有助于你以后避开它们,以及在它们出现在程序中时进行修复。
不必要的缩进
message = "Hello Python world!"
print(message)
\#循环后不必要的缩进
......
\#遗漏了冒号
......
创建数值列表
使用函数 range()
#1到5,但是不包括5,
for value in range(1,5):
print(value)
---------------------------------------------------------------
1
2
3
4 #打印结果
---------------------------------------------------------------
#使用 range()创建数字列表
#list() 是列表函数
numbers = list(range(1,6))
print(numbers)
---------------------------------------------------------------
[1, 2, 3, 4, 5] #打印结果
---------------------------------------------------------------
range函数参数介绍 range(start,end,num)
start:起始位置 end:结束位置,但是不包括该数字 num:步长
even_numbers = list(range(2,11,2))
print(even_numbers)
---------------------------------------------------------------
[2, 4, 6, 8, 10] #打印结果
---------------------------------------------------------------
squares = []
for value in range(1,11):
square = value**2
squares.append(square)
print(squares)
---------------------------------------------------------------
[1, 4, 9, 16, 25, 36, 49, 64, 81, 100] #打印结果
---------------------------------------------------------------
#对数字列表执行简单的统计计算
digits = [1, 2, 3, 4, 5, 6, 7, 8, 9, 0]
>>> min(digits)
>>> min(digits)
0
>>> max(digits)
9
>>> sum(digits)
45
列表解析
squares = [value**2 for value in range(1,11)]
print(squares)
---------------------------------------------------------------
[1, 4, 9, 16, 25, 36, 49, 64, 81, 100] #打印结果
---------------------------------------------------------------
列表切片
players = ['charles', 'martina', 'michael', 'florence', 'eli']
# [0:3]:0到3,但是不包含3
print(players[0:3])
---------------------------------------------------------------
['charles', 'martina', 'michael'] #打印结果
---------------------------------------------------------------
players = ['charles', 'martina', 'michael', 'florence', 'eli']
# [1:4]:1到4,但是不包含4
print(players[1:4])
---------------------------------------------------------------
['martina', 'michael', 'florence'] #打印结果
---------------------------------------------------------------
players = ['charles', 'martina', 'michael', 'florence', 'eli']
#如果第一个没有写,那么默认是从0开始
# [:4] 0到4
print(players[:4])
---------------------------------------------------------------
['charles', 'martina', 'michael', 'florence'] #打印结果
---------------------------------------------------------------
players = ['charles', 'martina', 'michael', 'florence', 'eli']
# [2:]:从2开始一直到后面所有元素
print(players[2:])
---------------------------------------------------------------
['michael', 'florence', 'eli'] #打印结果
---------------------------------------------------------------
players = ['charles', 'martina', 'michael', 'florence', 'eli']
#如果从后面开始数的话,是-1,那么找到-3然后一直到最后的元素
print(players[-3:])
---------------------------------------------------------------
['michael', 'florence', 'eli'] #打印结果
---------------------------------------------------------------
遍历切片
players = ['charles', 'martina', 'michael', 'florence', 'eli']
print("Here are the first three players on my team:")
#从0到3,不包含3
for player in players[:3]:
print(player.title())
#复制列表
my_foods = ['pizza', 'falafel', 'carrot cake']
friend_foods = my_foods[:]
friend_foods = my_foods #这个是错误的
元组
定义元组:元组看起来犹如列表,但使用圆括号而不是方括号来标识。定义元组后,就可以使#用索引来 访问其元素,就像访问列表元素一样。
dimensions = (200, 50)
print(dimensions[0])
print(dimensions[1])
---------------------------------------------------------------
200
50 #打印结果
---------------------------------------------------------------
#这里注意元组的数据是不能被改变的
#遍历元组中的所有值
dimensions = (200, 50)
for dimension in dimensions:
print(dimension)
---------------------------------------------------------------
200
50 #打印结果
---------------------------------------------------------------
修改元组变量
虽然不能修改元组的元素,但可以给存储元组的变量赋值。因此,如果要修改前述矩形的尺
dimensions = (200, 50)
print("Original dimensions:")
for dimension in dimensions:
print(dimension)
dimensions = (400, 100)
print("\nModified dimensions:")
for dimension in dimensions:
print(dimension)
---------------------------------------------------------------
Original dimensions:
200
50
Modified dimensions:
400
100 #打印结果
---------------------------------------------------------------
#设置代码格式 ......
#格式设置指南 ......
#缩进 ......
行长 以下助于了解,不用掌握
很多Python程序员都建议每行不超过80字符。最初制定这样的指南时,在大多数计算机中,终端窗口每行只能容纳79字符;当前,计算机屏幕每行可容纳的字符数多得多,为何还要使用79字符的标准行长呢?这里有别的原因。专业程序员通常会在同一个屏幕上打开多个文件,使用标准行长可以让他们在屏幕上并排打开两三个文件时能同时看到各个文件的完整行。 PEP 8还建议注释的行长都不超过72字符,因为有些工具为大型项目自动生成文档时,会在每行注释开头添加格式化字符。 PEP 8中有关行长的指南并非不可逾越的红线,有些小组将最大行长设置为99字符。在学习 期间,你不用过多地考虑代码的行长,但别忘了,协作编写程序时,大家几乎都遵守PEP 8指南。在大多数编辑器中,都可设置一个视觉标志------通常是一条竖线,让你知道不能越过的界线在什么地方。
空行
要将程序的不同部分分开,可使用空行。你应该使用空行来组织程序文件,但也不能滥用;只要按本书的示例展示的那样做,就能掌握其中的平衡。例如,如果你有5行创建列表的代码,还有3行处理该列表的代码,那么用一个空行将这两部分隔开是合适的。然而,你不应使用三四个空行将它们隔开。空行不会影响代码的运行,但会影响代码的可读性。Python解释器根据水平缩进情况来解读代码,但不关心垂直间距。