第一章:变量和数据类型
1.1输出:
1.2 变量:
1.3字符串:
1.3.定义字符串:
1.3.检索2字符串
1.3.修改3字符串:
1.3.变量用于字符串:
1.3.5删除空白:
1.3.6删除元素
1.3.7 分割字符串
1.4数:
1.4.1整数:
1.4.2浮点数:
1.4.3整数和浮点数:
1.4.4 数中下划线:
1.4.5 多个变量赋值:
1.4.6 常量:
1.5注释
1.5.1 如何编写注释:
第二章:列表
2.1列表定义:
2.1.1访问列表元素:
2.1.索引从0而不是1开始:
2.1.3 使用列表中的每个值
2.修改、添加和删除元素:
2.2.1修改列表元素:
2.2.2 在列表中添加元素:
2.2.3 从列表中删除元素:
2.3组织列表
2.3.1 使用方法sort() 对列表永久排序
2.3.2 使用函数sorted() 对列表临时排序
2.3.3 倒着打印列表
2.3.4 确定列表的长度
第三章 列表操作
3.1 遍历整个列表:
3.1.2 在for 循环中执行更多操作:
3.2 创建数值列表
3.2.1 使用函数range()
3.3.2 使用range() 创建数字列表
3.3.3对数字列表执行
3.3.4 列表解析:
3.4 使用列表的一部分:
3.4.1 切片
3.4.2 遍历切片
3.4.3 复制列表
3.5元组
3.5.1 定义元组
3.5.3 修改元组变量
第四章 if 语句
4.1 if语句的作用:
4.2 复杂的if语句
4.3如何判断列表是否为空?
第五章 字典
5.1 一个简单的字典
5.2 使用字典
5.2.1访问字典的值
5.2.2 添加键值对
5.2.3 修改字典中的值
5.2.5 删除键值对
5.2.6 使用get() 来访问值
5.3 遍历字典
5.3. 按特定顺序遍历字典中的所有键
5.4 嵌套
5.4.1 字典列表
5.4.2 在字典中存储列表
5.4.3 在字典中存储字典
5.4.4 在列表中储存列表
第六章 用户输入和while 循环
7.1 函数input() 的工作原理
6.1.2 求模运算符
6.2.4 使用break 退出循环
6.2.5 在循环中使用continue
6.3 使用while 循环处理列表和字典
6.3.1 删除为特定值的所有列表元素
第七章:函数
7.1 定义函数
7.1.1 向函数传递信息
7.1.2 实参和形参
7.2 传递实参
7.2.1 位置实参
7.2.2 关键字实参
7.2.3 默认值
7.3 返回值
7.3.1 返回简单值
7.3.2 让实参变成可选的
7.3.3 返回字典
7.5 传递任意数量的实参
7.5.1 结合使用位置实参和任意数量实参
7.5.2 使用任意数量的关键字实参
7.6.1 导入整个模块
7.6.3 使用as 给函数指定别名
7.6.4 使用as 给模块指定别名
7.6.5 导入模块中的所有函数
7.7 函数编写指南
第八章 类
8.1 创建和使用类
8.1.1 创建Dog 类
8.1.2 根据类创建实例
8.2 使用类和实例
8.2.1 Car 类
8.2.2 给属性指定默认值
8.2.3 修改属性的值
8.3 继承:
8.3.1 子类的方法__init__()
8.3.2 给子类定义属性和方法
8.3.3 重写父类的方法
8.3.4 将实例用作属性
第九章 文件和异常
9.1 从文件中读取数据
9.1.1 读取整个文件
9.1.2 逐行读取
9.1.4 创建一个包含文件各行内容的列表
9.1.5 使用文件的内容
9.2 写入文件
9.2.1 写入空文件
9.2.2 写入多行
9.2.3 附加到文件
9.3 异常
9.3.1 处理ZeroDivisionError 异常
9.3.2 使用try-except 代码块
9.3.3 使用异常避免崩溃
9.3.4 else 代码块
9.3.5 处理FileNotFoundError 异常
9.3.6 分析文本
9.3.7 使用多个文件
9.3.8 静默失败
9.4 存储数据
9.4.1 使用json.dump() 和json.load()
第 10 章 测试代码
10.1 测试函数
10.1.1 单元测试和测试用例
10.1.2 可通过的测试
10.2 测试类
10.2.1 各种断言方法
10.2.2 一个要测试的类
10.2.3 测试AnonymousSurvey 类
10.2.4 方法setUp()
第一章:变量和数据类型
1.1输出:
在python中的”输出语句“为” print()“
1.2 变量:
变量的命名规则:
变量名只能包含字母、数字和下划线。 变量名不能包含空格,但能使用下划线来分隔其中的单词。 变量名应既简短又具有描述性。
1.3字符串:
1.3.1定义字符串:
就是一系列字符。在Python中,用引号括起的都是字符串,其中的引号可以是单引号,也可以是双引号。 eg:'HELLO' 或者 "HELLO" 备注:二者不可混合使用,使用”单引号“开头时必须使用”单引号“结尾。 并且引号必须成对存在。 这种灵活性让你能够在字符串中包含引号和撇号: eg: 'I told my friends "It is easy for me to learn python".'
1.3.2字符串的检索
字符串可以使用索引进行检索:
number='efhuhewj'
print(number[3])
你会看到输出元素 u
1.3.3字符串的修改:
python中有专门针对字符串修改的语句:
方法title():即将每个单词的首字母。都改为大写。 upper():将所有单词全部大写。 lower():将所有单词全部小写。
name = "Ada Lovelace"
print(name.title())
print(name.upper())
print(name.lower())
1.3.4在字符串中使用变量:
在这里要使用到“f字符串”格式为 f'{变量} {变量} Hello'
name='咸蛋超人'
print(f"{name),hello!")
同时在使用f字符串是同样可以在{}中对变量进行修改:
name='jiamianqishi'
print(f"{name.upper(),hello!")
f字符串也可以在变量中使用:
first_name = "ada"
last_name = "lovelace"
full_name = f"{first_name} {last_name}"
print(f"Hello, {full_name.title()}!")
制表符(\t)和换行符(\n): \t : >>> print("Python") Python >>> print("\tPython") Python 制表符使得打印的字符串空出四个空格(一个制表符tab相当于四个空格) \n: print("Languages:\nPython\nC\nJavaScript") Languages: Python C JavaScript
1.3.5删除空白:
删除字符串末尾的空白可使用方法 变量.rstrip() 删除字符串开头的空白可使用方法 变量.lstrip() 删除字符串两端的空白可使用发放 变量.strip()
1.3.6删除元素
删除字符串的一个或者多个元素 字符串.replace
nemr='asdna'
name=nemr.replace('a','')
print(name)
sdn
1.3.7 字符串的分割
split()函数是对字符串进行分割成列表。格式为:string.split(separator, number) string为要分割的字符串;separator为分割符,可选参数,可以指定分隔符进行分割字符串,也可以不指定,不指定时,默认以空格进行分割;number为分割次数,也是可选参数,默认为-1,即以所有出现次数分割
1.4数:
1.4.1整数:
在Python中,可对整数执行加(+ )减(- )乘(* )除(/ )运算。 eg:>>> 2 + 3 5 >>> 3 - 2 1 >>> 2 * 3 6 >>> 3 / 2 1.5
python使用两个乘号表示乘方运算:
A**B A是底数 B是幂次
eg:>>> 3 ** 2 9 >>> 3 ** 3 27 >>> 10 ** 6 1000000
1.4.2浮点数:
浮点数的定义:Python将所有带小数点的数称为浮点数。 对浮点数的计算中需要注意的是,结果包含的小数位数可能是不确定的。 eg:>>> 0.2 + 0.1 0.30000000000000004 >>> 3 * 0.1 0.30000000000000004
1.4.3整数和浮点数:
将任意两个数相除时,结果总是浮点数,即便这两个数都是整数且能整除: eg >>> 4/2 2.0 在其他任何运算中,如果一个操作数是整数,另一个操作数是浮点数,结果也总是浮点数: >>> 1 + 2.0 3.0 >>> 2 * 3.0 6.0 >>> 3.0 ** 2 9.0 无论是哪种运算,只要有操作数是浮点数,Python默认得到的总是浮点数,即便结果原本为整数也是如此。
1.4.4 数中的下划线:
书写很大的数时,可使用下划线将其中的数字分组,使其更清晰易读: >>> universe_age = 14_000_000_000 当你打印这种使用下划线定义的数时,Python不会打印其中的下划线: >>> print(universe_age) 14000000000 这是因为存储这种数时,Python会忽略其中的下划线。将数字分组时,即便不是将每三位分成一组,也不会影响最终的值。在Python看来,1000 与1_000 没什么不同, 1_000 与10_00 也没什么不同。这种表示法适用于整数和浮点数。
1.4.5 同时给多个变量赋值:
可在一行代码中给多个变量赋值,这有助于缩短程序并提高其可读性。这种做法最常用于将一系列数赋给一组变量。
eg >>> x, y, z = 0,0,0
1.4.6 常量:
常量 类似于变量,但其值在程序的整个生命周期内保持不变。Python没有内置的常量类 型,但Python程序员会使用全大写来指出应将某个变量视为常量,其值应始终不变:MAX_CONNECTIONS = 5000 在代码中,要指出应将特定的变量视为常量,可将其字母全部大写。
1.5注释
1.5.1 如何编写注释:
在Python中,注释用井号(# )标识。井号后面的内容都会被Python解释器忽略。
第二章:列表
2.1列表定义:
列表由一系列按特定顺序排列的元素组成。你可以创建包含字母表中所有字母、数字0~9或所有家庭成员姓名的列表;也可以将任何东西加入列表中,其中的元素之间可以没有任何关系。 在Python中,用方括号([] )表示列表,并用逗号分隔其中的元素。
names=['ju','ma','pao']
直接对列表打印时 会将其[]一并打印
2.1.1访问列表元素:
要访问列表元素,可指出列表的名称,再指出元素的索引,并将后者放在方括号内。
names=['ju','ma','pao']
print(names[0])
2.1.2索引从0而不是1开始:
在Python中,第一个列表元素的索引为0,而不是1。多数编程语言是如此规定的,这与列表操作的底层实现相关。
names=['ju','ma','pao'] print(names[0])
结果: ju
Python为访问最后一个列表元素提供了一种特殊语法。通过将索引指定为-1 ,可让Python返回最后一个列表元素,这种约定也适用于其他负数索引。例如,索引-2 返回倒数第 二个列表元素,索引-3 返回倒数第三个列表元素,依此类推。
2.1.3 使用列表中的各个值
你可以像使用其他变量一样使用列表中的各个值。例如,可以使用f字符串根据列表中值来创建消息。
下面尝试从列表中提取第一款自行车,并使用这个值创建一条消息:
bicycles = ['trek', 'cannondale', 'redline', 'specialized']
message = f"My first bicycle was a {bicycles[0].title()}."
print(message)
2.2修改、添加和删除元素:
列表中的元素在被创建后可以进行修改,添加和删除。
2.2.1修改列表元素:
直接修改法:
bicycles = ['trek', 'cannondale', 'redline', 'specialized']
bicycles[0]='yongjiu'
进行如上操作则列表中第零个元素会被替换。
2.2.2 在列表中添加元素:
在列表末尾添加元素 列表.append(元素) 在任意位置添加元素 列表.insert(索引,元素)
motorcycles.append('ducati')
print(motorcycles)
motorcycles = ['honda', 'yamaha', 'suzuki']
motorcycles.insert(0, 'ducati')
print(motorcycles)
2.2.3 从列表中删除元素:
1使用del 语句删除元素 如果知道要删除的元素在列表中的位置,可使用del 语句。
删除任意位置元素 del 列表[索引] 注意:del方法比较特殊 (无需添加"."去连接方法和函数)
del motorcycles[0]
print(motorcycles)
2使用pop()删除元素(有时候,你要将元素从列表中删除,并接着使用它的值)
方法pop() 删除列表末尾的元素,并让你能够接着使用它。术语弹出 (pop)源自这样的类比:列表就像一个栈,而删除列表末尾的元素相当于弹出栈顶元素。
motorcycles = ['honda', 'yamaha', 'suzuki']
print(motorcycles)
popped_motorcycle = motorcycles.pop()
在程序中 pop(索引) 每出现一次则对应的列表中的元素就会被删除
print(motorcycles)
print(popped_motorcycle)
若要引用pop(索引) 则直接令 变量=列表.pop(索引) 则在这个过程中索引对应的元素既会被引用也会1从列表删除。
而为了顶出任意位置的索引可以在pop后面的括号里加上索引,那么就可以删除任意位置的元素。 3根据元素删除元素运用 方法remove
motorcycles = ['honda', 'yamaha', 'suzuki', 'ducati']
motorcycles.remove('ducati')
注意 :方法remove() 只删除第一个指定的值。如果要删除的值可能在列表中出现多次,就需要 使用循环来确保将每个值都删除。
2.3组织列表
在创建的列表中,列表的排序通常无法预测,Python提供了很多组织列表的方式,可根据具体情况选用。
2.3.1 使用方法sort() 对列表永久排序
Python方法sort() 让你能够较为轻松地按照字母顺序对列表进行排序。
cars = ['bmw', 'audi', 'toyota', 'subaru']
cars.sort()
print(cars)
注意:这一方法直接修改了元素顺序,且不可逆。
若是想要字母表的逆序排列,那么需要在输出sort(reverse=True)
2.3.2 使用函数sorted() 对列表临时排序
运用函数sorted()可以临时改变列表顺序 让其按照你需要的显示,同时不影响它们在列表中的原始排列顺序。 这一函数多用于打印中 sorted(列表)
print("\nHere is the sorted list:")
print(sorted(cars))
当需要临时对列表按照字母表反序排列时 sorted(列表,reverse = True) --- 倒叙排列
2.3.3 倒着打印列表
要反转列表元素的排列顺序,可使用方法reverse() 。注意,reverse() 不是按与字母顺序相反的顺序排列列表元素,而只是反转列表元素的排列顺序 列表.reverse()
cars = ['bmw', 'audi', 'toyota', 'subaru']
print(cars)
cars.reverse()
print(cars)
注意:方法reverse() 永久性地修改列表元素的排列顺序,但可随时恢复到原来的排列顺序,只需对列表再次调用reverse() 即可。
2.3.4 确定列表的长度
使用函数len() 可快速获悉列表的长度。在下面的示例中,列表包含四个元素,因此其长度为4 :
eg >>> cars = ['bmw', 'audi', 'toyota', 'subaru'] >>> len(cars)
第三章 列表操作
学习如何遍历列表
3.1 遍历整个列表:
遍历整个列表可以使用for循环 B=[.............] for A in B:
利用for循环打印列表中每一个元素, 原理类似于: 每次循环 将取出B中的一个元素和A相关联。
magicians = ['alice', 'david', 'carolina']
for magician in magicians:
print(magician)
如此将会把列表中的每一个元素打印一遍
同时字符串也可以遍历:
第一种方式 直接遍历:
irl_str = "love You"
for everyChar in girl_str:
print everyChar
第二种方式 range或者xrange 把字符串长度传进去就行:
girl_str = "love You"
for index in range(len(girl_str)):
print girl_str[index]
第三种方式 enumerate
girl_str = "love You"
for index, everyChar in enumerate(girl_str):
print str(index) + everyChar
第三种方法较为特殊,有两个参数index,everyChar,其中everyChar是遍历的元素而index则是他的索引。 3.1.1 深入研究循环:
循环这种概念很重要,因为它是让计算机自动完成重复工作的常见方式之一。
例如,在前面magicians.py中使用的简单循环里,Python将首先读取其中的第一行代码:
for magician in magicians:
这行代码让Python获取列表magicians 中的第一个值'alice' ,并将其与变量 magician 相关联。接下来,Python读取下一行代码:
print(magician)
它让Python打印magician 的值,依然是'alice' 。鉴于该列表还包含其他值, Python返回到循环的第一行:
for magician in magicians:
python获取列表中的下一个名字'david',并将其与变量magician相关联,再执行下面这行代码:
print(magician)
Python再次打印变量magician 的值,当前为'david' 。接下来,Python再次执行整个循环,对列表中的最后一个值'carolina' 进行处理。至此,列表中没有其他的值了,因此Python接着执行程序的下一行代码。在这个示例中,for 循环后面没有其他代码,因此程序就此结束。
3.1.2 在for 循环中执行更多操作:
在for 循环中,想包含多少行代码都可以。在代码行for magician inmagicians 后面,每个缩进的代码行都是循环的一部分,将针对列表中的每个值都执行一次。因此,可对列表中的每个值执行任意次数的操作。
注意:for循环后若不缩减则不会加入到循环中,只会在循环结束后运行。 且注意不要遗漏for循环后的 : 这个符号
3.2 创建数值列表
列表的元素千变万化,可以是字符也可以是数字,本节将学习如何创建数字列表。
3.2.1 使用函数range()
函数range(A,B)包含了从A到B-1的所有数 也相当于列表[A,..........,B-1], 但需要注意这里只是相当并不是真正的列表。
Python中函数range() 让你能够生成一系列数。可以像下面这样使用函数range() 来打印一系列数:
for value in range(1, 5):
print(value)
3.3.2 使用range() 创建数字列表
要创建数字列表,可使用函数list() 将range() 的结果直接转换为列表。如果将range() 作为list() 的参数,输出将是一个数字列表。
numbers = list(range(1, 6))
print(numbers)
结果 [0,1,2,3,4,5]
使用函数range() 时,还可指定步长。为此,可给这个函数指定第三个参数,Python将根据这个步长来生成数。
number=list(range(0,10,2)
print(number)