内置方法:https://docs.python.org/3/library/functions.html?highlight=built#abs

一。数学运算

  1.abs()-取绝对值

  2.divmod()-返回(商,余数)

  3.max()-返回迭代对象中的元素中的最大值或所有参数的最大值

 >>> max(1,2,3) # 传入3个参数 取3个中较大者
3
>>> max('') # 传入1个可迭代对象,取其最大元素值
''
>>> max(-1,0) # 数值默认去数值较大者
0
>>> max(-1,0,key = abs) # 传入了求绝对值函数,则参数都会进行求绝对值后再取较大者
-1

  4.min():返回可迭代对象中的元素中的最小值或者所有参数的最小值

  5.pow():返回两个数值的幂运算值或其与指定整数的模值

  6.round():对浮点数进行四舍五入求值

  7.sum():对元素类型是数值的可迭代对象中的每个元素求和

二。类型转换

  1.bool:根据传入的参数的逻辑值创建一个新的布尔值(数值0、空序列等值为False)

  2.int:根据传入的参数创建一个新的整数

  3.float:根据传入的参数创建一个新的浮点数

  4.complex:根据传入参数创建一个新的复数

   

  5.str:返回一个对象的字符串表现形式(给用户)

  6.bytearray:根据传入的参数创建一个新的字节数组

 a = bytes("abcde",encoding="utf-8")
# a[0]=50 #TypeError: 'bytes' object does not support item assignment
print(a) #b'abcde'
print(a.capitalize()) #b'Abcde'
b = bytearray("abcde",encoding="utf-8")
#字符串不能修改(bytes),bytearray可以
print( b[1] ) #
b[1]= 50 #只能赋ascii码:50->2,97->a
print(b) #bytearray(b'a2cde')

  7.bytes:根据传入的参数创建一个新的不可变字节数组

  8.memoryview:根据传入的参数创建一个新的内存查看对象

  

 >>>v = memoryview(b'abcefg')
>>> v[1]
98
>>> v[-1]
103

  9.ord:返回Unicode字符对应的整数

  10.chr:返回整数所对应的Unicode字符

  11.bin:将整数转换成2进制字符串

  12.oct:将整数转化成8进制数字符串

  13.hex:将整数转换成16进制字符串 

  

 >>> ord('a')
97
>>> chr(97) #参数类型为整数
'a'
>>> bin(3)
'0b11'
>>> oct(10)
'0o12'
>>> hex(15)
'0xf'

  14.tuple:根据传入的参数创建一个新的元组

  15.list:根据传入的参数创建一个新的列表

  16.dict:根据传入的参数创建一个新的字典 

 >>>a={:,:,:,-:,:,:}
>>>print( sorted(a.items()) )# sorted(a)按key值,但只显示key值
[(-,),(,),(,),(,),(,),(,)]
4 >>>print( sorted(a.items()),key=lambda x:x[1] )#按value值排序
5 [(8,0),(6,2),(1,4),(-5,6),(99,11),(4,22)]

  17.set:根据传入的参数创建一个新的集合

  

 >>> tuple() #不传入参数,创建空元组
()
>>> tuple('') #传入可迭代对象。使用其元素创建新的元组
('', '', '') >>>list() # 不传入参数,创建空列表
[]
>>> list('abcd') # 传入可迭代对象,使用其元素创建新的列表
['a', 'b', 'c', 'd'] >>> dict() # 不传入任何参数时,返回空字典。
{}
>>> dict(a = 1,b = 2) # 可以传入键值对创建字典。
{'b': 2, 'a': 1}
>>> dict(zip(['a','b'],[1,2])) # 可以传入映射函数创建字典。
{'b': 2, 'a': 1}
>>> dict((('a',1),('b',2))) # 可以传入可迭代对象创建字典。
{'b': 2, 'a': 1} >>>set() # 不传入参数,创建空集合
set()
>>> a = set(range(10)) # 传入可迭代对象,创建集合
>>> a
{0, 1, 2, 3, 4, 5, 6, 7, 8, 9}

  18.frozenset:根据传入的参数创建一个新的不可变集合

>>> a = frozenset(range(10))
>>> a
frozenset({0, 1, 2, 3, 4, 5, 6, 7, 8, 9})

  19.enumerate:根据可迭代对象创建枚举对象

>>> seasons = ['Spring', 'Summer', 'Fall', 'Winter']
>>> list(enumerate(seasons))
[(0, 'Spring'), (1, 'Summer'), (2, 'Fall'), (3, 'Winter')]
>>> list(enumerate(seasons, start=1)) #指定起始值
[(1, 'Spring'), (2, 'Summer'), (3, 'Fall'), (4, 'Winter')]

  20.range:根据传入的参数创建一个新的range对象

>>> a = range(10)
>>> b = range(1,10)
>>> c = range(1,10,3)
>>> a,b,c # 分别输出a,b,c
(range(0, 10), range(1, 10), range(1, 10, 3))
>>> list(a),list(b),list(c) # 分别输出a,b,c的元素
([0, 1, 2, 3, 4, 5, 6, 7, 8, 9], [1, 2, 3, 4, 5, 6, 7, 8, 9], [1, 4, 7])
>>>

  21.iter:根据传入的参数创建一个新的可迭代对象

>>> a = iter('abcd') #字符串序列
>>> a
<str_iterator object at 0x03FB4FB0>
>>> next(a)
'a'
>>> next(a)
'b'
>>> next(a)
'c'
>>> next(a)
'd'
>>> next(a)
Traceback (most recent call last):
File "<pyshell#29>", line 1, in <module>
next(a)
StopIteration

  22.slice:根据传入的参数创建一个新的切片对象?????????

>>> c1 = slice(5) # 定义c1
>>> c1
slice(None, 5, None)
>>> c2 = slice(2,5) # 定义c2
>>> c2
slice(2, 5, None)
>>> c3 = slice(1,10,3) # 定义c3
>>> c3
slice(1, 10, 3)

  23.super:根据传入的参数创建一个新的子类和父类关系的代理对象

#定义父类A
>>> class A(object):
def __init__(self):
print('A.__init__') #定义子类B,继承A
>>> class B(A):
def __init__(self):
print('B.__init__')
super().__init__() #super调用父类方法
>>> b = B()
B.__init__
A.__init__

  24.object:创建一个新的object对象

>>> a = object()
>>> a.name = 'kim' # 不能设置属性
Traceback (most recent call last):
File "<pyshell#9>", line 1, in <module>
a.name = 'kim'
AttributeError: 'object' object has no attribute 'name'

三。序列操作

  1.all:判断可迭代对象的每个元素是否都为True值(非0为True)

>>> all([1,2]) #列表中每个元素逻辑值均为True,返回True
True
>>> all([0,1,2]) #列表中0的逻辑值为False,返回False
False
>>> all(()) #空元组
True
>>> all({}) #空字典
True
  

  2.any:判断可迭代对象的元素是否有为True值的元素(有一真则为真)

  3.filter:使用指定方法过滤可迭代对象的元素

>>> a = list(range(1,10)) #定义序列
>>> a
[1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> def if_odd(x): #定义奇数判断函数
return x%2==1 >>> list(filter(if_odd,a)) #筛选序列中的奇数
[1, 3, 5, 7, 9]

  4.map:使用指定方法去作用传入的每个可迭代对象的元素,生成新的可迭代对象

>>> a = map(ord,'abcd')
>>> a
<map object at 0x03994E50>
>>> list(a)
[97, 98, 99, 100]

  5.next:返回可迭代对象中的下一个元素值

  6.reversed:反转序列生成新的可迭代对象

  7.sorted:对可迭代对象进行排序,返回一个新的列表

  8.zip:聚合传入的每个迭代器中相同位置的元素,返回一个新的元组类型迭代器

 >>> x = [1,2,3] #长度3
>>> y = [4,5,6,7,8] #长度5
>>> list(zip(x,y)) # 取最小长度3
[(1, 4), (2, 5), (3, 6)]

四。对象操作

  1.help:返回对象的帮助信息

  2.dir:返回对象或者当前作用域内的属性列表

  3.id:返回对象的唯一标识符

  4.hash:获取对象的哈希值

  5.type:返回对象的类型,或者根据传入的参数创建一个新的类型

  6.len:返回对象的长度

>>> len('abcd') # 字符串
>>> len(bytes('abcd','utf-8')) # 字节数组
>>> len((1,2,3,4)) # 元组
>>> len([1,2,3,4]) # 列表
>>> len(range(1,5)) # range对象
>>> len({'a':1,'b':2,'c':3,'d':4}) # 字典
>>> len({'a','b','c','d'}) # 集合
>>> len(frozenset('abcd')) #不可变集合

  7.ascii:返回对象的可打印表字符串表现方式

>>> ascii(1)
'1'
>>> ascii('&')
"'&'"
>>> ascii(9000000)
'9000000'
>>> ascii('中文') #非ascii字符
"'\\u4e2d\\u6587'"

  8.format:格式化显示值

#字符串可以提供的参数 's' None
>>> format('some string','s')
'some string'
>>> format('some string')
'some string' #整形数值可以提供的参数有 'b' 'c' 'd' 'o' 'x' 'X' 'n' None
>>> format(3,'b') #转换成二进制
'11'
>>> format(97,'c') #转换unicode成字符
'a'
>>> format(11,'d') #转换成10进制
'11'
>>> format(11,'o') #转换成8进制
'13'
>>> format(11,'x') #转换成16进制 小写字母表示
'b'
>>> format(11,'X') #转换成16进制 大写字母表示
'B'
>>> format(11,'n') #和d一样
'11'
>>> format(11) #默认和d一样
'11' #浮点数可以提供的参数有 'e' 'E' 'f' 'F' 'g' 'G' 'n' '%' None
>>> format(314159267,'e') #科学计数法,默认保留6位小数
'3.141593e+08'
>>> format(314159267,'0.2e') #科学计数法,指定保留2位小数
'3.14e+08'
>>> format(314159267,'0.2E') #科学计数法,指定保留2位小数,采用大写E表示
'3.14E+08'
>>> format(314159267,'f') #小数点计数法,默认保留6位小数
'314159267.000000'
>>> format(3.14159267000,'f') #小数点计数法,默认保留6位小数
'3.141593'
>>> format(3.14159267000,'0.8f') #小数点计数法,指定保留8位小数
'3.14159267'
>>> format(3.14159267000,'0.10f') #小数点计数法,指定保留10位小数
'3.1415926700'
>>> format(3.14e+1000000,'F') #小数点计数法,无穷大转换成大小字母
'INF' #g的格式化比较特殊,假设p为格式中指定的保留小数位数,先尝试采用科学计数法格式化,得到幂指数exp,如果-4<=exp<p,则采用小数计数法,并保留p-1-exp位小数,否则按小数计数法计数,并按p-1保留小数位数
>>> format(0.00003141566,'.1g') #p=1,exp=-5 ==》 -4<=exp<p不成立,按科学计数法计数,保留0位小数点
'3e-05'
>>> format(0.00003141566,'.2g') #p=1,exp=-5 ==》 -4<=exp<p不成立,按科学计数法计数,保留1位小数点
'3.1e-05'
>>> format(0.00003141566,'.3g') #p=1,exp=-5 ==》 -4<=exp<p不成立,按科学计数法计数,保留2位小数点
'3.14e-05'
>>> format(0.00003141566,'.3G') #p=1,exp=-5 ==》 -4<=exp<p不成立,按科学计数法计数,保留0位小数点,E使用大写
'3.14E-05'
>>> format(3.1415926777,'.1g') #p=1,exp=0 ==》 -4<=exp<p成立,按小数计数法计数,保留0位小数点
'3'
>>> format(3.1415926777,'.2g') #p=1,exp=0 ==》 -4<=exp<p成立,按小数计数法计数,保留1位小数点
'3.1'
>>> format(3.1415926777,'.3g') #p=1,exp=0 ==》 -4<=exp<p成立,按小数计数法计数,保留2位小数点
'3.14'
>>> format(0.00003141566,'.1n') #和g相同
'3e-05'
>>> format(0.00003141566,'.3n') #和g相同
'3.14e-05'
>>> format(0.00003141566) #和g相同
'3.141566e-05'

  9.vars:返回当前作用域内的局部变量和其值组成的字典,或者返回对象的属性列表

五。反射操作

  • __import__:动态导入模块
  • isinstance:判断对象是否是类或者类型元组中任意类元素的实例
  • issubclass:判断类是否是另外一个类或者类型元组中任意类元素的子类
    >>> issubclass(bool,int)
    True
    >>> issubclass(bool,str)
    False >>> issubclass(bool,(str,int))
    True
  • hasattr:检查对象是否含有属性
    #定义类A
    >>> class Student:
    def __init__(self,name):
    self.name = name >>> s = Student('Aim')
    >>> hasattr(s,'name') #a含有name属性
    True
    >>> hasattr(s,'age') #a不含有age属性
    False
  • getattr:获取对象的属性值
    #定义类Student
    >>> class Student:
    def __init__(self,name):
    self.name = name >>> getattr(s,'name') #存在属性name
    'Aim' >>> getattr(s,'age',6) #不存在属性age,但提供了默认值,返回默认值 >>> getattr(s,'age') #不存在属性age,未提供默认值,调用报错
    Traceback (most recent call last):
    File "<pyshell#17>", line 1, in <module>
    getattr(s,'age')
    AttributeError: 'Stduent' object has no attribute 'age'
  • setattr:设置对象的属性值
    >>> class Student:
    def __init__(self,name):
    self.name = name >>> a = Student('Kim')
    >>> a.name
    'Kim'
    >>> setattr(a,'name','Bob')
    >>> a.name
    'Bob'
  • delattr:删除对象的属性
    #定义类A
    >>> class A:
    def __init__(self,name):
    self.name = name
    def sayHello(self):
    print('hello',self.name) #测试属性和方法
    >>> a.name
    '小麦'
    >>> a.sayHello()
    hello 小麦 #删除属性
    >>> delattr(a,'name')
    >>> a.name
    Traceback (most recent call last):
    File "<pyshell#47>", line 1, in <module>
    a.name
    AttributeError: 'A' object has no attribute 'name'
  • callable:检测对象是否可被调用
    >>> class B: #定义类B
    def __call__(self):
    print('instances are callable now.') >>> callable(B) #类B是可调用对象
    True
    >>> b = B() #调用类B
    >>> callable(b) #实例b是可调用对象
    True
    >>> b() #调用实例b成功
    instances are callable now.

六。变量操作

  • globals:返回当前作用域内的全局变量和其值组成的字典

    >>> globals()
    {'__spec__': None, '__package__': None, '__builtins__': <module 'builtins' (built-in)>, '__name__': '__main__', '__doc__': None, '__loader__': <class '_frozen_importlib.BuiltinImporter'>}
    >>> a = 1
    >>> globals() #多了一个a
    {'__spec__': None, '__package__': None, '__builtins__': <module 'builtins' (built-in)>, 'a': 1, '__name__': '__main__', '__doc__': None, '__loader__': <class '_frozen_importlib.BuiltinImporter'>}
  • locals:返回当前作用域内的局部变量和其值组成的字典
    >>> def f():
    print('before define a ')
    print(locals()) #作用域内无变量
    a = 1
    print('after define a')
    print(locals()) #作用域内有一个a变量,值为1 >>> f
    <function f at 0x03D40588>
    >>> f()
    before define a
    {}
    after define a
    {'a': 1}
  • print:向标准输出对象打印输出

    >>> print(1,2,3)
    1 2 3
    >>> print(1,2,3,sep = '+')
    1+2+3
    >>> print(1,2,3,sep = '+',end = '=?')
    1+2+3=?
  • input:读取用户输入值
    >>> s = input('please input your name:')
    please input your name:Ain
    >>> s
    'Ain'

七。文件操作

  • open:使用指定的模式和编码打开文件,返回文件读写对象

    # t为文本读写,b为二进制读写
    >>> a = open('test.txt','rt')
    >>> a.read()
    'some text'
    >>> a.close()

八。编译执行

  • compile:将字符串编译为代码或者AST对象,使之能够通过exec语句来执行或者eval进行求值

    >>> #流程语句使用exec
    >>> code1 = 'for i in range(0,10): print (i)'
    >>> compile1 = compile(code1,'','exec')
    >>> exec (compile1)
    0
    1
    2
    3
    4
    5
    6
    7
    8
    9 >>> #简单求值表达式用eval
    >>> code2 = '1 + 2 + 3 + 4'
    >>> compile2 = compile(code2,'','eval')
    >>> eval(compile2)
    10
  • eval:执行动态表达式求值(只能数字,不能是循环、功能之类的)
    >>> eval('1+2+3+4')
    10
  • exec:执行动态语句块
    >>> exec('a=1+2') #执行语句
    >>> a
    3
  • repr:返回一个对象的字符串表现形式(给解释器)
    >>> a = 'some text'
    >>> str(a)
    'some text'
    >>> repr(a)
    "'some text'"

九。 装饰器

  • property:标示属性的装饰器

    >>> class C:
    def __init__(self):
    self._name = ''
    @property
    def name(self):
    """i'm the 'name' property."""
    return self._name
    @name.setter
    def name(self,value):
    if value is None:
    raise RuntimeError('name can not be None')
    else:
    self._name = value >>> c = C() >>> c.name # 访问属性
    ''
    >>> c.name = None # 设置属性时进行验证
    Traceback (most recent call last):
    File "<pyshell#84>", line 1, in <module>
    c.name = None
    File "<pyshell#81>", line 11, in name
    raise RuntimeError('name can not be None')
    RuntimeError: name can not be None >>> c.name = 'Kim' # 设置属性
    >>> c.name # 访问属性
    'Kim' >>> del c.name # 删除属性,不提供deleter则不能删除
    Traceback (most recent call last):
    File "<pyshell#87>", line 1, in <module>
    del c.name
    AttributeError: can't delete attribute
    >>> c.name
    'Kim'
  • classmethod:标示方法为类方法的装饰器
    >>> class C:
    @classmethod
    def f(cls,arg1):
    print(cls)
    print(arg1) >>> C.f('类对象调用类方法')
    <class '__main__.C'>
    类对象调用类方法 >>> c = C()
    >>> c.f('类实例对象调用类方法')
    <class '__main__.C'>
    类实例对象调用类方法
  • staticmethod:标示方法为静态方法的装饰器
    # 使用装饰器定义静态方法
    >>> class Student(object):
    def __init__(self,name):
    self.name = name
    @staticmethod
    def sayHello(lang):
    print(lang)
    if lang == 'en':
    print('Welcome!')
    else:
    print('你好!') >>> Student.sayHello('en') #类调用,'en'传给了lang参数
    en
    Welcome! >>> b = Student('Kim')
    >>> b.sayHello('zh') #类实例对象调用,'zh'传给了lang参数
    zh
    你好

Python之freshman02的更多相关文章

  1. Python中的多进程与多线程(一)

    一.背景 最近在Azkaban的测试工作中,需要在测试环境下模拟线上的调度场景进行稳定性测试.故而重操python旧业,通过python编写脚本来构造类似线上的调度场景.在脚本编写过程中,碰到这样一个 ...

  2. Python高手之路【六】python基础之字符串格式化

    Python的字符串格式化有两种方式: 百分号方式.format方式 百分号的方式相对来说比较老,而format方式则是比较先进的方式,企图替换古老的方式,目前两者并存.[PEP-3101] This ...

  3. Python 小而美的函数

    python提供了一些有趣且实用的函数,如any all zip,这些函数能够大幅简化我们得代码,可以更优雅的处理可迭代的对象,同时使用的时候也得注意一些情况   any any(iterable) ...

  4. JavaScript之父Brendan Eich,Clojure 创建者Rich Hickey,Python创建者Van Rossum等编程大牛对程序员的职业建议

    软件开发是现时很火的职业.据美国劳动局发布的一项统计数据显示,从2014年至2024年,美国就业市场对开发人员的需求量将增长17%,而这个增长率比起所有职业的平均需求量高出了7%.很多人年轻人会选择编 ...

  5. 可爱的豆子——使用Beans思想让Python代码更易维护

    title: 可爱的豆子--使用Beans思想让Python代码更易维护 toc: false comments: true date: 2016-06-19 21:43:33 tags: [Pyth ...

  6. 使用Python保存屏幕截图(不使用PIL)

    起因 在极客学院讲授<使用Python编写远程控制程序>的课程中,涉及到查看被控制电脑屏幕截图的功能. 如果使用PIL,这个需求只需要三行代码: from PIL import Image ...

  7. Python编码记录

    字节流和字符串 当使用Python定义一个字符串时,实际会存储一个字节串: "abc"--[97][98][99] python2.x默认会把所有的字符串当做ASCII码来对待,但 ...

  8. Apache执行Python脚本

    由于经常需要到服务器上执行些命令,有些命令懒得敲,就准备写点脚本直接浏览器调用就好了,比如这样: 因为线上有现成的Apache,就直接放它里面了,当然访问安全要设置,我似乎别的随笔里写了安全问题,这里 ...

  9. python开发编译器

    引言 最近刚刚用python写完了一个解析protobuf文件的简单编译器,深感ply实现词法分析和语法分析的简洁方便.乘着余热未过,头脑清醒,记下一点总结和心得,方便各位pythoner参考使用. ...

随机推荐

  1. 用Python+Django在Eclipse环境下开发web网站

    一.创建一个项目如果这是你第一次使用Django,那么你必须进行一些初始设置.也就是通过自动生成代码来建立一个Django项目--一个Django项目的设置集,包含了数据库配置.Django详细选项设 ...

  2. Android 创建项目出现No resource found that matches the given name Theme.AppCompat.Light

    关于为何出现No resource found that matches the given name ‘Theme.AppCompat.Light’的原因 这边博客已经写的很清楚了 大家可以参考一下 ...

  3. 720. Longest Word in Dictionary 能连续拼接出来的最长单词

    [抄题]: Given a list of strings words representing an English Dictionary, find the longest word in wor ...

  4. 485. Max Consecutive Ones最长的连续1的个数

    [抄题]: Given a binary array, find the maximum number of consecutive 1s in this array. Example 1: Inpu ...

  5. opennebula 发送序列化ID,构造json格式错误

  6. Win10 DHCP和Static IP 切换

    创建两个.bat文件,分别命名为static.bat和dhcp.bat static.bat文件写入 netsh interface ip set address "Wi-Fi" ...

  7. Extend volumn in ubuntu 14.04

    运行环境: ubuntu 14.04, VMware12.5.7 1. VMware上点击 虚拟机->设置->硬盘(SCSI)->扩展选项,设置自己希望的ubuntu磁盘运行空间大小 ...

  8. 基于 EntityFramework 的数据库主从读写分离架构(2)- 改进配置和添加事务支持

        回到目录,完整代码请查看(https://github.com/cjw0511/NDF.Infrastructure)中的目录:      src\ NDF.Data.EntityFramew ...

  9. 为什么有时候在Windbg中下断点下不了呢??

    1.今天我发现我下断点的地方是我声明的变量,变量还仅仅是声明,没有赋值.因此不能下断点. 2.当不能下断点时,如何解决呢? (1)重启Vmware虚拟机.(2)在虚拟机中恢复“快照”.

  10. Browsersync 简介 and 使用

    简介 省时的浏览器同步测试工具,Browsersync能让浏览器实时.快速响应您的文件更改(html.js.css.sass.less等)并自动刷新页面. 曾经我们每改一次的代码,都需要手动去刷新一次 ...