前五章内容
参考书
Unit1 起步
1.1搭建编程环境
1.2在不同操作系统中搭建Python编程环境
1.3解决安装问题
1.4从终端运行Python程序
方法输入python即可
1.5小结
Unit2 变量和简单数据类型
2.1运行 hello_word.py 时发生的情况
2.2 变量
2.2.1变量的命名与使用
2.2.2 使用变量时避免命名错误
2.3字符串
2.3.1使用方法修改字符串的大小写
title()函数
name = "ada lovelace"
print(name.title())
Ada Lovelace
upper()、lower()函数
name = "Ada Lovelace"
print(name.upper())
print(name.lower())
ADA LOVELACE
ada lovelace
2.3.2合并(拼接)字符串
直接使用+
first_name = "ada"
last_name = "lovelace"
full_name = first_name + " " + last_name
print(full_name)
ada lovelace
2.3.3 使用制表符或者换行符来添加空白
\t \n
2.3.4 删除空白与避免语法错误
暂时删除空白
[1]>>> favorite_language = 'python '
[2]>>> favorite_language
'python '
[3]>>> favorite_language.rstrip()
'python'
[4]>>> favorite_language
'python '
要永久删除这个字符串中的空白,必须将删除操作的结果存回到变量中:
>>> favorite_language = 'python '
>>> favorite_language = favorite_language.rstrip()
>>> favorite_language
'python'
删除其他地方空白
你还可以剔除字符串开头的空白,或同时剔除字符串两端的空白。为此,可分别使用方法
lstrip()和strip():
>>> favorite_language = ' python '
>>>> favorite_language.rstrip()
' python'
>>> favorite_language.lstrip()
'python '
>>> favorite_language.strip()
'python'
#### 2.3.6 Python 2中的print语句
就是没有括号
>>> python2.7
>>> print "Hello Python 2.7 world!"
Hello Python 2.7 world!
2.4数字
2.4.1整数
在Python中,可对整数执行加(+)减(-)乘(*)除(/)运算。
Python使用两个乘号表示乘方运算:
>>> 3 ** 2
9
>>> 3 ** 3
27
>>> 10 ** 6
1000000
2.4.2浮点数
浮点数就是带小数点的数字
2.4.3使用函数str()避免类型错误
age = 23
message = "Happy " + age + "rd Birthday!"
这样混用类型会报错的
age = 23
message = "Happy " + str(age) + "rd Birthday!"
调用str()函数把非字符类型转换为字符类型
2.4.4 Python 2中的整数
>>> python2.7
>>> 3 / 2
1
在Python 2中,整数除法的结果只包含整数部分,小数部
分被删除。请注意,计算整数结果时,采取的方式不是四舍五入,而是将小数部分直接删除
>>> 3 / 2.0
1.5
>>> 3.0 / 2.0
1.5
2.5注释
2.5.1如何编写注释
# 向大家问好
print("Hello Python people!")
2.5.2该编写什么样的注释
2.6 Python之禅
Unit3 列表简介
3.1列表是什么
列表由一系列按特定顺序排列的元素组成
在Python中,用方括号([])来表示列表,并用逗号来分隔其中的元素。下面是一个简单的
列表示例,这个列表包含几种自行车:
bicycles = ['trek', 'cannondale', 'redline', 'specialized']
print(bicycles)
输出结果
[‘trek’, ‘cannondale’, ‘redline’, ‘specialized’]
3.1.1访问列表元素
print(bicycles[0])
输出结果
trek
3.1.2索引从0而不是1开始
-1可以用来表示最后一个元素
Python为访问最后一个列表元素提供了一种特殊语法。通过将索引指定为-1,可让Python返回最后一个列表元素:
print(bicycles[-1])
同样可以返回倒数第二第三第四等等
3.1.3使用列表中的各个值
直接饮用比如num[0]
3.2 修改、添加、删除元素
3.2.1修改列表元素
直接调用来改变
motorcycles[0] = 'ducati'
3.2.2从列表中添加元素
调用append()函数添加到最后
motorcycles.append('ducati')
调用insert()函数插入到指定位置
motorcycles.insert(0, 'ducati')
ducati 放在了第0个位置上
3.2.3 从列表中删除元素
- 使用del语句删除
del motorcycles[0]
- pop()函数删除末尾元素并且将其返回
- 同样也可以pop(0)或者pop(1)
popped_motorcycle = motorcycles.pop()
- 根据值删除元素使用remove()
motorcycles.remove('ducati')
3.3组织列表
3.3.1 sort()对列表进行永久性排序
- sort()
- sort(reverse=True倒序
3.3.2 sorted()对列表进行临时排序
此时cars并未发生变化只是把排序好的值输出
print(sorted(cars))
3.3.3 倒着打印列表
print(cars)
cars.reverse()
print(cars)
3.3.4 确定列表长度
len(cars)
3.4 使用列表时避免索引错误
比如只有三个元素,那么最后一个元素的索引为2,如果你引用3肯定会出错
3.5 小结
Unit4操作列表
4.1遍历整个列表
4.1.深入地研究循环
4.1.2在for循环中执行更多的操作
怎么使用for语句
- 冒号
- 缩进
for magician in magicians:
print(magician.title() + ", that was a great trick!")
4.1.3在for循环结束后执行一些操作
4.2避免缩进错误
总结:合理缩进以达到效果
4.3创建数值列表
列表非常适合用于存储数字集合,而Python提供了很多工具,可帮助你高效地处理数字列表
4.3.1使用函数range()
range(1,3)
其实最终结果是1,2
4.3.2使用range()创建数字列表
要创建数字列表,可使用函数list()将range()的结果直接转换为列表
4.3.3对数字列表进行简单的统计计算
>>> digits = [1, 2, 3, 4, 5, 6, 7, 8, 9, 0]
>>> min(digits)
0
>>> max(digits)
9
>>> sum(digits)
45
4.3.4列表解析
复合
squares = [value**2 for value in range(1,11)]
print(squares)
#注意这里的for语句没有冒号
操练总结:list函数的使用
numbers=list(range(1,23))
4.4使用列表的一部分
你还可以处理列表的部分元素——Python称之为切片
4.4.1切片
输出第0、1、2个
players = ['charles', 'martina', 'michael', 'florence', 'eli']
print(players[0:3])
:前为起点,:后为重点,如果没有指定就是从开头开始或者以末尾结束
同样我们可以引用倒数的元素
4.4.2遍历切片
players = ['charles', 'martina', 'michael', 'florence', 'eli']
print("Here are the first three players on my team:")
for player in players[:3]:
print(player.title())
4.4.3复制列表
my_foods = ['pizza', 'falafel', 'carrot cake']
friend_foods = my_foods[:]
错误❌直接使用等号不是复制而是简单的关联
4.5元组
有时候你需要创建一系列不可修改的元素,
元组可以满足这种需求。Python将不能修改的值称为不可变的,而不可变的列表被称为元组
4.5.1定义元组
元组看起来犹如列表,但使用圆括号而不是方括号来标识。定义元组后,就可以使用索引来访问其元素,就像访问列表元素一样。
dimensions = (200, 50)
dimensions[0]=100
#肯定会报错
4.5.2遍历元组中的所有值
dimensions = (200, 50)
for dimension in dimensions:
print(dimension)
4.5.3修改元组变量
不能修改某一个变量,但是可以进行赋值
dimensions = (200, 50)
print("Original dimensions:")
for dimension in dimensions:
print(dimension)
dimensions = (400, 100)
print("\nModified dimensions:")
for dimension in dimensions:
print(dimension)
4.6设置代码格式
4.6.1格式设置指南
如果一定要在让代码易于编写和易于阅读之间做出选择
Python程序员几乎总是会选择后者
下面的指南可帮助你从一开始就编写出清晰的代码
4.6.2缩进
PEP 8建议每级缩进都使用四个空格,这既可提高可读性,又留下了足够的多级缩进空间。
在字处理文档中,大家常常使用制表符而不是空格来缩进。
对于字处理文档来说,这样做的效果很好,但混合使用制表符和空格会让Python解释器感到迷惑。
每款文本编辑器都提供了一种设置可将输入的制表符转换为指定数量的空格你在编写代码时应该使用制表符键,但一定要对编辑器进行设置,使其在文档中插入空格而不是制表符。
4.6.3行长
很多Python程序员都建议每行不超过80字符
!
PEP 8还建议注释的行长都不超过72字符
4.6.4空行
要将程序的不同部分分开,可使用空行
4.6.5其他格式设置指南
4.7小结
Unit5 if语句
学习简单的if语句,以及创建一系列复杂的if语句来确定当前到底处
于什么情形
5.1一个简单示例
cars = ['audi', 'bmw', 'subaru', 'toyota']
for car in cars:
if car == 'bmw':
print(car.upper())
else:
print(car.title())
5.2条件测试
5.2.1检查是否相等 ==
你编写的大多数条件表达式都检查两个值是否相等,但有时候检查两个值是否不等的效率更高。
5.2.2检查是否相等时不考虑大小写
>>> car = 'Audi'
>>> car == 'audi'
False
5.2.3检查是否不相等。!=
5.2.4比较数字 ==,!=,<=,<,>,>=
5.2.5检查多个条件
and,为改善可读性( ) and ( )
and相当于&&
or,为改善可读性( ) or ( )
or相当于||
5.2.6检查特定值是否包含在列表中. xx in xxx
>>> requested_toppings = ['mushrooms', 'onions', 'pineapple']
>>> 'mushrooms' in requested_toppings
True
>>> 'pepperoni' in requested_toppings
False
5.2.7检查特定值是不否包含在列表中 if xx not in xxx:
5.2.8 布尔表达式
game_active = True
can_edit = False
#就是布尔变量,True或者False
5.3 if语句
5.3.1 简单的if语句
if conditional_test:
do something
5.3.2 if-else语句
age = 17
if age >= 18:
print("You are old enough to vote!")
print("Have you registered to vote yet?")
else:
print("Sorry, you are too young to vote.")
print("Please register to vote as soon as you turn 18!")
5.3.3 if-elif-else语句
#你可以理解为switch()语句
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.")
5.3.4 使用多个elif代码块
5.3.5省略else代码块
你可以理解为没有default
5.3.6测试多个条件
5.4使用if语句处理列表
5.4.1检查特殊元素
for requested_topping in requested_toppings:
if requested_topping == 'green peppers':
print("Sorry, we are out of green peppers right now.")
for()
{
if()
cout<<. <<endl;
}
5.4.2确定列表是空的
直接 if xxx: