python函数知识_Python之函数知识

本文介绍了Python中的内置函数如`vars()`、`__name__`等,自定义函数的定义与参数传递,以及如何导入和使用函数。重点讲解了动态参数、字典参数和格式化字符串。适合初学者理解函数在编程中的应用和灵活性。
摘要由CSDN通过智能技术生成

Python函数分类

a,内置函数

b,自定义函数

c,导入函数

一个函数就相当于一个功能块,比如获取数据库,更新数据库,函数其实就是代码的分块,调用函数来执行代码块

一块就代表一个功能

内置函数有以下这些

vars() 当前模块的所有变量

>>> vars()

{'__builtins__': , '__name__': '__main__', '__doc__': None, 'nama': 'alex', '__package__': None}

__doc__  :注释内容

比如

>>> import Queue

>>> print Queue.__doc__

A multi-producer, multi-consumer queue

__name__ 被执行的脚本__name__值等于main 其他的等于本身

使用main来标示这个程序的主模块是哪一个

if  __name__=="__main__"  #这个文件就是程序的主文件,主函数

xxx                              #执行xxx

reload()如果一个模块导入(import)一次就常驻内存,假如一个模块修改了需要重新导入一次使用reload()重新加载

id()记录内存地址

is 比较地址

计算级别

cmp(2,3)比较

abs()计算绝对值

bool()计算布尔值

divmod(10,3)求商和余数分页

max()取最大

min()去最小

sum()求和

pow()求幂

len()计算序列长度

all()接收一个序列,判断所有值都是真的返回真,否则返回假

例如

>>> li =[1,2]

>>> all(li)

True

>>> li =[1,2,""]

>>> li

[1, 2, '']

>>> all(li)

False

any()只要有一个是真就返回真

chr()接收一个数字转出字符码

ord() 接收一个值转化成数字

hex()10进制转换成16进制

oct()10进制转换成8进制

bin()10进制转换成2进制

>>> hex(13)

'0xd'

>>> oct(12)

'014'

>>> bin(8)

'0b1000'

range()按顺序生成序列

xrange()生成器生成序列

enumerate()

用法

>>> for k,v in enumerate(li):

... print k,v

...

0 11

1 22

2 33

3 44

4 55

循环序列自动生成下标对应value,想要从1开始在li后面加参数1指定数字的起始值

其他

内置函数是无法满足需求的

自定义函数

面向过程的编程假如需要实现同样的功能是通过复制代码来实现,面向函数编程可以通过定义函数,然后调用函数.

函数的返回值

1,未明确指定返回值,返回None

2,返回值可以赋值给某个变量

参数:

普通参数

默认参数

动态参数

#形式参数,形参

#实际参数,实参

动态参数

>>> def func(*arg):

...    print arg

...

>>> func()

()

>>> li=[1,2]

>>> func(1)

(1,)

>>> func(1,2)

(1, 2)

>>> func(li)

([1, 2],)

不管收到什么参数都整合成元祖

非动态参数燕严格按照定义输入参数个数

>>> li=(1,2,3,4)

>>> func(li)

((1, 2, 3, 4),)

>>> func(*li)

(1, 2, 3, 4)

只把参数放入生成一个元祖中的元祖,前面加*就是原来的元祖(列表也是类似的结果),对于字符串效果一样

小结

1,接受多个参数

2,内部自动构造元祖

3,序列,*,避免内部构造元祖或列表

>>> def func(**kwargs):

...    print kwargs

...

>>> func(**li)

{'1': 'a', '2': 'b'}

定义时候加**生成字典,传递参数的时候也要加2个*

也可以直接在函数传递参数的时候使用key=value的方式来传递

>>> func(k1=123,k2=454)

{'k2': 454, 'k1': 123}

定义一个又可以传递单值的有可以传递字典的函数

>>> def func(*args,**keargs):

...    print args

...    print keargs

...

>>> func(1)

(1,)

{}

>>> func(1,2)

(1, 2)

{}

>>> func(k1=123,k2=999)

()

{'k2': 999, 'k1': 123}

看一下格式化列子,类似于动态传参

>>> s = "i am {0},age{1}"

>>> s.format('alex','18')

'i am alex,age18'

>>> s = "i am {name},age{age}"

>>> s.format(name='alex',age='18')

'i am alex,age18'

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值