进阶第一课 Python内置函数

所谓函数,就是为我们提供某种功能的程序。比如我们在入门第一课讲到的print,可以帮我们打印,这个print就是Python内置的一个函数。

下面来一起熟悉一下Python内置的函数及用法。

使用函数时,后面都是加一对圆括号,用来放参数

1、print()

>>> print('I wanna learn Python.')
I wanna learn Python.

要打印时,使用print。要打印的内容两侧外面是一对圆括号,然后是一对单引号或者一对双引号。

再看一个示例:

>>> a=[1,2,3,4,5,6]
>>> for i in a:
        print(i)

    
1
2
3
4
5
6

分析一下:a是一个列表,值是:1,2,3,4,5,6。通过for循环就可以每次打印a中的一个值。打印时默认没打印一个值,后面跟一个换行符(类似我们在word中使用的回车)。我们可以把a中的所有值打印在一行,且每个值之间可以由我们自行指定一个分割符。看例子:

>>> a=[1,2,3,4,5,6]
>>> for i in a:
        print(i,end=',')

    
1,2,3,4,5,6,

分析一下:区别在于,我们定义了end,它的值是逗号。之后打印在一行,且每个值之间用逗号隔开。

2、input()

让程序接受你的输入内容,比如:

>>> input()
x
'x'

分析一下:

第一行,可以让程序提供给我们一次输入内容的机会;接着我输入了一个字母x,按回车;最后程序把我输入的x打印出来。需要说明的是:input函数接受你输入的值是一个字符串,所以返回的x两侧,带有一对单引号。

如果我输入的是一个数字呢?

>>> input()
5
'5'

即使输入的是数字,返回值得两侧依旧带有一对单引号,证明返回值是一个字符串。

再举个栗子-_-!!

input('请输入你的年龄:')
      
请输入你的年龄:10
'10'

我们日常使用的软件或者上网时,当有需要我们输入信息时通常都会有提示。这一点Python也可以做到。上面的input函数,在括号内通过一对单引号或者一对双引号就能把提示打印出来。

3、int()

之前我们学过,Python中数字有整数30、浮点数30.25,那怎么把输入的浮点数变为整数呢?

>>> a=30.25
>>> b=int(a)
>>> b
30

首先创建变量a并赋值30.25;之后创建变量b并赋值,赋的值是对a取整,就是把a的值变成整数(这里不存在四舍五入)。

4、str()

Python中的int可以把一个浮点数变成整数,Python另一个函数还可以把一个数字变成一个字符串。

>>> c=30.5
>>> d=str(c)
>>> d
'30.5'

c的值是30.5,而d的值是‘30.5’。c和d在Python中是两个值不相等的变量。

5、len()

计算参数的长度。

>>> e='aaaaa'
>>> f=len(e)
>>> f
5

e是一个字符串,包含了5个'a',那么len(e)的值就是5,赋值给f,那么f的值就是5。

6、range()

范围值。举个栗子-_-!!

>>> for i in range(1,11):
        print(i)

    
1
2
3
4
5
6
7
8
9
10

分析一下:

range(1,11),包括的范围是1到10。

range()函数还可以和len()函数组合使用。看示例:

>>> a=['name','age','address','salary','height']
>>> for i in range(len(a)):
        print(i,a[i])

    
0 name
1 age
2 address
3 salary
4 height

 7、abs()

求绝对值函数。

>>> abs(1000)
1000
>>> abs(-124.50)
124.5

8、divmod(a,b)

返回一个元祖(c,d)。其中c=a//b,d=a%b。看示例:

>>> divmod(5,2)
(2, 1)
>>> a=5
>>> b=2
>>> a//b
2
>>> a%b
1

9、用于判断给定的可迭代参数 iterable 中的所有元素是否不为 0、''、False 或者 iterable 为空,如果是返回 True,否则返回 False。

>>>all(['1', '2', '3', '4'])  # 列表list,元素都不为空或0
True
>>> all(['1', '2', '', '4'])   # 列表list,存在一个为空的元素
False
>>> all([0,'a',2, 3])          # 列表list,存在一个为0的元素
False  
>>> all(('1', '2', '3', '4'))  # 元组tuple,元素都不为空或0
True
>>> all(('1', '2', '', '4'))   # 元组tuple,存在一个为空的元素
False
>>> all((0, 1,2, 3))          # 元组tuple,存在一个为0的元素
False   
>>> all([])             # 空列表
True
>>> all(())             # 空元组
True

10、enumerate() 函数用于将一个可迭代对象组合,其中的每一个值由两部分组成:可迭代对象的索引和值。一般用在 for 循环当中。

>>> a=['name','age','address','salary','height']
>>> list(enumerate(a))
[(0, 'name'), (1, 'age'), (2, 'address'), (3, 'salary'), (4, 'height')]

看一下与for循环时的一个示例:

>>> a=['name','age','address','salary','height']
>>> m=0
>>> for n in a:
        print(m,a[m])
        m=m+1

    
0 name
1 age
2 address
3 salary
4 height

如果换做for与enumerate()组合的方式,可以这样写:

>>> a=['name','age','address','salary','height']
>>> for i,m in enumerate(a):
        print(i,a[i])

    
0 name
1 age
2 address
3 salary
4 height

11、ord()

计算机中存有255个ASCII编码,这些编码都是数字,对应数字、大小写英语字母和各类符号。ord()就是把我们熟悉的数字、字母和符号转换为ASCII编码。

>>> ord("A")
65
>>> ord('a')
97
>>> ord('5')
53

12、any()

any() 函数用于判断给定的可迭代参数 是否全部为空对象,如果都为空、0、false,则返回 False,如果不都为空、0、false,则返回 True。

>>> a=['name','age','address','salary','height']
>>> any(a)
True
>>> b=['name','age','address','salary','']
>>> any(b)
True
>>> c=[]
>>> any(c)
False
>>> d=['','','']
>>> any(d)
False

13、eval()

eval(expression, globals=None, locals=None)  --- 官方文档中的解释是,将字符串str当成有效的表达式来求值并返回计算结果。globals和locals参数是可选的,如果提供了globals参数,那么它必须是dictionary类型;如果提供了locals参数,那么它可以是任意的map对象。

用来计算表达式的值,并返回。看示例:

>>> a=10
>>> eval('a*2')
20
>>> eval('a**a')
10000000000
>>> eval('2+10')
12

eval()函数还有其他用途:将字符串str当成有效的表达式来求值并返回计算结果。

  语法: eval(source[, globals[, locals]]) -> value

  参数:

    source:一个Python表达式或函数compile()返回的代码对象

    globals:可选。必须是dictionary

    locals:可选。任意map对象

看示例:

可以把list,tuple,dict和string相互转化。
#################################################
字符串转换成列表
>>>a = "[[1,2], [3,4], [5,6], [7,8], [9,0]]"
>>>type(a)
<type 'str'>
>>> b = eval(a)
>>> print b
[[1, 2], [3, 4], [5, 6], [7, 8], [9, 0]]
>>> type(b)
<type 'list'>
#################################################
字符串转换成字典
>>> a = "{1: 'a', 2: 'b'}"
>>> type(a)
<type 'str'>
>>> b = eval(a)
>>> print b
{1: 'a', 2: 'b'}
>>> type(b)
<type 'dict'>
#################################################
字符串转换成元组
>>> a = "([1,2], [3,4], [5,6], [7,8], (9,0))"
>>> type(a)
<type 'str'>
>>> b = eval(a)
>>> print b
([1, 2], [3, 4], [5, 6], [7, 8], (9, 0))
>>> type(b)
<type 'tuple'>

 

14、isinstance()

isstance(a,b),判断a是否属于类型b,是就返回True,否则返回False。看示例:

>>> a=10
>>> isinstance(a,int)
True
>>> isinstance(a,str)
False
>>> isinstance(a,(int,str,bool))
True

15、pow()

pow(a,b)。返回a的b次幂。看示例:

>>> pow(2,3)
8

16、sum()

求和函数。看示例:

>>> sum([1,2,3])
6
>>> sum((1,2,3))
6
>>> sum([1,2,3],4)
10

17、type()

有两种用法:type(a)或者type(a,b,c)

type(a),返回a的数据类型。看示例:

>>> type('asdf')
<class 'str'>
>>> type('123')
<class 'str'>
>>> type(123)
<class 'int'>
>>> type(12.34)
<class 'float'>

type(a,b,c),这个还未弄明白。

18、filter()

过滤序列。格式为filter(a,b)。其中a是过滤函数,b是序列。看示例:

>>> def oushu(n):
        if n%2==0:
            return n

    
>>> filter(oushu,[1,2,3,4,5,6,7,8,9,10])
<filter object at 0x000001EBF8D3EE80>
>>> print(filter(oushu,[1,2,3,4,5,6,7,8,9,10]))
<filter object at 0x000001EBF8D7F630>
>>> list(filter(oushu,[1,2,3,4,5,6,7,8,9,10]))
[2, 4, 6, 8, 10]

之所以前2个没有返回序列,是因为返回的是一个filter类,需要使用list()函数来形成一个对象。

19、list()

list(),格式为list(a)。a是一个元祖,返回一个列表。看示例:

>>> a=(1,2,3,4,5)
>>> list(a)
[1, 2, 3, 4, 5]

20、format()

格式化字符串。之前用很大的篇幅讲解字符串的格式化操作。现在看下format的功能。

20.1 不提供参数

>>> "{} {}".format("I","wanna")
'I wanna'
>>> "{0} {1}".format("learn","Python.")
'learn Python.'
>>> "{0} {1} {0} {1}".format("learn","Python.")
'learn Python. learn Python.'

20.2 提供参数

>>> "姓名:{name},年龄:{age}".format(name="赵云",age=23)
'姓名:赵云,年龄:23'
>>> intel={"name":"赵云","age":23}
>>> "姓名:{name},年龄:{age}".format(**intel)#参数是字典
'姓名:赵云,年龄:23'
>>> intel2=['赵云',23]          
>>> "姓名:{0[0]},年龄{0[1]}".format(intel2) #参数是序列
'姓名:赵云,年龄23'

 20.3 格式化数字

数字格式返回结果s说明
3.1415926{:.2f}3.14保留小数点后两位,数字2可以改为任意正整数,以下同理**
3.1415926{:+.2f}+3.14带符号保留小数点后两位,**
-1{:+.2f}-1.00带符号保留小数点后两位,**
2.71828{:.0f}3不带小数
5{:0>2d}05数字补零 (填充左边, 宽度为2),**
5{:x<4d}5xxx数字补x (填充右边, 宽度为4),**
10{:x<4d}10xx数字补x (填充右边, 宽度为4),**
1000000{:,}1,000,000以逗号分隔的数字格式
0.25{:.2%}25.00%百分比格式,**
1000000000{:.2e}1.00e+09指数记法,**
13{:10d}        13右对齐 (默认, 宽度为10),**
13{:<10d}13左对齐 (宽度为10),**
13{:^10d}    13中间对齐 (宽度为10),**
11
'{:b}'.format(11) '{:d}'.format(11) '{:o}'.format(11) '{:x}'.format(11) '{:#x}'.format(11) '{:#X}'.format(11)
1011
11
13 b 0xb 0XB
进制,**

^, <, > 分别是居中、左对齐、右对齐,后面带宽度, : 号后面带填充的字符,只能是一个字符,不指定则默认是用空格填充。

+ 表示在正数前显示 +,负数前显示 -;  (空格)表示在正数前加空格

b、d、o、x 分别是二进制、十进制、八进制、十六进制。看示例:

>>> "{:.3f}".format(5.123456)
'5.123'

21、locals()

locals() 函数以字典类型b返回当前位置的全部局部变量。

>>> def hanshu():
        a=1
        b=2
        c=10
        return locals()

>>> hanshu()
{'c': 10, 'b': 2, 'a': 1}

22、dict()

用于创建一个字典。有几种用法:

 

>>> dict()
{}
>>> dict(name='zhaoyun',age=23,height=200)
{'name': 'zhaoyun', 'age': 23, 'height': 200}
>>> dict([('name','zhaoyun'),('age',23),('height',200)])
{'name': 'zhaoyun', 'age': 23, 'height': 200}
>>> dict(zip(['name','age','height'],['zhaoyun',23,200]))
{'name': 'zhaoyun', 'age': 23, 'height': 200}

23、iter()

iter(a),a是一个可迭代对象,生成迭代器。看示例:

>>> a=[1,2,3,4,5]
>>> iter(a)
<list_iterator object at 0x000001EBF8CE2B00>
>>> print(iter(a))
<list_iterator object at 0x000001EBF86E8048>
>>> list(iter(a))
[1, 2, 3, 4, 5]

24、next()

返回迭代器的下一个元素。接着上面的例子,继续:

>>> a=[1,2,3,4,5]
>>> iter(a)
<list_iterator object at 0x000001EBF8CE2B00>
>>> b=iter(a)
>>> next(b)
1
>>> next(b)
2
>>> next(b)
3

 25、sorted()

sorted(a),对可迭代对象a做排序,并返回一个序列。看示例:

>>> a=(3,4,5,1,2,3)
>>> b=[3,4,5,1,2,3]
>>> c=sorted(a)
>>> c
[1, 2, 3, 3, 4, 5]
>>> d=sorted(b)
>>> d
[1, 2, 3, 3, 4, 5]

sorted(a,b,c,d),对可迭代对象a做排序。

b是函数,该函数有2个参数,这2个参数都是从a中提取的,

c是排序参数,即从a的元素中,指定那个具体的字段为排序参数,并以此参数排序。

d排序规则。排序规则,reverse = True 降序 , reverse = False 升序(默认)。

转载于:https://www.cnblogs.com/tuobeiwoniu/p/8665004.html

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值