5-11 函数 赋值参数,可变参数

函数

def sayHi():

print ‘Hi‘

def cheng(a,b):

return a*b

print cheng(3,4)

局部变量:函数内部定义,函数调用结束后释放

全局变量:函数内外都可调用,global

>>> def hanshu2():
... global x                   #x为全局变量,x在函数内部加2的同时,全局变量x也改变了
... x=x+2
... print x

赋值参数 

def(x=1,y)                       #语法错误,赋值的参数后面不能有未赋值的参数,也就是赋值参数要放后面

#练习

>>> def compare(a,b,c):  #找出最大值函数
... if a>=b:
... if a>=c: return a
... else: return c
... else:
... if b>=c: return b
... else: return c
...

文档字符串

>>> def wendang():
... ‘‘‘test doc function‘‘‘           #文档字符串
... print ‘hi‘
...
>>> wendang()
hi
>>> wendang.__doc__
‘test doc function‘
>>>

可变参数

# encoding:utf-8

def he(x,*y):                      #*用来传递任意个无名字参数,这些参数会一个Tuple的形式访问
    ‘‘‘乘机之和的练习‘‘‘
    total = 0
    for i in y:
        total = total + i*x
    return total

print he(3,4)
print he(3,4,5)
# encoding:utf-8

def canshu(**y):                                      # **用来处理传递任意个有名字的参数,这些参数用dict来访问
    print u‘输入字典的长度为:%s‘ %(len(y))
    print y
    print y.keys()
    print y.values()

canshu(name=‘vp‘,age=‘m‘,sex=‘f‘)
时间: 2024-10-25 15:48:28

5-11 函数 赋值参数,可变参数的相关文章

C/C++函数中使用可变参数

先说明可变参数是什么,先回顾一下C++里面的函数重载,如果重复给出如下声明: 1 int func(); 2 int func(int); 3 int func(float); 4 int func(int, int); 5 ... 这样在调用相同的函数名 func 的时候,编译器会自动识别入参列表的格式,从而调用相对应的函数体. 但这样的方法毕竟有限,试想一下我们假如想定义一个函数,我们在调用之前(在运行期之前)根本不知道我到底要调用几个参数,并且不知道这些参数是个什么类型,例如我们想定义一个

python--关键字参数/可变参数--内置函数--时间模块--常用模块

---恢复内容开始---关键字参数/可变参数 知识点一.内置函数 def send_msm2(*args): #可变参数,参数组 print('phone',args)send_msm2()#返回值为元组 def send_msm2(*args): #可变参数,参数组 print('phone',args)send_msm2(110, 113, 333) #参数组不能用word= "haha "这样的形式,直接传def say(word,*args): print(word) prin

C++11新特性之五——可变参数模板

有些时候,我们定义一个函数,可能这个函数需要支持可变长参数,也就是说调用者可以传入任意个数的参数.比如C函数printf(). 我们可以这么调用. printf("name: %s, number: %d", "Obama", 1); 那么这个函数是怎么实现的呢?其实C语言支持可变长参数的. 我们举个例子, double Sum(int count, ...) { va_list ap; double sum = 0; va_start(ap, count); fo

(一)Python入门-5函数:06参数类型-位置参数-默认值参数-命名参数-可变参数-强制命名参数

参数的几种类型: 位置参数: 函数调用时,实参默认按位置顺序传递,需要个数和形参匹配.按位置传递的参数,称为: “位置参数” 默认值参数: 我们可以为某些参数设置默认值,这样这些参数在传递时就是可选的.称为“默认值参数”. 默认值参数放到位置参数后面. 命名参数: 我们也可以按照形参的名称传递参数,称为“命名参数”,也称“关键字参数”. 可变参数: 可变参数指的是“可变数量的参数”.分两种情况: 1. *param(一个星号),将多个参数收集到一个“元组”对象中. 2. **param(两个星号

函数-参数(可变参数&关键字)

一个*,会把输入参数打包成一个tuple 两个*,会把输入参数打包成一个字典 1 """ 2 可变参数 3 """ 4 5 6 def add(*args): 7 print(args) 8 9 10 add() # 空元组 11 add(1) # (1,) 12 add(1, 2, 3) # (1, 2, 3) 可变参数求和(开发过程中,如果参数个数不确定的情况下) 调用函数,就是找到def定义的那块内存,想办法往里面传值. 系统只要看到*ar

函数中的可变参数

可变指的是函数参数的个数可变,可以是1个.2个到任意个,还可以是0个. 我们以数学题为例子,给定一组数字a,b,c--,请计算a2 + b2 + c2 + --. 要定义出这个函数,我们必须确定输入的参数.由于参数个数不确定,我们首先想到可以把a,b,c--作为一个list或tuple传进来,这样,函数可以定义如下: def calc(numbers): sum = 0 for n in numbers: sum = sum + n * n return sum 但是调用的时候,需要先组装出一个

2017寒假零基础学习Python系列之函数之 函数之定义可变参数

若想让函数接受任意个参数,就可以定义一个可变的参数: def fn(*args): print args fn() >>>() fn(1,2,5,6) >>>(1,2,5,6) 原理是Python解释器把传入的一组参数封装在一个tuple传递给可变参数,因此在函数内部,直接把变量args看成一个tuple就好了,目的是简化调用 小习题:假设我们要计算任意个数的平均值,就可以定义一个可变参数: def average(*args): ... 这样,在调用的时候,可以这样写

11、Map、可变参数、Collections

Map接口 Map集合概述 *A:Map集合概述: 我们通过查看Map接口描述,发现Map接口下的集合与Collection接口下的集合,它们存储数据的形式不同 a:Collection中的集合,元素是孤立存在的(理解为单身),向集合中存储元素采用一个个元素的方式存储. b:Map中的集合,元素是成对存在的(理解为夫妻).每个元素由键与值两部分组成,通过键可以找对所对应的值. Collection中的集合称为单列集合,Map中的集合称为双列集合. 需要注意的是,Map中的集合不能包含重复的键,值

Effective JavaScript Item 21 使用apply方法调用函数以传入可变参数列表

本系列作为Effective JavaScript的读书笔记. 下面是一个拥有可变参数列表的方法的典型例子: average(1, 2, 3); // 2 average(1); // 1 average(3, 1, 4, 1, 5, 9, 2, 6, 5); // 4 average(2, 7, 1, 8, 2, 8, 1, 8); // 4.625 而以下则是一个只接受一个数组作为参数的例子: averageOfArray([1, 2, 3]); // 2 averageOfArray([1

C语言可变参数函数实现原理

一.可变参数函数实现原理 C函数调用的栈结构: 可变参数函数的实现与函数调用的栈结构密切相关,正常情况下C的函数参数入栈规则为__stdcall, 它是从右到左的,即函数中的最右边的参数最先入栈. 本文地址:http://www.cnblogs.com/archimedes/p/variable-parameter.html,转载请注明源地址. 例如,对于函数: void fun(int a, int b, int c) { int d; ... } 其栈结构为 0x1ffc-->d 0x200