zoukankan      html  css  js  c++  java
  • 函数的参数,作用域.

    #!/usr/bin/env python
    # -*- coding:utf-8 -*-
     
    # 1.写函数,函数可以支持接收任意数字(位置传参)并将所有数据相加并返回。
    '''
    def func(*args):
    return sum(args)
     
    print(func(1, 2, 3))
    '''
     
    # 2.看代码写结果
    '''
    def func():
    return 1, 2, 3
     
    val = func()
    print(type(val) == tuple) #True
    print(type(val) == list) #False
    '''
     
    # 3.看代码写结果
    # def func(*args,**kwargs):
    # pass
     
    # a. 请将执行函数,并实现让args的值为 (1,2,3,4)
    '''
    def func(*args,**kwargs):
    return args
    print(func(1,2,3,4))
    '''
    # b. 请将执行函数,并实现让args的值为 ([1,2,3,4],[11,22,33])
    '''
    def func(*args,**kwargs):
    return args
    print(func([1,2,3,4],[11,22,33]))
    '''
    # c. 请将执行函数,并实现让args的值为 ([11,22],33]) 且 kwargs的值为{'k1':'v1','k2':'v2'}
    '''
    def func(*args,**kwargs):
    return args,kwargs
    print(func(*([11,22],33),**({'k1':'v1','k2':'v2'})))
    '''
    # d. 如执行 func(*{'武沛齐','金鑫','女神'}),请问 args和kwargs的值分别是?
    '''
    args = ('武沛齐','金鑫','女神') kwargs = {}
    '''
    # e. 如执行 func({'武沛齐','金鑫','女神'},[11,22,33]),请问 args和kwargs的值分别是?
    '''
    args = ({'武沛齐','金鑫','女神'},[11,22,33]) kwargs = {}
    '''
    # f. 如执行 func('武沛齐','金鑫','女神',[11,22,33],**{'k1':'栈'}),请问 args和kwargs的值分别是?
    '''
    args = ('武沛齐','金鑫','女神',[11,22,33]) kwargs = {'k1':'栈'}
    '''
     
    # 4.看代码写结果
    '''
    def func(name, age=19, email='123@qq.com'):
    return name,age,email
    print(func())
    '''
    # a. 执行 func('alex') ,判断是否可执行,如可以请问 name、age、email 的值分别是?
    '''
    可执行,name = 'alex', age = 19, email = 123@qq.com
    '''
    # b. 执行 func('alex',20) ,判断是否可执行,如可以请问 name、age、email 的值分别是?
    '''
    可执行,name = 'alex', age = 20, email = 123@qq.com
    '''
    # c. 执行 func('alex',20,30) ,判断是否可执行,如可以请问 name、age、email 的值分别是?
    '''
    可执行,name = 'alex', age = 20, email = 30
    '''
    # d. 执行 func('alex',email='x@qq.com') ,判断是否可执行,如可以请问 name、age、email 的值分别是?
    '''
    可执行,name = 'alex', age = 19, email = x@qq.com
    '''
    # e. 执行 func('alex',email='x@qq.com',age=99) ,判断是否可执行,如可以请问 name、age、email 的值分别是?
    '''
    可执行,name = 'alex', age = 99, email = x@qq.com
    '''
    # f. 执行 func(name='alex',99) ,判断是否可执行,如可以请问 name、age、email 的值分别是?
    '''
    不可执行,位置参数必须在关键字参数前面.
    '''
    # g. 执行 func(name='alex',99,'111@qq.com') ,判断是否可执行,如可以请问 name、age、email 的值分别是?
    '''
    不可执行,位置参数必须在关键字参数前面.
    '''
     
    # 5.看代码写结果
    '''
    def func(users,name):
    users.append(name)
    return users
     
    result = func(['武沛齐','李杰'],'alex')
    print(result) # ['武沛齐','李杰','alex']
    '''
     
    # 6.看代码写结果
    '''
    def func(v1):
    return v1 * 2
     
    def bar(arg):
    return "%s 是什么玩意?" % (arg,)
     
    val = func('你')
    data = bar(val)
    print(data) # 你你 是什么玩意?
    '''
     
    # 7.看代码写结果
    '''
    def func(v1):
    return v1 * 2
     
    def bar(arg):
    msg = "%s 是什么玩意?" %(arg,)
    print(msg)
     
    val = func('你')
    data = bar(val)
    print(data) # 你你 是什么玩意? None
    '''
     
    # 8.看代码写结果
    '''
    v1 = '武沛齐'
     
    def func():
    print(v1)
     
    func()
    v1 = '老男人'
    func() # 武沛齐 老男人
    '''
     
    # 9.看代码写结果
    '''
    v1 = '武沛齐'
     
    def func():
    v1 = '景女神'
    def inner():
    print(v1)
    v1 = '肖大侠'
    inner()
    func()
    v1 = '老男人'
    func() # 肖大侠 肖大侠
    '''
     
    # 10.看代码写结果【可选】注意:函数类似于变量,func代指一块代码的内存地址。
    '''
    def func():
    data = 2*2
    return data
     
    new_name = func
    val = new_name()
    print(val) # 4
    '''
     
     
    # 11.看代码写结果【可选】注意:函数类似于变量,func代指一块代码的内存地址。
    '''
    def func():
    data = 2*2
    return data
     
    data_list = [func,func,func]
    for item in data_list:
    v = item()
    print(v) # 4 4 4
    '''
     
     
    # 12.看代码写结果(函数可以做参数进行传递)【可选】
    '''
    def func(arg):
    arg()
     
    def show():
    print('show函数')
     
    func(show) # show函数
    '''

     

  • 相关阅读:
    Django 之 ORM
    python 变量问题 提问有大佬知道吗?
    celery 使用详解
    ubuntu 网络图标消失问题解决
    django + uwsgi 部署上线
    Python pip常用源地址
    ConfigParser 模块 使用
    Mysql 远程登录问题解决
    商城项目 从设想到实现
    硬盘上有打开的锁和感叹号标志如何解决(win10系统)
  • 原文地址:https://www.cnblogs.com/zjx1/p/10686107.html
Copyright © 2011-2022 走看看