精华内容
下载资源
问答
  • 函数Python中是最基本的程序结构,用来最大化地让我们的代码进行复用。简单地说,一个函数就是一组Python语句的组合,它们可以在程序中运行一次或多次运行。Python中的函数在其他语言中也叫做过程或子例程,那么...

    什么是函数?

    函数在Python中是最基本的程序结构,用来最大化地让我们的代码进行复用。简单地说,一个函数就是一组Python语句的组合,它们可以在程序中运行一次或多次运行。Python中的函数在其他语言中也叫做过程或子例程,那么这些被包装起来的语句通过一个函数名称来调用。有了函数,可以在很大程度上减少复制及粘贴代码的次数了。可以把相同的代码可以提炼出来做成一个函数,在需要的地方只需要调用即可。那么这样就提高了代码的复用率了,整体代码看起来比较简练,没有那么臃肿了。

    函数分类

    内置函数:为了方便我们的开发,针对一些简单的功能,python解释器已经为我们定义好了的函数即内置函数。对于内置函数,我们可以拿来就用而无需事先定义,如len(),sum(),max()

    自定义函数:很明显内置函数所能提供的功能是有限的,这就需要我们自己根据需求,事先定制好我们自己的函数来实现某种功能,以后,在遇到应用场景时,调用自定义的函数即可

    python自定义函数

    def 函数名(参数1,参数2,参数3,...):'''注释'''函数体return 返回的值

    ContractedBlock.gif

    ExpandedBlockStart.gif

    def dragon():

    print("Hello World")

    dragon()------------------------Hello World

    View Code

    函数使用原则

    函数即“变量”,“变量”必须先定义后引用。未定义而直接引用函数,就相当于在引用一个不存在的变量名,因而函数应该先定义,在调用

    ps:函数在定义阶段只检测语法,不执行代码

    ContractedBlock.gif

    ExpandedBlockStart.gif

    def world():

    print('from world')

    def python():

    print('from python')

    world()

    python()-------------------------

    frompythonfrom world

    View Code

    定义函数形式

    无参:定义时无参,意味着调用时也无需传入参数,应用场景仅仅只是执行一些操作,比如与用户交互,打印

    ContractedBlock.gif

    ExpandedBlockStart.gif

    def dragon():

    print("Hello World")

    dragon()------------------------Hello World

    View Code

    有参:需要根据外部传进来的参数,才能执行相应的逻辑,即定义时有参,意味着调用时则必须传入参数

    ContractedBlock.gif

    ExpandedBlockStart.gif

    def tages(tag,n):

    print(tag*n)

    tages('*',6)-------------------------

    ******

    View Code

    空函数:设计代码结构

    ContractedBlock.gif

    ExpandedBlockStart.gif

    def test(parms):

    pass

    View Code

    函数调用

    语句形式:test()

    表达式形式:3*len('world')

    作为另外一个函数的参数:range(len('Hello Python'))

    函数返回值 return

    无return语句时返回None

    return 1个值则返回1个值

    return 逗号分隔多个值则返回元组

    什么时候该有返回值?

    调用函数,经过一系列的操作,最后要拿到一个明确的结果,则必须要有返回值;通常有参函数需要有返回值,输入参数,经过计算,得到一个最终的结果

    什么时候不需要有返回值?

    调用函数,仅仅只是执行一系列的操作,最后不需要得到什么结果,则无需有返回值;通常无参函数不需要有返回值

    函数的参数

    位置参数:按照从左到右的顺序定义的参数

    位置形参:必选参数

    位置实参:按照位置给形参传值

    关键字参数:按照key=value的形式定义的实参,无需按照位置为形参传值

    关键字实参必须在位置实参右面

    对同一个形参不能重复传值

    ContractedBlock.gif

    ExpandedBlockStart.gif

    def max(x,y):

    print(x,y)if x >y:returnxelse:returny

    print(max(y= 10,x = 20))------------------------------

    20 10

    20

    View Code

    默认参数:形参在定义时就已经为其赋值,可以传值也可以不传值,经常需要变得参数定义成位置形参,变化较小的参数定义成默认参数(形参)

    只在定义时赋值一次

    默认参数的定义应该在位置形参右面

    默认参数通常应该定义成不可变类型

    ContractedBlock.gif

    ExpandedBlockStart.gif

    def stu_info(name,sex = 'male'): #默认参数,有一个默认值

    print('name:%s,sex:%s'%(name,sex))

    stu_info('dragon') #默认参数可以不传值

    stu_info('tom','female') #如果传值了,覆盖默认值

    ------------------------------name:dragon,sex:male

    name:tom,sex:female

    View Code

    可变长参数:可变长指的是实参值的个数不固定,而实参有按位置和按关键字两种形式定义,针对这两种形式的可变长,形参对应有两种解决方案来完整地存放它们,分别是*args,**kwargs

    ContractedBlock.gif

    ExpandedBlockStart.gif

    def func(x,y,*z): #*c接收的是5,6,7,8并且输出一个元祖包含这个4个5 *args代表把散列的元素拼成元组

    sum = x+yfor i inz:

    sum+=ireturnsumprint(func(3,4,5,6,7,8))-----------------------------

    33

    def fun(x,y,**kwargs):print(x,y,kwargs)

    fun(x= 10,y = 20,z= 30,w = 50)------------------------------

    33

    10 20 {'z': 30, 'w': 50}

    View Code

    命名关键字参数:*后定义的参数,必须被传值(有默认值的除外),且必须按照关键字实参的形式传递

    ContractedBlock.gif

    ExpandedBlockStart.gif

    def foo(x,y,*args,z=1,w,**kwargs):print(x,y)print(args)print(z)print(w)print(kwargs)

    foo(1,2,3,4,5,w=3,t=4,j=5)------------------------------

    1 2(3, 4, 5)1

    3{'t': 4, 'j': 5}

    View Code

    展开全文
  • 需要拿到一个函数里所有的传入的参数,并且存在一个字典里。下面的方法确实拿到了字典,不过要求函数必须用非固定参数**kwargs定义,而且对调用函数很不友好def func1(**kwargs):d = ‘local_d‘return kwargsres = ...

    需要拿到一个函数里所有的传入的参数,并且存在一个字典里。

    下面的方法确实拿到了字典,不过要求函数必须用非固定参数**kwargs定义,而且对调用函数很不友好

    def func1(**kwargs):

    d = ‘local_d‘

    return kwargs

    res = func1(a=1, b=2, c=3)

    print(res)

    # 结果:

    # {‘a‘: 1, ‘b‘: 2, ‘c‘: 3}

    locals()函数会以字典类型返回当前位置的全部局部变量,看着很符合现在的需求:

    def func2(a, b, c):

    d = ‘local_d‘

    return locals()

    res = func2(1, 2, 3)

    print(res)

    # 结果:

    # {‘d‘: ‘local_d‘, ‘c‘: 3, ‘b‘: 2, ‘a‘: 1}

    想着很好,但是实际用的时候,最后会把函数内部其他变量也返回。不完美,只想要入参的字典。

    最后机制的小伙伴想到了,其实还是上面的方法:

    def func3(a, b, c):

    kwargs = locals()

    d = ‘local_d‘

    return kwargs

    res = func3(1, 2, 3)

    print(res)

    # 结果

    # {‘c‘: 3, ‘b‘: 2, ‘a‘: 1}

    其实就是在函数的开始,其他变量还没有出现的时候,就想把当前的locals()取出来,等到最后再返回。完美!

    展开全文
  • urlencode与urldecode当url中包含中文或者参数包含中文,需要对中文或者特殊字符(/、&)做编码转换。...urlencodeurllib库里面的urlencode函数,可以把key-value健值对的key、value都进行urlencode并...

    urlencode与urldecode

    当url中包含中文或者参数包含中文,需要对中文或者特殊字符(/、&)做编码转换。

    urlencode的本质:把字符串转为gbk编码,再把\x替换成%。如果终端是utf8编码的,需要把结果再转成utf8输出,否则会乱码。

    urlencode

    urllib库里面的urlencode函数,可以把key-value健值对的key、value都进行urlencode并转换成a=1&b=2的字符串。

    #key-value健值对

    >>> from urllib import urlencode

    >>> data={'a':'a1','b':'中文'}

    >>> print urlencode(data)

    a=a1&b=%E4%B8%AD%E6%96%87

    >>> data={'a':'a1','b测试':'中文'}

    >>> print urlencode(data)

    a=a1&b%E6%B5%8B%E8%AF%95=%E4%B8%AD%E6%96%87

    urllib库里面的quote函数,可以针对单个字符串进行urlencode转换。

    #string

    >>> from urllib import quote

    >>> data="测试"

    >>> print quote(data)

    %E6%B5%8B%E8%AF%95

    urldecode

    urllib只提供了unquote()函数。

    >>> from urllib import unquote

    >>> unquote("%E6%B5%8B%E8%AF%95")

    '\xe6\xb5\x8b\xe8\xaf\x95'

    >>> print unquote("%E6%B5%8B%E8%AF%95")

    测试

    >>>

    json处理

    两个函数:

    函数

    描述

    json.dumps

    将python对象编码成JSON字符串(对象->字符串)

    json.loads

    将已经编码的json字符串解码为Python对象(字符串->对象)

    json.dumps

    语法:json.dumps(data, sort_keys=True, indent=4,separators=(self.item_separator, self.key_separator))

    >>> import json

    >>> data={"a":"a1","b":"b1"}

    >>> jsonstr=json.dumps(data)

    >>> print jsonstr

    {"a": "a1", "b": "b1"}

    #输出格式化

    >>> print json.dumps(data, sort_keys=True, indent=4,separators=(",",":"))

    {

    "a":"a1",

    "b":"b1"

    }

    >>>

    python原始类型向json类型的转换对照表:

    Python

    JSON

    dict

    object

    list,tuple

    array

    str,unicode

    string

    int,long,float

    number

    True

    true

    False

    false

    None

    null

    json.loads

    json.loads——返回Python字段的数据类型

    >>> import json

    >>> jsonstr='{"a":"a1","b":"b1"}'

    >>> print json.loads(jsonstr)

    {u'a': u'a1', u'b': u'b1'}

    >>> jsonstr='{"a":"a1","b":null,"c":false,"d":{"aa":"aa1","bb":"bb1"}}'

    >>> print json.loads(jsonstr)

    {u'a': u'a1', u'c': False, u'b': None, u'd': {u'aa': u'aa1', u'bb': u'bb1'}}

    >>> jsonstr='[{"a":"a1"},{"b":"b2"}]'

    >>> print json.loads(jsonstr)

    [{u'a': u'a1'}, {u'b': u'b2'}]

    json类型转换为python类型的对照表

    JSON

    Python

    object

    dict

    array

    list

    string

    unicode

    number(int)

    int,long

    number(real)

    float

    true

    True

    false

    False

    null

    None

    结论:print只能输出python认识的数据类型,python.dumps才可以格式化输出。

    计算字符串md5

    方法一:使用md5包

    import md5

    def calMd5(signdata,signkey,joiner=""):

    signdata=signdata+joiner+""+signkey

    m=md5.new(signdata)

    sign = m.hexdigest()

    return sign

    方法二:使用hashlib包

    import hashlib

    def calHashMd5(signdata,signkey,joiner=""):

    signdata=signdata+joiner+""+signkey

    m=hashlib.md5(signdata)

    sign = m.hexdigest()

    return sign

    计算hmacsha1

    hmac:密钥相关的哈希运算消息认证码,hmac运算利用哈希算法(可以是MD5或者SHA-1),以一个密钥和一个消息为输入,生成一个消息摘要作为输出。

    作用:

    (1)验证接受的授权数据和认证数据;

    (2)确认接受到的命令请求是已经授权的请求且传送过程没有被篡改

    import hmac

    import base64

    def hmacSha1WithBase64(signdata,signkey):

    sign = hmac.new(signkey, signdata,sha1).digest()

    sign = base64.b64encode(sign)

    return sign

    字符串拼接

    from collections import OrderedDict

    def composeStr(data,joiner,withkey=True,key_value_joiner="="):

    data = OrderedDict(sorted(data.items(), key=lambda t:t[0]))

    if withkey :

    signdata = joiner.join([key_value_joiner.join((str(key), str(elem))) for key, elem in data.iteritems()])

    else :

    signdata= joiner.join([elem for key, elem in data.items()])

    return signdata

    展开全文
  • 的值的函数value按format_spec的格式来格式化,然而函数解释format_spec是依据value的类型来决定的。不同的类型有不同的格式化解释。当參数format_spec为空时,本函数等同于函数str(value)的方式。事实上本函数调用...

    的值的函数value按format_spec的格式来格式化,然而函数解释format_spec是依据value的类型来决定的。不同的类型有不同的格式化解释。

    当參数format_spec为空时,本函数等同于函数str(value)的方式。

    事实上本函数调用时,是把format(value, format_spec)的方式转换为type(value).__format__(format_spec)方式来调用。因此在value类型里就查找方法__format__(),假设找不到此方法,就会返回异常TypeError。

    当中format_spec的编写方式例如以下形式:

    format_spec ::=  [[fill]align][sign][#][0][width][,][.precision][type]

    fill        ::=  

    align       ::=  "" | "=" | "^"

    sign        ::=  "+" | "-" | " "

    width       ::=  integer

    precision   ::=  integer

    type        ::=  "b" | "c" | "d" | "e" | "E" | "f" | "F" | "g" | "G" | "n" | "o" | "s" | "x" | "X" | "%"

    fill是表示能够填写不论什么字符。

    align是对齐方式,是右对齐。^是居中对齐。

    sign是符号,+表示正号,-表示负号。

    width是数字宽度,表示总共输出多少位数字。

    precision是小数保留位数。

    type是输出数字值是的表示方式,比方b是二进制表示;比方E是指数表示。比方X是十六进制表示。

    样例:

    #format()

    print(format(2918))

    print(format(0x500, 'X'))

    print(format(3.14, '0=10'))

    print(format(3.14159, '05.3'))

    print(format(3.14159, 'E'))

    print(format('test', '<20'))

    print(format('test', '>20'))

    print(format('test', '^20'))

    结果输出例如以下:

    2918

    500

    0000003.14

    03.14

    3.141590E+00

    test

    test

    test

    蔡俊生  QQ:9073204 深圳

    版权声明:本文博客原创文章,博客,未经同意,不得转载。

    展开全文
  • 原标题:Python内置函数——complex英文文档:classcomplex([real[, imag]])Return a complex number with the value real + imag**1j or convert a string or number to a complex number. If the first parameter ...
  • map()会根据提供的函数指定序列做映射第一个参数function以参数序列中的每一个元素调用function函数,返回包含每次function函数的新列表语法...-一个或者多个序列return valuepython 2 返回l列表python 3 返回迭代器...
  • enumerate函数接受一个可遍历的对象,如列表、字符串,可同时遍历下标(index)及元素值(value)>>> a = ['aaa','bbb','ccc',1235]>>> print(a)['aaa', 'bbb', 'ccc', 1235]>>> print(len(a...
  • DataFrame.value_counts(subset=None,normalize=False,sort=True,ascending=False)[source]返回一个包含DataFrame中唯一行数的Series。1.1.0版中的新功能。参数:subset:list-like, 可选计算唯一组合时要使用的列。...
  • getattr(object,name,default):作用:返回object的名称为name的属性的属性值,如果属性name存在,则直接返回其属性值;...如:def send_keys(self,loc,value, clear_first=True, click_first=True...
  • python3函数

    2019-09-26 15:02:18
    函数也可以使用 kwarg=value 的关键字参数形式被调用.例如,以下函数: 返回值 Python函数的返回值使用return语句,可以将函数作为一个值赋值给指定变量: def return_sum(x,y): c = x + y ...
  • def fun_var_args(farg, *args): print "arg:", farg for value in args: print "another arg:", value fun_var_args(1, "two", 3) # *args可以当作可容纳多个变量组成的listpython函数的几种参数类型python map函数...
  • 函数1、def2、命名3、函数体4、return 返回值defget_return():a= 1return a函数参数有 形参和实参定义几个形参就要传几个实参。形参接收传参的时候默认是一一对应的1、普通参数def get_return(b): #b为形参a = b + 1...
  • Python dict 函数

    2020-12-28 13:49:15
    关键词:dict() 函数 python 字典 map key value 快速 高效 Python内置了字典:dict的支持,dict全称dictionary,在其他语言中也称为map,使用键-值(key-value)存储,具有极快的查找速度。 用Python写一个dict...
  • 官方文档print(…)print(value, …, sep=’ ‘, end=’\n’, file=sys.stdout, flush=False)Prints the values to a stream, or to sys.stdout by default.Optional keyword arguments:file: a file-like object ...
  • 项目使用场景:需要对一个包含字典的列表进行数据格式的转化,指定 dict 中某个具体 key 的value 作为 新的 key,新的 value 是一个列表,包含了原始的那些数据from itertools import groupbyfrom operator import ...
  • python中bool函数Python bool()函数 (Python bool() function)bool() function is used to convert a given value to the Boolean value (True or False) as per the standard truth testing procedures. It accepts...
  • 定义:值传递(pass by value)是指在调用函数时将实际参数复制一份传递到函数中,这样在函数中如果对参数进行修改,将不会影响到实际参数。引用传递(pass by reference)是指在调用函数时将实际参数的地址直接传递到...
  • python中的函数非常多,大多数运行后,结束时都...使用 returnvalue 可以返回单个值,用 returnvalue1,value2 则能让函数同时返回多个值。如果一个函数体内没有任何 return 语句,那么这个函数的返回值默认为 Non...
  • 此时使用min的key参数用来指定比较的方法,此处key可以为一个lambda函数或其他函数参数,此处用来指定比较value值 此处dict_layouts_fn.get后面没加括号表示对该函数本身的调用 # min对字典处理完,无论比较的是key...
  • 只要在函数参数名后面加上 ”=defalut_value”,函数默认值就定义好了。有一个地方需要注意的是,有默认值的参数必须在函数参数列表的最后,不允许将没有默认值的参数放在有默认值的参数后,因为如果你那样定义的话...
  • Python 3 函数部分

    2021-01-12 21:03:59
    Python函数 9-1 Python调用函数 Python官方文档 内置函数 求绝对值 abs() 绝对值 absolute value 比较大小 cmp() 比较 compare 小于返回 -1 等于返回 0 大于返回 1 基础数据类型转换函数 int() ...
  • Python匿名函数

    2019-01-19 18:24:45
    Python 匿名函数 ⽤lambda关键词能创建⼩型匿名函数。这种函数得名于数的标准步骤。lambda函数的语法只包含⼀个语句,如下: lambda [arg1 [,arg2argn]]:expressi 如下实例: sum = lambda arg1, arg2: arg1 + arg2 ...
  • Python中,可以使用标准库inspect的一些方法或类,来操作或创建函数签名。获取函数签名及参数使用标准库的signature方法,获取函数签名对象;通过函数签名的parameters属性,获取函数参数。# 注意是小写的...
  • Python内置函数

    2019-06-18 16:50:00
    Python解释器具有许多始终可用的功能...在Python 3.6(最新版本)中,有68个内置函数。它们按字母顺序列在下面,并附有简要说明。 Python abs() returns absolute value of a number Python all() r...
  • sorted(d.items(),key=lambda item:item[1] ,reverse=False) 注意得到的是个list,要得到字典前面加dict()>>> d={"one":45,"two":24,"three":78,"four":98} >>> d.items() dict_items([('one', 45), ('two', 24), ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 5,805
精华内容 2,322
关键字:

pythonvalue函数

python 订阅