python浏览上一句_python基础语法快速浏览

1、预览

1 import sys #导出sys模块

2

3 deftest():4 a,b,c=1,2,3 #一次给多个变量赋值

5 print(type(a),help(a),help(sys),sys.__file__)6 if b>1:7 print("hello world!")8 print(u"这句不是函数test的了")

python的代码很简洁,这里不再看到;和{},变量不需要声明类型,代码块是用缩进的方式实现,如上行5和def对齐,该行不属于函数test。

语句和控制流:

if、else、elif

for:历遍迭代器,如for x in [1,2,3] ,注意不支持for( i=0;i<10;i++)

while

continute\break

def:定义函数

class:定义类

pass:表示此行为空,不执行如何操作

yield:在迭代器函数内使用,用于返回一个元素

with:在一个场景中运行语句块

帮助:

可以用help()查看帮助,__file__查看出处,type()获取类型,dir()列出模块中定义的标识符(函数、类、变量)

数据类型转换:

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 )                 将一个整数转换为一个八进制字符串

字符串:

字符串可用单引号、双引号、三引号表示,其中三引号可表示多行,转义符用\,字符串格式化用%

str="hello world"str='hello world'str="""hello

world""" #多行

str=r"hello \n world" #\n本来表示换行但字符串前面加r保留原始字符,等于“hello \n world”

"hello %5s %5f"%("zeng",1.2) #在总长度为5,正数右对齐,负数左对齐,数字也有效

"hello %.3s %08.3f"%("zeng",1.2345) #限制总长度为3,超过部分将被切断,数字总长8,不够前面补0,3位小数点

注释:代码行用#注释,

函数和类的注释

deftest():"""在这里写函数的注释"""

passtest.__doc__ #查看函数的注释

2、序列

元组:a=(1,2,3)

a,b,c=(1,2,3) #a=1

a=(1,2,3) #arr[1]=1 失败 不能修改

a=tuple("abc") #=("a","b","c"),可将列表、字典

a=(1,) #只有一个元素的元组要加逗号

列表:a=[1,2,3]

列表提供的操作函数比较多,可以新增、修改、删除、排序、合并等。

字典:a={"id":1,"name":"zyy"}

age="age"user={"id":1,"name":"zyy",age:12,1:2} #键值对的集合构成字典

user=dict([("id",1),("name","zengyy")] #将键值列表转成字典

id=user["id"];user["id"]=2 #读写

集合:集合的元素是唯一的,可用set()将元组、列表、字典转成集合

切割:

arr[开始:结束:步长]  #输出不包含结束的索引,步长表示间隔,负数则反方向取

arr=[1,2,3,4,5,6]

arr[1:3] #输出[2,3]

arr[1:] #输出[2,3,4,5,6]

arr[:3] #输出[1,2,3]

arr[:-2] #输出[1,2,3,4]

arr[1:5:2] #输出[2,4]

3、表达式

历遍序列的表达式

([x for x in [1,2,3,4,5] if x not in [1,3]]) #输出[2,4,5]

({x*x:x*2 for x in [1,2,3,4] if x not in [1,2]}) #输出{16: 8, 9: 6}

lambda表达式:

f=lambda a,b:a*b

f(2,3) #输出6

4、函数

def plus(a,b=1,*c,**d): #c,d都是可变参数,d为命名可变参数

sumc=0;sumd=0print(c)for x in c: #列举参数列表(1,2)

sumc+=xprint(d,type(d))for x in d.keys(): #列举命名参数列表(a,b)

sumd+=d[x]return(sumc,sumd)

sum=plus(1,2,1,2,3,x=1,y=2) #参数c=(1,2,3),d={"x":1,"y":2}

5、类

class person():

def __init__(self):

pass

classuser(person): #继承person

__id=1#私有变量或函数已__开头非__结束

def __init__(self):print(type(self))

person.__init__(self)@property #读取属性的函数 u=user();u.id

def id(self):returnself.__id@id.setter #给属性复制的函数 u=user();u.id=123def id(self,v):

self.__id=v@id.deleter #删除属性时调用 del u.id

def id(self):

del self.__id

def __getattr__(self,name): #调用类中没有定义的属性时触发 如u.name,同样的函数有__setattr__,__delattr__if(name=="name"):return"zeng"else:return""

#id=property(getid, setid, delid, "属性id的注释") # 这句和上边的效果一样,getid,setid,delid分别调用3个函数@classmethod#类方法

defadd(self):print("add",type(self))

pass@staticmethod#静态方法

defupdate():

pass

defsave(self):print("this isf")user.save=save#类成员函数可以这样添加

u=user()

u.age=30 #age没有在前面定义,但这样是合法的

View Code

继承 ,class user(person):  user 继承person类

私有成员,以__开头非__结束

属性,注意上边属性的2中定义方法

类方法和静态方法,类方法第一个参数是self,该参数不是实例,而是类

类方法和属性是可以动态添加上去的

6、模块

模块可以是py文件或包含__init__.py的文件夹

import common #导入模块common,调用时为common.add(),即加上 模块名.

import common as c #导入common,调用时为c.add()

from common import add,plus #导入模块的部分类、函数等 可以直接利用该函数

from common import * #导入所有的类、函数等 可以直接利用该函数

if __name__=="__main__": #通过__name__获取模块名

pass

当导入文件夹模块时目录下的__init__.py将被执行

相对路径:from ..a import b  #..表示上级目录,a表示当前目录的上级目录的a文件夹

__all__:可以在模块中定义__all__=["b"],当通过“from a import *”方式导入时 只导入__all__定义的对象

7、迭代器和生成器

#迭代器

class myiter:

def __init__(self):

self.a=0defnext(self): #循环调用该函数

self.a+=1

if self.a>5: raise StopIteration #触发这个异常是停止迭代returnself.a

def __iter__(self): #说明可迭代returnselffor x inmyiter(): #调用next直到StopIteration异常print(x)

#生成器

def g(): #该函数返回生成器,调用g()该函数并没有执行,只有历遍时才执行

arr=[1,2,3]

for x inarr:

yield xfor x ing():print(x) #输出1,2,3

View Code

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值