zoukankan      html  css  js  c++  java
  • python编程从入门到精通读书笔记(基础知识)

    第一部分:基础知识
    学习python想要做的软件
     1.开机答题软件,(电脑一开机的输入密码,改为答题,初步设定为选择题,答对了才可以进入。)
     2.
     
    第二章
    2.1第一个程序:
     print("Hello Python World!")
     
    2.2变量
     命名:只能包含字母,数字,下划线,不能数字打头,不能有空格,不能用关键字,应简短有效
      注意:使用小写的python变量名比较好。
     方法:可对数据进行的操作。 格式为:变量名.方法名()     例: name.title()   
    2.3字符串
     格式:python中,用括号括起来的都是字符串,单引号和双引号都行。
     修改大小写:
      title()以首字母大写的方式显示每个单词,即将每个单词的首字母改为大写。
      upper() 全部大写
      lower() 全部小写
     拼接字符串:
      用+相连:  "hello," + "world"
     空白:非打印字符,包括 空格,制表符 ,换行符
     删除空白:
      去掉开头的空白: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:pythonStudylearning_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():测试类的初始化方法,用于创建一个需要测试的类的单例。
     
     
  • 相关阅读:
    C++运算符优先级
    UNREFERENCED_PARAMETER
    Eclipse无法查看源码 提示source not found
    JAVAWEB dbutils执行sql命令并遍历结果集时不能查到内容的原因
    JAVAWEB和数据库 Mysql连接不上的原因及解决方案
    电子设备 Kindle如何删除书籍或漫画
    JAVA StringUtils需要导入的包
    JAVAWEB servlet和jsp的权限访问控制
    JAVAWEB servlet验证登录时进行完全的非空判断防止空值登录
    JAVAWEB 遍历mysql结果集时 字段为0、false、null的问题
  • 原文地址:https://www.cnblogs.com/anningkang/p/11159739.html
Copyright © 2011-2022 走看看