简明Python教程 - 学习笔记

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代码规范

 

 

 

 

 

 

 

 

 

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值