文章目录
- 第一章 起步
- 第二章 变量和简单数据类型
-
- 第三章 列表简介
- 第四章 操作列表
-
- 第五章 if 语句
- 第六章 字典
- 第七章 用户输入和while循环
- 第八章 函数
- 第九章 类
- 第十章 文件和异常
- 第十二章 武装飞船
- 第十三章 外星人
- 第十四章 记分
- 第十五章 生成数据
- 第十六章 下载数据
- 第十七章 使用API
- 第十八章 Django入门
第一章 起步
- 只要代码清单中包含三个尖括号(>>>),就意味着输出来自终端会话
- 大多数Linux计算机中,都默认安装了Python
- 大多数OS X系统都默认安装了Python
- Windows系统并非都默认安装了Python
第二章 变量和简单数据类型
- 变量名只能包含字母、数字和下划线。不能以数字打头、不能包含空格、不要使用Python关键字和函数名
String
- 在Python中,用引号(包括单双引号)括起的都是字符串
- title()将每个单词的首字母都改为大写
- 制表符\t,换行符\n
- 去除空格strip()、lstrip()、rstrip()
- 在Python 2代码中,有些print语句包含括号,有些不包含。
数字
整数
用这个方法转化成字符串 str(age)
浮点数
第三章 列表简介
- 可以存储不同种类的元素
- 初始化列表 bicycles = [‘trek’, ‘cannondale’, ‘redline’, ‘specialized’]
- 在列表末尾添加元素 列表名.append(‘XXX’);
- 在列表中插入元素 列表名.insert(位置, ‘XXX’);
- 删除元素 del 列表名[位置](没有返回值);列表名.pop(位置),不加位置参数时可删除列表末尾的元素(有返回值)
- 根据值删除元素 列表名.remove(‘列表值’),只删除第一个出现的
- sort()对列表进行永久性排序(逆序 sort(reverse=True));sorted()对列表进行临时排序
- 要反转列表元素的排列顺序,可使用方法reverse(),永久性的
- 使用函数len()可快速获悉列表的长度
第四章 操作列表
- 遍历列表 for magician in magicians:
- list(range(1,5) )生成1-4的列表;list(range(2,10,2)),从2开始数,然后不断地加2,直到达到或超过终值(10)输出[2, 4, 6, 8]
- 数字列表 min() max() sum()
- squares = [value**2 for value in range(1,11)] [1, 4, 9, 16, 25, 36, 49, 64, 81, 100]
- 复制列表要用切片friend_foods = my_foods[:] 而不是 friend_foods = my_foods(相当于赋地址)
元组
- 不可变的列表被称为元组
- dimensions = (200, 50)
- 虽然不能修改元组的元素,但可以给存储元组的变量赋值
第五章 if 语句
- 检查特定值是否包含在列表中 in; 检查特定值是否不包含在列表中 not in
- if requested_toppings:(requested_toppings是一个列表,有元素true,无元素false)
第六章 字典
- 初始化字典 alien_0 = {‘color’: ‘green’, ‘points’: 5}
- 添加键—值对 alien_0[‘x_position’] = 0
- 修改字典中的值 alien_0[‘color’] = ‘yellow’
- 删除键—值对 del alien_0[‘points’]
- 遍历 for k, v in user_0.items();for k in user_0.keys();for v in user_0.values()
- 遍历字典时,键—值对的返回顺序也与存储顺序不同
- 按顺序遍历字典中的所有键 for name in sorted(favorite_languages.keys()):
- 为剔除重复项,可使用集合(set)。集合类似于列表,但每个元素都必须是独一无二的:for language in set(favorite_languages.values()):
- 有时候,需要将一系列字典存储在列表中,或将列表作为值存储在字典中,这称为嵌套
第七章 用户输入和while循环
- input() 括号里面是一个String,提示用户输入的信息是啥。(如果你使用的是Python 2.7,请使用raw_input()而不是input()来获取输入。)
- 获得输入信息为字符串,需要转化为需要的数据类型,如int()
- for循环是一种遍历列表的有效方式,但在for循环中不应修改列表,否则将导致Python难以跟踪其中的元素。要在遍历列表的同时对其进行修改,可使用while循环。通过将while循环同列表和字典结合起来使用,可收集、存储并组织大量输入,供以后查看和显示。
第八章 函数
- 形参——函数完成其工作所需的一项信息。实参是调用函数时传递给函数的信息。
- 关键字实参:describe_pet(animal_type=‘hamster’, pet_name=‘harry’)、describe_pet(pet_name=‘harry’, animal_type=‘hamster’)是等价的
- 默认值:def describe_pet(pet_name, animal_type=‘dog’):。使用默认值时,在形参列表中必须先列出没有默认值的形参,再列出有默认值的实参。这让Python依然能够正确地解读位置实参。
- function_name(list_name[:])。禁止函数修改列表,向函数传递列表的副本而不是原件。
- def make_pizza(toppings):。形参名toppings中的星号让Python创建一个名为toppings的空元组,并将收到的所有值都封装到这个元组中。
- 只需编写一条import语句并在其中指定模块名,就可在程序中使用该模块中的所有函数。 module_name.function_name()
- 导入特定的函数from module_name import function_0, function_1, function_2
- 指定别名的通用语法如下: from module_name import function_name as fn;import module_name as mn
- 给形参指定默认值时,等号两边不要有空格:def function_name(parameter_0, parameter_1=‘default value’);对于函数调用中的关键字实参,也应遵循这种约定:function_name(value_0, parameter_1=‘value’)
第九章 类
- 根据类来创建对象被称为实例化;首字母大写的名称指的是类;类中的函数称为方法
- 方法__init__()是一个特殊的方法,每当你根据Dog类创建新实例时,Python都会自动运行它
- OrderedDict实例的行为几乎与字典相同,区别只在于记录了键—值对的添加顺序。from collections import OrderedDict
- 类名应采用驼峰命名法,即将类名中的每个单词的首字母都大写,而不使用下划线。实例名和模块名都采用小写格式,并在单词之间加上下划线。
第十章 文件和异常
- 读取整个文件
with open('pi_digits.txt') as file_object:
contents = file_object.read()
print(contents)
相比于原始文件,该输出唯一不同的地方是末尾多了一个空行。为何会多出这个空行呢?因
为read()到达文件末尾时返回一个空字符串,而将这个空字符串显示出来时就是一个空行。要删
除多出来的空行,可在print语句中使用rstrip():
print(contents.rstrip())
删除空格用.strip()
2. 逐行读取 for line in file_object(会有空行);print(line.rstrip())
3. 创建一个包含文件各行内容的列表 lines = file_object.readlines()
4. ,为删除这些空格,可使用strip()
5. 。打开文件时,可指定读取模式(‘r’)、写入模式(‘w’)、附加模式(‘a’)或让你能够读取和写入文件的模式(‘r+’)。如果你省略了模式实参,Python将以默认的只读模式打开文件。
6. 对json文件进行处理:函数json.dump()接受两个实参:要存储的数据以及可用于存储数据的文件对象;json.load()将这个列表读取到内存中
7. 代码能够正确地运行,但可做进一步的改进——将代码划分为一系列完成具体工作的函数。这样的过程被称为重构
8. Python标准库中的模块unittest提供了代码测试工具。单元测试用于核实函数的某个方面没有问题;测试用例是一组单元测试,这些单元测试一起核实函数在各种情形下的行为都符合要求。良好的测试用例考虑到了函数可能收到的各种输入,包含针对所有这些情形的测试。全覆盖式测试用例包含一整套单元测试,涵盖了各种可能的函数使用方式。
9. import unittest
class ClassName(unittest.TestCase):
unittest.main()
所有以test_打头的方法都将自动运行
10. unittest.TestCase类包含方法setUp(),让我们只需创建这些对象一次,并在每个测试方法中使用它们。
第十二章 武装飞船
第十三章 外星人
第十四章 记分
第十五章 生成数据
第十六章 下载数据
第十七章 使用API
第十八章 Django入门