Chapter 1
版本区别:2与3
编程环境
- windows: IDLE、Geany、Pycharm、Sublime text
- linux: IDLE、vim
Chapter 2
变量:
数据类型为:数和字符串
str()将数转为字符串
不需要声明数据类型,直接赋值!
不需要分号,每行写一行代码,若一行写多行代码可用分号
字符串可用单引号''、双引号“”、三引号括起来
没有{}花括号,层次由每行代码前端的空白(称为缩进)来代表,因此代码前端的空白很重要
字符串:
与C#类似,直接在字符串变量后面可调用各种方法:.title() .upper() .lower()等
eg:
favorite_language = ' python '
favorite_language.rstrip() #删除右边空白
favorite_language.lstrip() #删除左边空白
favorite_language.strip() #删除两边空白
数字:
- 整数 注意:3/2=1 直接舍弃小数位
- 浮点数 注意:要正确除得小数位 应3.0/2=1.5或3/2.0=1.5或3.0/2.0=1.5
Chapter 3
列表
motorcycles = ['honda', 'yamaha', 'suzuki']
-
访问列表元素:类似数组的下标(索引从0开始)
print(motorcycles[i]) #访问任意元素 print(motorcycles[-1]) #访问倒数第一个元素!
-
修改、添加和删除元素
1.修改:
2.添加: append()与insert()与remove()
motorcycles.append('ducati') #在列表末尾添加元素 motorcycles.insert(i, 'ducati') #在列表任意位置i插入元素
3.删除: del与pop()
del motorcycles[i] #删除列表任意位置i的元素 popped_motorcycle = motorcycles.pop(i) #弹出列表任意位置i元素 且赋值给变量 motorcycles.remove('ducati') #已知元素的值,移除该元素
-
组织列表:
-
sort()排序 按字母排序 参数reverse可修改排序顺序
cars = ['bmw', 'audi', 'toyota', 'subaru'] cars.sort() print(cars) 输出结果: ['audi', 'bmw', 'subaru', 'toyota'] cars.sort(reverse=True) print(cars) 输出结果: ['toyota', 'subaru', 'bmw', 'audi']
sorted()临时排序 与sort()相同 但不会改变原列表顺序
reverse()反转列表
len()确定列表的长度
-
Chapter 4
操作列表
-
遍历列表:使用for循环
magicians = ['alice', 'david', 'carolina'] for magician in magicians: print(magician)
tips:
for循环依次将列表magicians中的元素遍历,并赋值给临时变量magician
如果列表包含一百万个元素,Python就重复执行指定的步骤一百万次
Python根据缩进来判断代码行与前一个代码行的关系
for循环中的语句采用缩进代表在循环体中
在for循环后面,没有缩进的代码都只执行一次
-
创建数值列表:list(range())
for value in range(1,5): print(value) 输出结果: 1 2 3 4 说明: 函数 range() 让Python从你指定的第一个值开始数,并在到达你指定的第二个值后停止,因此输出 不包含第二个值(这里为5)。 创建数字列表: numbers = list(range(1,6)) print(numbers) 输出结果: [1, 2, 3, 4, 5] 使用函数 range() 时,还可指定步长。例如,下面的代码打印1~10内的偶数: even_numbers = list(range(2,11,2)) print(even_numbers) 输出结果: [2, 4, 6, 8, 10] 说明: 函数 range() 从2开始数,然后不断地加2,直到达到或超过终值(11)
对数字列表执行简单的统计计算:min()、max()、sum()
-
列表解析:将 for 循环和创建新元素的代码合并成一行,并自动附加新元素。
squares = [value**2 for value in range(1,11)] print(squares) 输出结果: [1, 4, 9, 16, 25, 36, 49, 64, 81, 100]
-
切片:列表的部分元素——Python称之为切片。
players = ['charles', 'martina', 'michael', 'florence', 'eli'] print(players[0:3]) 输出结果: ['charles', 'martina', 'michael'] players = ['charles', 'martina', 'michael', 'florence', 'eli'] print(players[1:4]) 输出结果: ['martina', 'michael', 'florence'] print(players[:4]) #未指定开始索引,默认从头开始 print(players[2:]) #未指定结束索引,默认到末尾 print(players[-3:]) #输出列表末尾的三个元素
-
复制列表:
1.利用切片:
my_foods = ['pizza', 'falafel', 'carrot cake'] friend_foods = my_foods[:] print(friend_foods) 输出结果: ['pizza', 'falafel', 'carrot cake'] 采用切片实现新建一个相同的列表 注意区别 friend_foods = my_foods 若不是用切片,而是采用赋值,则是将新变量指向my_foods的列表,即两个变量指向同个列表。 修改其中任意一个时,列表都会被改变!
-
元组:元素不可修改的列表 用圆括号() 操作方式同列表
dimensions = (200, 50) dimensions[0] = 250 错误:元组元素不可修改 dimensions = (400, 100) 正确:元组变量可以赋值
Chapter 5
if语句 :同循环一样采用缩进
- 判断相等==
- 判断不相等!=
eg:
cars = ['audi', 'bmw', 'subaru', 'toyota']
for car in cars:
if car == 'bmw':
print(car.upper())
else:
print(car.title())
tips: Python中检查是否相等时区分大小写
-
判断值是否在列表中: 关键字in 和 关键字not in
banned_users = ['andrew', 'carolina', 'david']
user = 'marie'
if user in banned_users:
if user not in banned_users: if-else 语句
-
if-elif-else 结构
age = 12
if age < 4:
print("Your admission cost is $0.")
elif age < 18:
print("Your admission cost is $5.")
else:
print("Your admission cost is $10.") 列表为空时返回False 不为空时返回True
requested_toppings = []
if requested_toppings:
Chapter 6
字典: 键值对 用花括号
alien_0 = {'color': 'green', 'points': 5}
-
访问字典中的值:通过键
alien_0 = {'color': 'green'} #color为键 green为值 print(alien_0['color']) 字典中可包含任意数量的键 — 值对
-
添加键—值对 :Python不关心键—值对的存储顺序
alien_0 = {'color': 'green', 'points': 5} #原字典 alien_0['x_position'] = 0 #添加新的键值对 键为x_position 值为0
-
删除键—值对
alien_0 = {'color': 'green', 'points': 5} print(alien_0) del alien_0['points'] print(alien_0)
采用多行定义字典
在输入左花括号后按回车键,再在下一行缩进四个空格,指定第一个键 — 值对,并在它后面加上一个逗号。
favorite_languages = {
'jen': 'python',
'sarah': 'c',
'edward': 'ruby',
'phil': 'python',
}
-
遍历字典:(三种方式)遍历字典的所有键—值对、键或值。
-
遍历键值对: items()方法 :返回一个包含所有键—值对的列表。
for key, value in favorite_languages.items(): print("Key: " + key) print("Value: " + value)
-
遍历所有键: keys()方法 :返回一个包含所有键的列表
for name in favorite_languages.keys(): print(name.title())
-
遍历所有值: values()方法 :返回一个包含所有值的列表
for language in favorite_languages.values(): print(language.title())
tips:考虑到列表中的值会有很多重复,可调用set()方法,找出列表中所有不同的值组成集合,再遍历集合,如下,注意区别
for language in set(favorite_languages.values()): print(language.title())
-