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():测试类的初始化方法,用于创建一个需要测试的类的单例。
 
 

转载于:https://www.cnblogs.com/anningkang/p/11159739.html

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值