python函数的编写

在python中,函数名加(),表示返回的是一个函数的结果,不加括号表示的是对函数的调用。

命名空间

作用域

名称含义
locals是函数内的名字空间,包括局部变量和形参
enlosing外部嵌套函数的名字空间
globals全局变量,是表示在单个文件内是全局的变量,定义所在模块的名字空间
builtins内置作用域表示在整个python程序中都含有的变量

· 变量查找规则LEGE的顺序对变量进行查找

向函数内传入参数时,*表示这个函数是一个可变参数(表示不确定有几个数据)
* * 表示是一个字典参数

高阶编程

  • map
    • 他接收一个函数f和一个list
    • 并通过把函数f依次作用在list的每个元素上,得到一个新list并返回。
  • filter
    • filter()函数接收一个函数f和一个list
    • 这个函数f的作用是对每个元素进行判断,返回True或False
    • 根据判断结果过滤掉不符合条件的元素,返回由符合元素组成的新list
  • reduce
    • 一个函数f,一个list,但行为和map()不同
    • reduce()传入的函数f必须接收两个参数
    • reduce()对list的每个元素反复调用函数f,并返回最终结果值。

format函数
  • 通过位置

    print '{0},{1}'.format('feifei',20)
    结果  feifei,20
    print '{1},{0}'.format('feifei',20)
    结果   20,feifei
    print '{1},{0},{1}'.format('feifei',20)
    结果  20, feifei, 20
    
  • 通过关键字参数

    print '{name},{age}'.format(age=18,name='feifei')
    结果 feifei,18
    
    class Person:
        def __init__(self,name,age):
            self.name = name
            self.age = age
    
        def __str__(self):
            return 'This guy is {self.name}, is {self.age} old'.format(self=self)
    
    print str(Person('feifei',18)
    
  • 通过映射 list

    a_list = ['feifei', 20, 'china']
    b_list = ['jingjing', 23,'american']
    print 'my name is {0[0]},from {1[2]},age is {0[1]}'.format(a_list,b_list)
    
  • 通过映射 dict

    a_dict = {'name':'feifei', 'age':24, 'province':'henan'}
    print 'my name is {name}, age is {age},from {province}'.format(**a_dict)
    
  • 填充与对齐

    print '{:>8}'.format('189')
    #        189
    print '{:0>8}'.format('189')
    #00000189
    print '{:a>8}'.format('189')
    #aaaaa189
    
  • 精度与类型

    保留两位小数

    print '{:.2f}'.format(321.33356)
    # 321.33
    
  • 用来做金额的千分隔符

    print '{:,}'.format(321333561344)
    # 321,333,561,344
    
  • 用来做进制之间的转换

    print '{:b}'.format(18) #二进制 10010
    print '{:d}'.format(18) #十进制 18
    print '{:o}'.format(18) #八进制 22
    print '{:x}'.format(18) #十六进制12
    

reload函数 重加载函数


_ all _ 决定在import *的时候导入的是什么
_ all _ 变量在 _ init _ .py 文件中


_ name __ main _
  • 文件作为模块进行导入,并独立程序运行
  • 每个模块的默认属性: _ name _
    • 这个值是原始文件所在的模块, python默认设置 ” _ main _
    • 如果是导入到其他文件中,则 _ name _ 就是模块的名称

运用

if __name__ == '__main__':
    main()

表示当文件是在不被调用的情况下执行时运行main()函数


sys.argv[]的含义
  • sys.argv[] 应该大彻大悟了吧。Sys.argv[ ]其实就是一个列表,里边的项为用户输入的参数,关键就是要明白这参数是从程序外部输入的,而非代码本身的什么地方,要想看到它的效果就应该将程序保存了,从外部来运行程序并给出参数。
.func_defaults

这个方法是用来返回某一函数的默认值的方法,例suquare.func_defaults

间接调用函数

函数自身存储在内存块中,可以跨程序自由传递和间接调用
间接调用 — 可以把函数对象赋值给其他的名称并且通过引用来调用

def func_a():
    a = 10
    def func_b():
        b = 10
        print b
    return func_b

x = func_a()
print x
print x()

x就是func_a()函数返回的值,即返回的是func_b函数
那么 x() 就是执行的func_b函数 ,那么结果就是 10
一个函数加上括号就是调用它的意思
但是不能直接去调用func_b(),因为它是一个局部的函数

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值