python3基础知识梳理

Python3基础知识梳理

1、第一个python程序的解释

hello.py

#! /usr/bin/python                     #python是一门解释语言可以使用./或source执行

# coding:utf-8                            #编码格式,python解释器自己匹配生效无所谓带-*-不带

 

print("hello python!!!\n")            #python2不支持这种输出,其输出不带小括号

 

2、注释

# 单行注释

‘’’

这是多行注释

‘’’

 

3、变量以及类型

变量就是用来存储数据的

变量的数据类型:

Numbers(数字):int、long、float、complex(复数)

布尔类型:True、False

String(字符串)

List(列表)

Tuple(元组)

Dictionary(字典)

Python中定义变量不需要说明其类型,系统会自动识别,type(变量名称)方法可以查看其类型

变量命名:最好使用驼峰法命名,不能使用关键字命名,最好不要用双下滑线命名(特别是开头)

 

4、输入输出

输入:

name = input(“请输入你的名字\n”)   提示语,换行(\n)  python3格式

name = raw_input(“请输入你的名字”)   python2格式

格式化输出:

name = “小明”

age = 8

print(“姓名:%s,年龄%d\n”%(name,age))    python3格式

print “姓名:%s,年龄%d\n”%(name,age)     python2格式

 

格式符号

转换

%f

浮点型

%s

通过str() 字符串转换来格式化

%d

有符号十进制整数

5、运算符

 

运算符

描述

实例

+

两个对象相加 a + b 输出结果 30

-

得到负数或是一个数减去另一个数 a - b 输出结果 -10

*

两个数相乘或是返回一个被重复若干次的字符串 a * b 输出结果 200

/

x除以y b / a 输出结果 2

//

取整除

返回商的整数部分 9//2 输出结果 4 , 9.0//2.0 输出结果 4.0

%

取余

返回除法的余数 b % a 输出结果 0

**

返回x的y次幂 a**b 为10的20次方, 输出结果 100000000000000000000

=

赋值运算符

把=号右边的结果给左边的变量 num=1+2*3 结果num的值为7

 

复合运算符

运算符

描述

实例

+=

加法赋值运算符

c += a 等效于 c = c + a

-=

减法赋值运算符

c -= a 等效于 c = c - a

*=

乘法赋值运算符

c *= a 等效于 c = c * a

/=

除法赋值运算符

c /= a 等效于 c = c / a

%=

取模赋值运算符

c %= a 等效于 c = c % a

**=

幂赋值运算符

c **= a 等效于 c = c ** a

//=

取整除赋值运算符

c //= a 等效于 c = c // a

 

6、数据类型转换

函数

说明

int(x [,base ])

将x转换为一个整数

long(x [,base ])

将x转换为一个长整数

float(x )

将x转换到一个浮点数

complex(real [,imag ])

创建一个复数

str(x )

将对象 x 转换为字符串

repr(x )

将对象 x 转换为表达式字符串

eval(str )

用来计算在字符串中的有效Python表达式,并返回一个对象

tuple(s )

将序列 s 转换为一个元组

list(s )

将序列 s 转换为一个列表

chr(x )

将一个整数转换为一个字符

unichr(x )

将一个整数转换为Unicode字符

ord(x )

将一个字符转换为它的整数值

hex(x )

将一个整数转换为一个十六进制字符串

oct(x )

将一个整数转换为一个八进制字符串

 

 

 

7、条件分支

    if condition:

          条件为真执行的操作

    else:

          条件为假执行的操作

    if condition:

         action

   elif condition:

         action

   else:

        action

 

python可以有效避免“悬挂else”(if else对应关系出错)

条件表达式(三元操作符)

       small = x ifx

       如果x

断言assert:当这个关键字后面的条件为假,程序自动崩溃并抛出异常

      assert 3>4

      可以利用他置入检查点

8、  循环语句

while 条件:

       满足条件执行语句

 

for 临时变量 in 可迭代对象:

       action

else:

       不满足条件action

 

break 跳出整个循环

continue 结束本次循环进入下一次循环

他们只能在循环中使用,作用于当前循环

9、 字符串 列表 元组 字典

字符串:

我想应该都不陌生,以下是他的一些常用的方法

count(sub) 统计字符串中出现sub的数量

endswith(sub) 以sub结束,返回布尔值

startswith(sub) 以sub开始,返回布尔值

find(sub) 查询sub是否存在,如存在返回下标,否者返回-1

join(sub) 以字符串做分割符,分割sub

replace(old, new) 替换

split(“sub”) 以sub分割字符串

strip() 去除字符串左右两边的空格

字符串切片的使用:>>> tes ="123456"   >>>tes[0:4]   结果:’1234’

列表:

List = [1, ‘dafd’, 12.6,True ]

列表的元素可以是不同类型的

列表是一个可变、可迭代的对象

 

列表的访问方式:下标索引,for循环迭代输出,while循环输出

列表的常见操作:

添加(append, extend, insert):

append()  在列表后面追加元素

extend()  可以将集合中的元素逐一添加到列表中去

insert(index, a) 在指定index前添加a元素

 

修改:List[index] = value

 

查找:in ,not in 返回布尔值

 

删除(del, pop, remove):

del 根据下标进行删除

pop 删除最后一个元素

remove 根据元素的值进行删除

 

排序(sort, reverse):

sort() 对自身进行排序,默认从小到大,参数reverse=True可改为倒序

reverse() 将list进行逆置

 

元组:

元组也可以存放不同的数据类型

元组只一个不可变、可迭代的对象

(python中不可修改元组的元素,元素不可删除,只能进行访问)

元组的访问方式:下标索引,for循环迭代输出,while循环输出

元组常见的操作:

元组切片(其原本数据不变):

>>> tt =(1,2,3,"dfsf",12.4)

>>> tt[1:3]

(2, 3)

 

删除整个元组:del 元组名

 

查询:in, not in 返回布尔值

 

count(sub) 查找元组中sub元素的数量

 

 

 

字典:

字典是按照键值对的方式存放数据的

字典是一个可变、可迭代的对象

字典常见的操作:

修改与添加:

变量名['键'] = 数据

若字典中‘键’存在,则修改其值

否则添加新的键值

 

删除(del, clear):

del 即可以删除字典元素,又可以删除整个字典

clear() 清空整个字典

 

len() 测试字典的长度,即键值对的个数

keys() 返回一个包含字典所有key的列表

values() 返回一个包含字典所有value的列表

items() 返回一个包含字典所有(键:值)元组的列表  例:[(‘name’:’fcd’),(‘age’:20)]

has_key(key) 判断字典中是否存在key,返回布尔值

 

10、函数

全局变量和局部变量:

Python同其他的语言一样存在全局变量和局部变量,但在python的函数中如果不改变全局变量的值,可以不必声明,直接引用即可。如果需要改变需要使用global先进行声明,再使用

函数定义与调用:

def 函数名():

       action

 

函数名()

同其他语言一样python的函数也有返回值、参数,不过python可以在函数内写说明文档

查看函数说明文档help(函数名)

与其他语言相比python比较有特点的参数:收集参数(*args), 自定义参数(**kwargs)

Python中内嵌函数:内部函数调用外部函数变量需要nonlocal声明

函数递归同其他语言一样

匿名函数:使用lambda 返回值:表达式 (这种短小的匿名函数可以当作函数参数进行传参)

 

11、模块导入

以random模块为例:

import random

s = random.randint(1,10) #随机产生一个1~10的整数

 

from random import randint()

s = randint(1,10)

12、文件

文件的打开与关闭:

  fp = open(“文件名称”,”打开方式”)

文件打开方式

访问模式

说明

r

以只读方式打开文件。文件的指针将会放在文件的开头。这是默认模式。

w

打开一个文件只用于写入。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。

a

打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。

rb

以二进制格式打开一个文件用于只读。文件指针将会放在文件的开头。这是默认模式。

wb

以二进制格式打开一个文件只用于写入。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。

ab

以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。

r+

打开一个文件用于读写。文件指针将会放在文件的开头。

w+

打开一个文件用于读写。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。

a+

打开一个文件用于读写。如果该文件已存在,文件指针将会放在文件的结尾。文件打开时会是追加模式。如果该文件不存在,创建新文件用于读写。

rb+

以二进制格式打开一个文件用于读写。文件指针将会放在文件的开头。

wb+

以二进制格式打开一个文件用于读写。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。

ab+

以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。如果该文件不存在,创建新文件用于读写。

 

关闭文件:fp.close()

 

文件的读写:

fp.write() 向文件中写数据

fp.read() 从文件中读数据

fp.readlines() 将文件中的数据一次性读取,把每一行当做一个元素存入列表

 

fp.tell() 获取文件当前的位置

fp.seek(offset,from) 定位操作

       offset:偏移量

       from: 0 表示文件开头

               1 表示当前位置

               2 表示文件末尾

 

文件系统操作:

模块:打包的文件系统

os模块:

常用方法:

os.getcwd():返回工作目录

os.chdir(path):改变工作目录

os.listdir(path=''):列出文件目录

os.mkdir(path):创建目录

os.makedirs(path):创建递归目录

os.remove(path):删除文件

os.removedirs(path):递归删除

os.rename(old,new):文件重命名

os.system(command):运行系统的shell命令

os.curdir:指代当前目录.等价于‘。’

os.pardir:指代上一级目录

os.sep:输出操作系统的路径分隔符

os.linesep:当前平台使用的行终止符

os.name:指出当前使用的操作系统

 

13、类和对象

定义类

class 类名:

       方法列表

类名开头最好大写

 

创建对象

对象名 = 类名()

 

属性:

Python中定义私有属性是变量名前加双下划线,如 __name

否则是公有属性

 

魔法方法:

__init__(self)方法:初始化函数,设置一些默认值。在创建对象后立即被调用

__str__(self)方法:设置对象的返回值

__del__(self)方法:当删除对象时,python解释器会自动调用

 

继承:

单继承:class NameClass(BaseClass1)

多继承:class NameClass(BaseClass1, BaseClass2,BaseClass3)

 

重写父类方法:

所谓重写,就是子类方法与父类方法同名,子类中的方法将会覆盖父类中的方法

 

多态

所谓多态就时定义与执行不一致

 

静态方法和类方法

类方法:类对象所拥有的方法,需要用装饰器@clsaamethod来标记为类方法,对于类方法第一个参数必须是类对象,一般以cls作为第一个参数。它可以通过实例对象引用,也可通过类对象引用

静态方法:需要通过@staticmethod类进行修饰,不必有参数。它可以通过实例对象引用,也可通过类对象引用

 

14、异常

常见标准异常:

AssertionErron/AttributeError/EOFError/IndexError/KeyError

/NameError/OSError/OverflowError/SyntaxError/TypeError/ZeroDivisionError

 

捕获异常:

try:

        检测范围

exceptException[as reason]:

        出现异常后的处理代码 print('代码')

exceptException[as reason];

        出现异常后的处理代码 print('daimai'+str(reason))       

except(Error1,Error2):

        处理异常的代码

 

try:

        检测范围

except Exception[as reason]:

        处理异常的代码

finally:

        无论如何都会处理的代码

 

raise语句抛出异常

raise Exception('指示代码')

 

你可能感兴趣的:(python笔记)