52个python基础代码,你全都知道吗?(下)

Hello,大家好,我是Alex~

今天我继续上次分享的52个基础代码剩下的22个来进行分享

一起来看看都有哪些吧!

31 一键帮助

返回对象的帮助文档

In [1]: help(xiaoming)

Help on Student in module __main__ object:

class Student(builtins.object)

Methods defined here:

__init__(self, id, name)

__repr__(self)

Data descriptors defined here:

__dict__

dictionary for instance variables (if defined)

__weakref__

list of weak references to the object (if defined)

32 对象门牌号 返回对象的内存地址

In [1]: id(xiaoming)

Out[1]: 98234208

33 获取用户输入 获取用户输入内容

In [1]: input()

aa

Out[1]: 'aa'

34 转为整型 int(x, base =10) , x可能为字符串或数值,将x 转换为一个普通整数。如果参数是字符串,那么它可能包含符号和小数点。如果超出了普通整数的表示范围,一个长整数被返回。

In [1]: int('12',16)

Out[1]: 18

35 isinstance判断object是否为类classinfo的实例,是返回true

In [1]: class Student():

...: def __init__(self,id,name):

...: self.id = id

...: self.name = name

...: def __repr__(self):

...: return 'id = '+self.id +', name = '+self.name

In [2]: xiaoming = Student(id='001',name='xiaoming')

In [3]: isinstance(xiaoming,Student)

Out[3]: True

36 父子关系鉴定

In [1]: class undergraduate(Student):

...: def studyClass(self):

...: pass

...: def attendActivity(self):

...: pass

In [2]: issubclass(undergraduate,Student)

Out[2]: True

In [3]: issubclass(object,Student)

Out[3]: False

In [4]: issubclass(Student,object)

Out[4]: True

如果class是classinfo元组中某个元素的子类,也会返回True

In [1]: issubclass(int,(int,float))

Out[1]: True

37 创建迭代器类型使用iter(obj, sentinel), 返回一个可迭代对象, sentinel可省略(一旦迭代到此元素,立即终止)

In [1]: lst = [1,3,5]

In [2]: for i in iter(lst):

...: print(i)

...:

1

3

5

In [1]: class TestIter(object):

...: def __init__(self):

...: self.l=[1,3,2,3,4,5]

...: self.i=iter(self.l)

...: def __call__(self): #定义了__call__方法的类的实例是可调用的

...: item = next(self.i)

...: print ("__call__ is called,fowhich would return",item)

...: return item

...: def __iter__(self): #支持迭代协议(即定义有__iter__()函数)

...: print ("__iter__ is called!!")

...: return iter(self.l)

In [2]: t = TestIter()

In [3]: t() # 因为实现了__call__,所以t实例能被调用

__call__ is called,which would return 1

Out[3]: 1

In [4]: for e in TestIter(): # 因为实现了__iter__方法,所以t能被迭代

...: print(e)

...:

__iter__ is called!!

1

3

2

3

4

5

38 所有对象之根object 是所有类的基类

In [1]: o = object()

In [2]: type(o)

Out[2]: object

39 打开文件返回文件对象

In [1]: fo = open('D:/a.txt',mode='r', encoding='utf-8')

In [2]: fo.read()

Out[2]: '\ufefflife is not so long,\nI use Python to play.'

mode取值表:

40 次幂base为底的exp次幂,如果mod给出,取余

In [1]: pow(3, 2, 4)

Out[1]: 1

41 打印

In [5]: lst = [1,3,5]

In [6]: print(lst)

[1, 3, 5]

In [7]: print(f'lst: {lst}')

lst: [1, 3, 5]

In [8]: print('lst:{}'.format(lst))

lst:[1, 3, 5]

In [9]: print('lst:',lst)

lst: [1, 3, 5]

42 创建属性的两种方式返回 property 属性,典型的用法:

class C:

def __init__(self):

self._x = None

def getx(self):

return self._x

def setx(self, value):

self._x = value

def delx(self):

del self._x

# 使用property类创建 property 属性

x = property(getx, setx, delx, "I'm the 'x' property.")

使用python装饰器,实现与上完全一样的效果代码:

class C:

def __init__(self):

self._x = None

@property

def x(self):

return self._x

@x.setter

def x(self, value):

self._x = value

@x.deleter

def x(self):

del self._x

43 创建range序列

range(stop)

range(start, stop[,step])

生成一个不可变序列:

In [1]: range(11)

Out[1]: range(0, 11)

In [2]: range(0,11,1)

Out[2]: range(0, 11)

44 反向迭代器

In [1]: rev = reversed([1,4,2,3,1])

In [2]: for i in rev:

...: print(i)

...:

1

3

2

4

1

45 四舍五入四舍五入,ndigits代表小数点后保留几位:

In [11]: round(10.0222222, 3)

Out[11]: 10.022

In [12]: round(10.05,1)

Out[12]: 10.1

46 转为集合类型返回一个set对象,集合内不允许有重复元素:

In [159]: a = [1,4,2,3,1]

In [160]: set(a)

Out[160]: {1, 2, 3, 4}

47 转为切片对象class slice(start, stop[, step])

返回一个表示由 range(start, stop, step) 所指定索引集的 slice对象,它让代码可读性、可维护性变好。

In [1]: a = [1,4,2,3,1]

In [2]: my_slice_meaning = slice(0,5,2)

In [3]: a[my_slice_meaning]

Out[3]: [1, 2, 1]

48 拿来就用的排序函数排序:

In [1]: a = [1,4,2,3,1]

In [2]: sorted(a,reverse=True)

Out[2]: [4, 3, 2, 1, 1]

In [3]: a = [{'name':'xiaoming','age':18,'gender':'male'},{'name':'

...: xiaohong','age':20,'gender':'female'}]

In [4]: sorted(a,key=lambda x: x['age'],reverse=False)

Out[4]:

[{'name': 'xiaoming', 'age': 18, 'gender': 'male'},

{'name': 'xiaohong', 'age': 20, 'gender': 'female'}]

49 求和函数求和:

In [181]: a = [1,4,2,3,1]

In [182]: sum(a)

Out[182]: 11

In [185]: sum(a,10) #求和的初始值为10

Out[185]: 21

50 转元组tuple() 将对象转为一个不可变的序列类型

In [16]: i_am_list = [1,3,5]

In [17]: i_am_tuple = tuple(i_am_list)

In [18]: i_am_tuple

Out[18]: (1, 3, 5)

51 查看对象类型class type(name, bases, dict)

传入一个参数时,返回 object 的类型:

In [1]: class Student():

...: def __init__(self,id,name):

...: self.id = id

...: self.name = name

...: def __repr__(self):

...: return 'id = '+self.id +', name = '+self.name

...:

...:

In [2]: xiaoming = Student(id='001',name='xiaoming')

In [3]: type(xiaoming)

Out[3]: __main__.Student

In [4]: type(tuple())

Out[4]: tuple

52 聚合迭代器创建一个聚合了来自每个可迭代对象中的元素的迭代器:

In [1]: x = [3,2,1]

In [2]: y = [4,5,6]

In [3]: list(zip(y,x))

Out[3]: [(4, 3), (5, 2), (6, 1)]

In [4]: a = range(5)

In [5]: b = list('abcde')

In [6]: b

Out[6]: ['a', 'b', 'c', 'd', 'e']

In [7]: [str(y) + str(x) for x,y in zip(a,b)]

Out[7]: ['a0', 'b1', 'c2', 'd3', 'e4']

好了,今天我的52个python基础代码分享到这里就结束了

希望能够给大家带来一个帮助

喜欢就点个赞哦~

[an error occurred while processing the directive]
Copyright © 2088 世界杯决赛结果_世界杯队伍 - yzxygq.com All Rights Reserved.
友情链接