1,第一步

  • cmd下运行python文件 :python 文件名。(在文件目录下)

  • 退出python解释器:ctrl + z exit() 回车

  • 进入帮助模式:help(),退出:q 或 回车

2,基础

  • 注释:是任何存在于#号右侧的文字

  • 字面常量

  • 数字:整数(int)与浮点数(float)

  • 字符串:单引号、双引号、三引号(可作多行注释)# 字符串是不可变的

  • 格式化方法:format()

format()方法所做的事情是将每个参数值替换至格式所在的位置

print('{} was {} years old when he wrote this book'.format(name, age))
print('{0:.3f}'.format(1.0/3)) # 保留小数点后三位
print('{0:_^11}'.format('hello')) #使用下划线填充,保持文字处于中间位置,长度为11
print('{name} wrote {book}'.format(name='Swaroop', book='A Byte of Python')) #基于关键词输出

print总是会以一个不可见的换行(\n)结尾,重复调用会在新一行中打印,可通过参数end指定以空白结尾:

print('a', end='')
print('b', end='')
  • 转义序列或续行:\

  • 原始字符串:在字符串前增加 r 或 R

  • Python中,一切皆对象(数字、字符串、函数)

3,运算符与表达式

  • 运算符:+(加)、-(减)、*(乘)、**(乘方)、/(除)、//(整除)、%(取模)、<<(左移)、>>(右移)、&(按位与)、|(按位或)、^(按位异或)、~(按位取反)、<、>、<=、>=、==、!=、not(布尔非)、and(布尔与)、or(布尔或)
  • 数值运算与赋值的快捷方式:a *=3 等价于 a = a * 3

4,控制流

  • if语句:if-elif-...-else
  • while语句
  • for循环:for...in...[else]
  • break:结束循环
  • continue:结束本次循环

5,函数

  • 定义:def
  • 函数参数:形参、实参
  • 局部变量:函数内的参数的作用域只在函数内部
  • global语句:声明一个全局变量
  • 默认参数:为函数参数设置默认参数,注意要在参数列表末尾才能被赋予默认参数值,因为参数值是按位置依次分配的
  • 关键字参数:使用关键字提供实参,不需要考虑参数的使用顺序。位置参数必须在关键字参数之前(形参和实参都是)
  • 可变参数: *param(星号参数)从此处开始直到结束的所有位置参数都被收集并汇集成一个“param”元组; **param(双星号参数)从此处开始直至结束的所有关键字参数都被收集并汇集成一个“param”字典
  • return语句
  • DocStrings(文档字符串):函数的第一逻辑行中的字符串为该函数的文档字符串。可使用函数的__doc__属性来获取其文档字符串。(约定:第一行以某一大写字母开始,以句号结束,第二行为空行,后面的第三行是更详细的解释说明。)

6,模块

  • import:sys.argv(命令行参数列表)、sys.path(系统环境变量)、os.getcwd()(查看当前目录)
  • from..import:尽量避免使用。from..import *:不会导入双下滑线属性
  • 模块的__name__:可以通过这一属性来使模块以不同的方式运行,是独立运行的还是从其他模块导入的,也即是运行的那个模块其__name__为__main__,其他导入的模块__name__为其模块名
  • dir()函数:返回对象(任何对象:模块、类、函数、数字、字符串)的名称列表(导入的模块、类、函数、变量),无参数时返回当前模块的名称列表。vars()也可以返回这些值的属性,但只是可能,并不能针对所有类都能正常工作。
  • 包:是指包含模块与一个特殊的__init__.py文件的文件夹,能够方便地分层组织模块。

7,数据结构----列表、元组、字典、集合

  • 列表(可变的):是一种用于保存一系列有序项目的集合
  • 元组(不可变):用于将多个对象保存到一起,通常用于保证某一语句或某一用户定义的函数可以安全的采用一组数值,即元组内的数值不会改变。# 注意:若赋值只有一个元素的元组需要加逗点以区分括号(2,)
  • 字典:键值对且唯一,只能使用不可变的对象(如字符串)作为字典的键值,可使用可变或不可变的对象作为字典中的值。# 字典的items()方法访问键值对;in 检查某对键值对是否存在;del 删除某一键值对
  • 序列(列表,元组,字符串):序列的主要功能是资格测试,即 in 或 not in 表达式和索引操作。切片运算符:[开始位置 : 结束位置 : 步长]。# 注意:索引和步长可以是负数;数字可选,冒号必须有;切片包括开始位置不包括结束位置。
  • 集合:简单对象的无序集合,当集合中的项目存在与否比起次序或次数更重要时,使用集合。
  • 引用:当创建一个对象并将其分配给某个变量时,变量只会查阅某个对象,并且它不会代替对象本身。如:列表的赋值不会创建副本,必须使用切片操作生成一份序列的副本。
  • 有关字符串的更多内容:startswith()方法用于查找字符串是否以给定的字符串内容开头;in 运算符用以检查给定的字符串是否是其中一部分;find()方法用于定位字符串中给定的字符串的位置,找不到返回-1;join()方法将序列中的项目(如字符串列表)进行连接。

9,面向对象编程

  • class关键字创建一个类:从属于对象或类的变量叫字段(从属于实例的叫实例变量:__init__初始化的,从属于类的叫类变量);使用属于类的函数实现某些功能,这种函数叫方法;他们都是类的属性。
  • self:这种特定的变量引用的是对象本身。# 假如有一个MyClass的类,类下有一个实例myobject,当调用这个对象的方法时,如myobject.method(arg1, arg2)时,Python将会自动将其转换成MyClass.method(myobject, arg1, arg2),这就是self的全部特殊之处。
  • __init__ 方法:会在类的对象被实例化时立即运行。初始化类属性中的实例变量。
  • 类变量与对象变量:类变量是共享的,可以被属于该类的所有实例访问,只有一个副本;对象变量不会被共享,由类的每一个独立的实例拥有,每个实例都有属于它自己的字段的副本。# 注意:当对象变量与类变量相同时,类变量会被隐藏。# 除了使用【类.变量】还可以使用【self.__class__.类变量】,因为每个对象都通过【self.__class__】属性引用它的类。
  • 使用装饰器将类标记为类方法:@classmathod
  • 私有变量:形如__privatevar。# 注意:约定任何在类或对象中使用的变量以下划线开头,其他非此格式的名称都是公开的。
  • 继承:在类后面跟一个包含基类的元组。显式的调用基类的__init__方法进行初始化基类,如果没有定义__init__,将会自定调用基类的构造函数。调用基类方法是通过方法名前面加上基类名作为前缀,再传入self来调用基类的方法,此时可以将子类看作父类的实例。# 注意:Python总是从当前的世纪类型中开始寻找方法,若找不到就会在父类中依顺序逐个寻找。

10,输入与输出

  • input() 和print():对于输入,还可以使用str类的各种方法,如rjust
  • 文件:file类的对象,read、readline、write、close、open等方法。
  • pickle标准模块:可以将任何纯python对象存储到一个文件中,并在稍后将其取回。# open以wr模式打开你文件,然后调用pickle的dump函数,这一过程叫做封装(Pickling)。使用pickle的load函数接受返回的对象,这个过程叫拆封(Unpickling)。
  • Unicode类型:当与互联网上的其他计算机通信时,需要将Unicode转换为utf-8格式。在程序顶端注释 # encoding=utf-8 表示程序使用utf-8。# io模块,io.open(.., .., encoding='utf-8')

11,异常

  • 错误、异常:EOF(end of file,文件结尾符号)ctrl + d;KeyboardInterrupt ctrl + c
  • 处理异常:try..except..[else],每个try至少要有一个except
  • 抛出异常(raise):能够引发的错误或异常必须是直接或间接从属于Exception类的派生类 # except..as..
  • try..finally:在处理异常后finally后的语句将执行。如读取文件时中断,在finally中关闭文件。也即是在try中获取资源,在finally中释放资源。# with语句,with open() as f: 自动完成

12,标准库

  • sys模块:包括一些针对特定系统的功能。sys.argv,sys.version_info
  • 日志模块logging:更多参考Python标准库文档

13,更多

  • 传递元组:如函数返回不同的值,可使用元组返回
  • 特殊方法:__getitem__, __init__, __del__, __str__, __lt__, __len__
  • 单语句块:语句块只有一句或较少时,可写在同一行
  • lambda语句:创建一个新的函数对象,后跟一个参数和表达式
  • points = [{'x': 2, 'y': 3},
    {'x': 4, 'y': 1}]
    points.sort(key=lambda i: i['y'])
    print(points) 输出:
    [{'y': 1, 'x': 4}, {'y': 3, 'x': 2}]
  • 列表推导:
listone = [2, 3, 4]
listtwo = [2*i for i in listone if i > 2]
print(listtwo) 输出:
[6, 8]
  • 在函数中接收元组与字典:*前缀将函数的其他额外参数都传递到args元组里,**前缀将额外的参数当做字典的键值对。
>>> def powersum(power, *args):
... '''Return the sum of each argument raised to the specified power.'''
... total = 0
... for i in args:
... total += pow(i, power)
... return total
...
>>> powersum(2, 3, 4)
25
>>> powersum(2, 10)
100
  • 装饰器
  • 下一步

Python代码规范

简明Python教程 - 学习笔记的更多相关文章

  1. 《简明python教程》笔记一

    读<简明Python教程>笔记: 本书的官方网站是www.byteofpython.info  安装就不说了,网上很多,这里就记录下我在安装时的问题,首先到python官网下载,选好安装路 ...

  2. 简明Python教程自学笔记——命令行通讯录

    [前言]学习Python已经有一段时间了,相关的书籍资料也下载了不少,但是没有一本完整的看完,也没有编出一个完整的程序.今天下午比较清闲就把<简明Python教程>看了一遍,然后根据书里面 ...

  3. 简明 Python 教程--学习记录

    注意,我们在print语句的结尾使用了一个 逗号 来消除每个print语句自动打印的换行符.这样做有点难看,不过确实简单有效. print # prints a blank line 注意,没有返回值 ...

  4. 《简明python教程》笔记二

    面向对象的编程: 类和对象是面向对象编程的两个主要方面.类创建一个新类型,而对象是这个类的实例.对象可以使用普通的属于对象的变量存储数据.属于一个对象或类的变量被称为域.对象也可以使用属于类的函数来具 ...

  5. 《简明python教程》笔记三

    图形软件(GUI工具) 可供选择的GUI: 一.PyQT 是Qt工具包的python绑定.Qt工具包是构建KDE的基石.linux下使用免费,windows下使用收费. 二.PyGTK 是GTK+工具 ...

  6. 《简明 Python 教程》笔记

    基础 字符串:python 中字符串可以用单引号.双引号和三个引号括起来,其中三个引号可以用来指定多行的字符串. print('hello'* 3) 连续打印 3 个 hello 格式化:print ...

  7. 莫烦python教程学习笔记——保存模型、加载模型的两种方法

    # View more python tutorials on my Youtube and Youku channel!!! # Youtube video tutorial: https://ww ...

  8. 莫烦python教程学习笔记——validation_curve用于调参

    # View more python learning tutorial on my Youtube and Youku channel!!! # Youtube video tutorial: ht ...

  9. 莫烦python教程学习笔记——learn_curve曲线用于过拟合问题

    # View more python learning tutorial on my Youtube and Youku channel!!! # Youtube video tutorial: ht ...

随机推荐

  1. 全网最全的Java SpringBoot点赞功能实现

    前言 最近公司在做一个NFT商城的项目,大致就是一个只买卖数字产品的平台,项目中有个需求是用户可以给商品点赞,还需要获取商品的点赞总数,类似下图 起初感觉这功能很好实现,无非就是加个点赞表嘛,后来发现 ...

  2. 利用SelectPdf插件将网页生成PDF

    简介 适用于.NET Framework和.NET Core的HTML至PDF转换器 SelectPdf提供的在线html到pdf转换器使用.NET的Select.Pdf库中的html到pdf转换器. ...

  3. 【webpack4.0】---webpack的基本使用(四)

    一.什么是babel babel是一个编译javascript的平台,它可以编译代码帮你达到以下目的 1.让你使用最近的javascript代码(ES6 ES7) 而不用管新的标准浏览器是否支持   ...

  4. 『无为则无心』Python基础 — 43、文件备份的实现

    目录 1.需求 2.步骤 3.代码实现 (1)接收用户输入目标文件名 (2)规划备份文件名 (3)备份文件写入数据 (4)思考 (5)完整编码 4.再来一个小练习 1.需求 用户输入当前目录下任意文件 ...

  5. MySQL更新数据时,日志(redo log、binlog)执行流程

    1:背景 项目需要做Es和数据库的同步,而手动在代码中进行数据同步又是Es的一些不必要的数据同步操作和业务逻辑耦合,所以使用的了读取mysql的binlog日志的方式进行同步Es的数据. 问题1:根据 ...

  6. Redis 学习笔记(四)RDB 和 AOF 持久化机制

    一.Redis 持久化简介 Redis 的持久化功能是区别于 Memcached 显著特性,数据持久化可以保证系统在发生宕机和重启后数据不会丢失,对于 redis 这种存储在内存中的数据库显得尤为重要 ...

  7. 深入聊一下const关键字

    const是一个C语言的关键字,它限定一个变量不允许被改变.使用const在一定程序上可以提高程序的健壮性,另外,在观看别人代码的时候,清晰理解const所起的作用,对理解别人的程序有所帮助. 1.c ...

  8. 「NOI十联测」深邃

    「NOI十联测」深邃 要使得最大的连通块最小,显然先二分答案. 先固定1结点为根. 对于一个果实,显然是先处理子树中未分配的点,再向外延伸. 每个结点记录一个\(si[]\),表示子树中未分配的点数, ...

  9. High ASCII字符从bat文件到dos控制台的转化问题

    背景是这样的,由于项目需要,需要用silent install的方式安装一些程序,而安装参数中有一些High ASCII字符,如ùé.通过代码,使用默认编码(ANSI,说明下,我用的是法语的系统)创建 ...

  10. term&match得区别 text&keyword区别

    Text 概念 Text 数据类型被用来索引长文本,比如说电子邮件的主体部分或者一款产品的介绍.这些文本会被分析,在建立索引前会将这些文本进行分词,转化为词的组合,建立索引.允许 ES来检索这些词语. ...