python可以这样学读后感_python编程从入门到精通读书笔记(基础知识)

第一部分:基础知识

学习python想要做的软件

1.开机答题软件,(电脑一开机的输入密码,改为答题,初步设定为选择题,答对了才可以进入。)

2.

第二章

2.1第一个程序:

print("Hello Python World!")

2.2变量

命名:只能包含字母,数字,下划线,不能数字打头,不能有空格,不能用关键字,应简短有效

注意:使用小写的python变量名比较好。

方法:可对数据进行的操作。 格式为:变量名.方法名() 例: name.title()

2.3字符串

格式:python中,用括号括起来的都是字符串,单引号和双引号都行。

修改大小写:

title()以首字母大写的方式显示每个单词,即将每个单词的首字母改为大写。

upper() 全部大写

lower() 全部小写

拼接字符串:

用+相连: "hello," + "world"

空白:非打印字符,包括 空格,制表符\t,换行符\n

删除空白:

去掉开头的空白:lstrip()

去掉结尾的空白:rstrip()

去掉两端的空白:strip()

2.4数字

运算:+ - * / ** 备注:两个乘号(**)表示乘方运算

将数字转为字符串: str(11)

在python3中,可以直接运算,一般都对,在python2中则要考虑浮点数和整数的区别。

2.5注释

单行注释: #这是注释

多行注释: '''这是注释'''

import this

第三章 列表简介

3.1列表

定义:一系列按特定顺序排列的元素

格式:用方括号表示列表,并用逗号来分割其中的元素

例:bicycles = ['trek','cannondale','redline','specfalized']

访问:列表是有序集合,通过索引访问,索引从0开始,-1返回最后一个元素

例:bicycles = ['trek','cannondale','redline','specfalized']

print(bicycles[0])

3.2操作列表

motorcycles = ['honda','yemaha','suzuki']

修改: motorcyctes[0] = 'ducati'

添加:

末尾追加:append() motorcycles.append('ducati')

中间插入:insert() motorcycles.insert(0,'ducati')

删除:

直接去掉:del del motorcycles[0]

取出末尾的元素:pop() motorcycle = motorcycles.pop()

取出任一位置元素:pop() motorcycle = motorcycles.pop(1)

根据值删除:remove() motorcycles.remove('ducati')

3.3列表排序

永久排序: 字母正序:sort() 字母倒序:sort(reverse=True) 例:list.sort()

临时排序: 字母正序:sorted() 字母倒序:sorted(reverse=True) 例:list.sorted()

反转排序: reverse() 例:reverse(list)

获取长度: len() 例:len(list)

第四章 操作列表

4.1 遍历

for循环:增强for循环和普通for循环

例: for name in names:

print(name)

or: for i in range(0,len(names)):

print(names[i])

4.2 注意事项

命名:尽量用单数和复数,好区别:如 for cat in cats:

缩进:for循环中执行的代码必须缩进,才能正常循环。

冒号:for循环语句的冒号是标识循环开始的,必须有。

4.3数值列表

列表很适合存储数字集合。

一个范围: range(m,n) 注:m-开始 n-结尾 含头不含尾

指定步长: range(m,n,x) 注:m-开始 n-结尾 x-步长 含头不含尾

装换为列表:numbers = list(range(1,6))

统计函数:

digits = [1,2,3,4,5,6,7,8,9,0]

min(digits)

max(digits)

sum(digits)

列表解析: 用一行代码生成列表

例: aquares = [value for value in range(0,10)]

4.4 切片

定义:通过指定索引,获取列表的一个子集

players = ['charles','martina','michael','florence','eli']

players[0:3],players[1:4],players[:3],players[2:],players[-3:],players[:]

遍历:for player in players[:3]:

复制列表:创建一个包含整个列表的切片 [:]

my_foods = ['pizza','falafel','carrot cake']

friend_foods = my_foods[:]

4.5 元组

定义:不可修改的列表,用圆括号()来包裹标识. dimensions = (200,50)

遍历:for dimension in dimensions:

修改元组变量:重新给变量赋值

4.6 代码编写格式指南

PEP8

缩进:4个空格

行长: 不超过80字符

注释行长不超过72字符

空行:分割代码块

第五章 if语句

5.2 条件测试:值为 Ttue 或 Flase 的表达式。

相等:=

不等:!=

多条件:and age>22 and age<36

or age>22 or age==18

列表中是否包含特定值:in not in

例:requested = ['1','2','3']

'1' in requested

'2' not in requested

布尔表达式:

5.3 if语句

if

if-elif

if-elif-else

5.4 if处理列表

检查特殊元素:循环套if

确定列表不为空:if套循环

第六章 字典

6.1 定义:用花括号包裹的一系列键值对。键值之间用冒号分隔,键值对之间用逗号分隔。

例: alien_0 = {'color':'green','points':'5'}

6.2 访问:print(alien_0['color'])

添加:依次指定字典名,用方括号括起的见和相关联的值

例:alien_0['x_position'] = 0

修改:依次指定字典名,用方括号括起的键和与该键相关联的新值

删除:del 字典名[要删除的键]

6.3 遍历:

遍历所有键值对:items():返回一个键值对列表

例: for key,value in alien.items():

遍历所有键:keys():返回一个键的列表:

例:for key in alien.keys(): 或者 for key in alien:

按顺序遍历所有键:用sorted()先排序再遍历

例: for key in sorted(alien.keys()):

遍历字典中的所有值:values(): 返回一个值的列表

例: for value in alien.values():

剔除重复项再遍历值: set()

例: for value in set(alien.values()):

6.4 嵌套:

定义:将一系列字典存储在列表中,或将列表作为值存储在字典中。

字典列表:

在字典中存储列表:

在字典中存储字典:

第7章 用户输入和while循环

7.1用户输入字符串: input()

字符串转数字 : int()

求模运算符: %

7.2 while循环

格式: while 条件:

使用标志:

结束循环:break

结束循环余下代码,开始下个循环 continue

用途:在循环的途中修改字典,列表。

第8章 函数

8.1 定义:带名字的代码块。用于完成具体的工作

格式:

def 函数名(参数):

代码块

8.2 实参和形参

实参:调用函数的时候传递给函数的实际值。

形参:定义函数的时候括号中的变量名。

关键字实参:在调用方法的时候指明形参。格式类似于: 函数名(形参=实参)

默认值:在定义函数的时候设置默认值。 格式类似于: def 函数名(形参=默认值)

实参不匹配错误:实参数量不对时。

8.3 返回值:函数中用return关键字返回值,调用方法的时候用变量接收

实参可选,不必填的参数设置默认值

8.4 传递列表

8.5 传递任意数量的实参

def make_pizza(*toppings): *表明这个是一个参数的元组。可以接受任意数量的参数

def make_pizza(size,*suppings): 结合使用位置实参和任意数量实参

def_build_profile(first,last,*user_info): 使用任意数量的关键字实参,user_info传递键值对

8.6 将函数存储在模块中

模块:扩展名位.py的文件。

导入整个模块:在同一目录层级下, 直接导入: import module_name

使用模块中的函数: module_name.function_name()

导入特定函数: from module_name import function_name

from module_name import function_0,function_1,function-2

使用as给函数指定别名:from module_name import function_name as 别名

使用as给模块指定别名:import module_name as 别名

导入模块中所有函数: from module_name import *

8.7 函数编写指南:

函数名称具有描述性,只用小写字母和下划线。

必须有注释,在函数定义后面。文档字符串格式。

函数之间用两行空行分开。

第9章 类

类:表示现实世界中的事物和情景。定义一大类对象都有的通用行为。

对象:基于类创建,具备类的通用行为和独特个性。

实例化:根据类来创建对象。

9.1 创建和使用类

定义: class Dogs(): #类名首字母要大写 class ClassName():

方法: def __init__(self,name,age): #构造方法,self就是this。 可供类中所有方法使用。

error: Dog() takes no arguments 注意init两边是双下划线,

属性:name,age 可以通过实例访问的变量。 #self.age = age self.name = name

9.2 根据类创建实例

dog = Dogs('豆豆',6)

修改属性的值:

直接通过实例进行修改:

my_new_car.odometer_reading = 23

通过方法进行设置:

my_new_car.update_odometer(23)

通过方法进行递增:

my_new_car.increment_odometer(100)

9.3 继承

一个类继承另一个类时,它将自动获得另一个类的所有属性和方法。原有的类称为父类,新类

称为子类,子类继承了父类的所有属性和方法,同时还可以定义自己的属性和方法。

创建子类时,父类必须包含在当前文件中,且位于子类前面。定义子类时,在括号中指定父类的名

字。

方法__init__()必须接受创建父类所需的信息。且在方法中有一个特殊函数super().__init__()

将父类和子类关联起来。让子类实例包含父类的所有属性。父类也叫超类。

重写:子类中和父类名字相同的方法。

将实例用过属性:将类的一部分作为一个独立的类提取出来。

9.4 导入类

将类存储在模块中,然后在模块中导入类。

导入单个类:

from car import Car

my_car = Car(...)

在一个模块中存储多个类:from car import Car,ElectricCar

导入整个模块:

import car

my_beetle = car.Car(...)

导入模块中的所有类: from module_name import *

在一个模块中导入另一个模块:

9.5 Python 标准库

顺序字典: from collections import OrderedDict

9.6 类编码风格

类名:驼峰命名法,首字母大写,不用下划线

实例名/模块名:小写,单词之间用下划线隔开

类注释:类定义后面加文档字符串,描述类的功能。

分割方法:一个空行

分割类:两个空行

导入顺序:先导入标准模块库,再添加一个空行,再导入自己编写的模块。

第10章 文件和异常

异常:Python创建的特殊对象,用于管理程序运行时出现的错误。

10.1 从文件中读取数据

read() : 一次性读取整个文件内容。推荐使用read(size)方法,size越大运行时间越长

readline() :每次读取一行内容。内存不够时使用,一般不太用

readlines() :一次性读取整个文件内容,并按行返回到list,方便我们遍历

全部读取:

with open('pi_digits.txt') as file_object:

contents = file_object.read()

print(contents)

with 标识用,不用手动打开(open),关闭(close)

#相对路径报错,不知道是不是notepad++的问题。绝对路径可以找到文件。直接点击文件运行也可以,就是在

# notepad++中运行找不到。

逐行读取:

with open(filename) as file_object:

for line in file_object:

print(line.rstrip())

注:文件读取的本质是用迭代器一个个读,因而一个文件读到最后以后,再调用读取的方法,就读不到东西了。

放到列表中:

with open(filename) as file_object:

lines = file_object.readlines()

10.2 写入文件

write(string)需要传入一个字符串做为参数,否则会报错

writelines(list)既可以传入字符串又可以传入一个字符序列,并将该字符序列写入文件

注意 :writelines()必须传入的是字符序列(字符串列表),不能是数字序列

with open('F:\pythonStudy\learning_python.txt','a') as file_object:

file_object.write('追加了一句话。')

open参数: a - 追加 w - 直接写 r - 只读

10.3 异常

格式: try-exists-else

例: try:

print(5/0)

exists:

print("You can't divide by zero!")

else:

print('success')

10.4 存储数据

json模块用来存取数据,很方便的转为python可以读取的数据类型。

存:json.dump(数据,文件)

取:json.load(文件)

重构:代码写好后,将代码划分为一系列完成具体工作的函数,这样的过程称为重构。

第11章 测试代码

测试模块:unittest

单元测试:用于核实函数的某个方面没有问题。

测试用例:是一组单元测试。

全覆盖式测试用例:

具体用法:

1.导入unittest测试模块。导入要测试的方法或类。

2.创建测试类,继承了unittest.TestCase类。没有__init__方法,直接写测试方法。测试方法的名字用test开头

后面的单词最好具有描述性,说清这个方法是测试什么的。

3.在测试方法中调用需要测试的方法,然后用断言方法来判断是否通过测试

断言方法: self.assertEqual(方法返回值,预计返回值)

4.在最后面用 unittest.main() 启用这个测试用例。

断言方法:

assertEqual(a,b) 核实 a == b

assertNotEqual(a,b) 核实 a != b

assertTrue(x) 核实 x 为 True

assertFalse(X) 核实 x 为 False

assertIn(item,list) 核实 item 在 list 中

assertNotIn(item,list) 核实 item 不在 list 中

setUp():测试类的初始化方法,用于创建一个需要测试的类的单例。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值