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. Spring 官宣发布 Spring Boot 3.0 第一个里程碑 M1,从 Java 8 提升到 Java 17!

    Spring官方于2022年1月20日发布Spring Boot 3.0.0-M1版本,预示开启了Spring Boot 3.0的里程碑,相信这是通往下一代Spring框架的激动人心的旅程. 接下来一 ...

  2. K8S访问机制

    pod -> endpoint -> service -> namespace -> svc.cluster.local .....在 a 名称空间,访问 b 名称空间的 b1 ...

  3. MySQL开发篇,存储引擎的选择真的很重要吗?

    前言 谁说MySQL查询千万级别的数据很拉跨?我今天就要好好的和你拉拉家常,畅谈到深夜,一起过除夕!这篇文章也是年前的最后一篇,希望能带给大家些许收获,不知不觉查找文档和参考实体书籍就写了这么多,自己 ...

  4. uni微信小程序优化,多个分包在用的公共代码该放在哪?

    公共的代码包括公用的vue组件和js代码,从维护性的角度来说应该放到主包才对, 但是主包有大小限制,如果把2个分包都在用的代码放到主包里面那2M很快就满了. 所以该放在哪?我的方案是从维护的角度放在主 ...

  5. 尚硅谷全套课件整理:Java、前端、大数据、安卓、面试题

    目录 Java 尚硅谷 IT 精英计划 JavaSE 内部学习笔记.pdf 尚硅谷 Java 基础实战之银行项目.pdf 尚硅谷 Java 技术之 JDBC.pdf 尚硅谷 Java 技术之 Java ...

  6. jQuery EasyUI 的editor组件使用

    问题:最近在优化一个项目时,前端用到了 easyui这个插件来实现表格,搞了很久,才实现出一部分功能,但是还是有很多地方不熟悉,故记录一下,以后再研究 第一个实例------------------- ...

  7. Redis实现延迟对列

    一.应用场景: 订单超过 30 分钟未支付,则自动取消. 外卖商家超时未接单,则自动取消. 医生抢单电话点诊,超过 30 分钟未打电话,则自动退款.等等场景都可以用定时任务去轮询实现,但是当数据量过大 ...

  8. html重点标签总结

    一. iframe 的学习 iframe通俗的的理解就是,可以在页面里面嵌套新的页面 它的使用会使页面变卡,一般会有一个固定的尺寸,默认的.他也属于可替换元素行列.我们可以通过CSS来改变尺寸 fra ...

  9. 获取联系人列表的时候contact_id出现null的值

    因为删除联系人只是把它的contact_id设置为null,所以只要手机上删除过联系人id就会有null,用之前先判断是不是null就好了

  10. nodejs的安装及创建项目

    安装windows nodejs教程:1.官网下载windows安装:2.CMD中输入:npm -g install koa -generator 创建项目:1.首先新建文件夹2.CMD中输入CD 文 ...