小甲鱼Python3学习笔记之第十九讲(仅记录学习)

第十九讲:函数,我的地盘听我的

一、知识点:

0.函数与过程:过程(procedure)是简单的,特殊且没有返回值。函数有返回值。

Python严格来说只有函数没有过程。

1.局部变量:在局部生效的变量,如在函数中定义的变量。

2.全局变量:在函数外定义的变量,作用于整个模块。

函数内若试图修改全局变量,Python会新建一个同名局部变量用于存储修改值,原全局变量的值不变

def discount(price,rate):
    final_price=price*rate #局部变量
    #print('打印全局变量:',old_price)
    old_price=50 #创造一个名字一样的局部变量
    print('修改后old_price的值是:',old_price)
    return final_price


old_price=float(input("请输入原价:")) #全局变量
rate=float(input("请输入折扣率:"))
new_price=discount(old_price,rate)
print("折后价",new_price)

--------------------------------------------------------------------我是一条分割线----------------------------------------------------------------------

0.下边程序会输入什么?

>>> def next():
        print('我在next()函数里……')
        pre()      
>>> def pre():
        print('我在pre()函数里……')      
>>> next()

我在next()函数里……

我在pre()函数里……

1.请问一下这个函数有返回值吗?

>>> def hello():
        print('Hello FishC!')

有。会返回一个none对象。

如果没有使用return语句指定返回值,Python也不是什么都不返回的,Ta会返回一个None对象,所以我们说Python所有的函数都有返回值。

2.请问python的return语句可以返回多个不同类型的数据吗?

可以。默认用逗号隔开,以元组形式返回。也可以使用列表包含起来返回。

3.目测以下程序会打印什么内容?

>>> def fun(var):
        var = 1314
        print(var,end='')

>>> var = 520
>>> fun(var)
1314
>>> print(var)
5201314
>>> print(var)
520

4.目测以下程序会打印什么内容?

>>> var = 'Hi'
>>> def fun1():
        global var
        var = 'Baby'
        return fun2(var)

>>> def fun2(var):
        var += 'I Love You'
        fun3(var)
        return var

>>> def fun3(var):
        var = '小甲鱼'

BabyI Love You

--------------------------------------------------------------------我是一条分割线----------------------------------------------------------------------

三、动动手:

0. 编写一个函数,判断传入的字符串参数是否为“回文联”(回文联即用回文形式写成的对联,既可顺读,也可倒读。例如:上海自来水来自海上)

>>> def hwl(string):
        list1=list(string)
        list2=reversed(list1)
        if list1 == list(list2):
               return '是回文联!'
        else:
               return '不是回文联!'

1.编写一个函数,分别统计出传入字符串参数(可能不只一个参数)的英文字母、空格、数字和其它字符的个数。

>>> def countn(*paras):
        length = len(paras)
        engnum = 0
        spanum = 0
        digitnum = 0
        othnum = 0
        for i in range(length-1):
               for each in str(paras[i]):
                       if each.isalpha():
                               engnum += 1
                       elif each.isspace():
                               spanum += 1
                       elif each.isdigit():
                               digitnum += 1
                       else:
                               othnum += 1
        print('英文字符个数:%d'%engnum)
        print('空格个数:%d'%spanum)
        print('数字个数:%d'%digitnum)
        print('其他字符个数:%d'%othnum)

--------------------------------------------------------------------我是一条分割线---------------------------------------------------------------------

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值