4、Python函数

函数定义

普通函数定义

def func (a,b,c):
    print('a = %s' % a)
    print('b = %s' % b)
    print('c = %s' % c)

调用

func (1, c = 2, b = 3)

可变长参数函数的定义

在参数的前面加 * ,定义可变长参数

def howLong (first, *other):
    # 统计参数的个数,first是必传,参数个数为1
    print(1 + len(other))

 # 参数的个数可以随意
howLong('123','456','789')

函数的局部变量问题:

var1 = 123

def func ():
    global var1  # 声明为全局变量之后,函数内部更改值后,函数外部也会改变
    var1 = 456
    print(var1)


func()

print(var1)

输出:
456
456

函数的迭代器和生成器

内置的迭代器:

list = ['123','456','789']
it = iter(list)
print( next(it) )
print( next(it) )
print( next(it) )
print( next(it) ) # error

输出:
123
456
789

自己制作迭代器,就是生成器

关键字yield

def frange(start,stop,step):
    x = start
    while x < stop:
        yield x
        x += step

for i in frange(10, 20 , 0.5):
    print(i)

输出:
10
10.5
11.0
11.5

示例:

读取TXT文件,并全局查找的函数,使用了with优雅的代替try

def find_item (hero):
    with open('sanguo.txt') as f:
        data = f.read().replace('\n','')
        name_num = re.findall(hero,data)
        # print('主角 %s 出现 %s 次'  %(hero,len(name_num)))
    return  len(name_num)

读取人物名称

hero_dict = {}

with open('name.txt') as namefile:
    nameArr = namefile.read().split('|')
    # print('姓名数组:%s' %nameArr)
    for hero in nameArr:
        hero_dict[hero] = find_item(hero)
        
    print(hero_dict)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值