函数定义 在python中函数的定义以及调用如下代码所示: def test(x): y = x+1 return y result = test(2) print(result) 多个返回值的情况 如果在函数中return多个值,会将那多个值打包成一个元组传出,如下代码所示 def test(x): y1 = x+1 y2 = x+2 return y1,y2 result = test(2) print(result) #打印结果为(3, 4) 使用关键字参数的情况 使用关键字参数,则传参的…
一.默认参数 先看下下面的代码: def stu_register(name,age,country,course): print("----注册学生信息------") print("姓名:",name) print("age:",age) print("国籍:",country) print("课程:",course) stu_register("王山炮",22,"CN&q…
Python之路,Day3 - Python基础3   本节内容 1. 函数基本语法及特性 2. 参数与局部变量 3. 返回值 嵌套函数 4.递归 5.匿名函数 6.函数式编程介绍 7.高阶函数 8.内置函数 温故知新 1. 集合 主要作用: 去重 关系测试, 交集\差集\并集\反向(对称)差集 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 >>> a = {1,2,3,4} >>> b ={3,4,5,6} &g…
python基础——函数的参数 定义函数的时候,我们把参数的名字和位置确定下来,函数的接口定义就完成了.对于函数的调用者来说,只需要知道如何传递正确的参数,以及函数将返回什么样的值就够了,函数内部的复杂逻辑被封装起来,调用者无需了解. Python的函数定义非常简单,但灵活度却非常大.除了正常定义的必选参数外,还可以使用默认参数.可变参数和关键字参数,使得函数定义出来的接口,不但能处理复杂的参数,还可以简化调用者的代码. 位置参数 我们先写一个计算x2的函数: def power(x): ret…
Python进阶-函数默认参数 写在前面 如非特别说明,下文均基于Python3 一.默认参数 python为了简化函数的调用,提供了默认参数机制: def pow(x, n = 2): r = 1 while n > 0: r *= x n -= 1 return r 这样在调用pow函数时,就可以省略最后一个参数不写: print(pow(5)) # output: 25 在定义有默认参数的函数时,需要注意以下: 必选参数必须在前面,默认参数在后: 设置何种参数为默认参数?一般来说,将参数值…
def extend_list(v, li=[]): li.append(v) return li list1 = extend_list(10) print(list1) # [10] list2 = extend_list(123, []) print(list2) # [123] list3 = extend_list('a') print(list3) # [10, 'a'] print("-" * 20) print(list1) # [10, 'a'] print(list…
一.文件操作 1.对文件操作流程 打开文件,得到文件句柄并赋值给一个变量 通过文件句柄对文件进行操作 关闭文件 #打开文件,读写文件,关闭文件 http://www.cnblogs.com/linhaifeng/articles/5984922.html 文件处理连接 文件操作 #打开 f=open('a.txt',mode='r',encoding='utf-8') 读/写 data=f.read() print(data) #关闭 del f #回收Python的资源 f.close() #…
一.实参 1.实参分类: 2.实参基础代码: def fun01(a, b, c): print(a) print(b) print(c) # 位置传参:实参与形参的位置依次对应 fun01(1, 2, 3) # 序列传参:用*将序列拆分后与形参的位置依次对应 fun01(*[4, 5, 6]) # 关键字传参:实参根据形参的名称进行对应 fun01(b=2, a=1, c=3) # 字典传参:用**将字典拆分后与形参的名字进行对应. fun01(**{"b":20,"c&q…
函数进阶内容梗概: 1. 函数参数--动态传参 2. 名称空间, 局部名称空间, 全局名称空间, 作⽤用域, 加载顺序. 3. 函数的嵌套 4. gloabal , nonlocal 关键字 1. 函数参数--动态传参1.1动态位置接受参数,在参数位置编写*表⽰示接收任意内容 def chi(*food): print("我要吃", food) chi("大米饭", "小米饭") 结果: 我要吃 ('大米饭', '小米饭') # 多个参数传递进去…
发现C/C++  Python的函数可以使用默认参数,来减少传参时候的参数个数. 但是:这样的默认参数最好是不变对象! #include <stdio.h> #include <string.h> void func_1(int id, char s[], char city[] = "Bejing") { printf("%d, %s, %s",id, s, city); } int main() { func_1(, "李金旭&…
上节课总结 1.三元运算 name=“name1”if 条件 else “name2” 2.深浅拷贝 数字.字符串 深浅,都一样 2.其他 浅拷贝:只拷贝第一层 深拷贝:不拷贝最后一层 3.set集合 无序,不重复 交集.并集.差集.各种集 4.函数 1.def 2.函数名,参数 3.功能 4.返回值   参数 普通参数 指定参数 默认参数,默认参数只能放到最后面 动态参数 *args>=元组 **kwargs>=列表 全局变量 global *************************…
https://eastlakeside.gitbooks.io/interpy-zh/content/Mutation/ 看下面的代码 def add_to(num, target=[]): target.append(num) return target add_to(1) # Output: [1] add_to(2) # Output: [1, 2] add_to(3) # Output: [1, 2, 3] 这次又没有达到预期,是列表的可变性在作怪.在Python中当函数被定义时,默认…
定义函数的时候,我们把参数的名字和位置确定下来,函数的接口定义就完成了.对于函数的调用者来说,只需要知道如何传递正确的参数,以及函数将返回什么样的值就够了,函数内部的复杂逻辑被封装起来,调用者无需了解. Python的函数定义非常简单,但灵活度却非常大.除了正常定义的必选参数外,还可以使用默认参数.可变参数和关键字参数,使得函数定义出来的接口,不但能处理复杂的参数,还可以简化调用者的代码. 一. 位置参数; def power(x, n): s = 1 while n > 0: n = n -…
一个老问题: def func(defau=[]): defau.append(1) return defau print(func())#print[1] print(func())#print[1,1] print(func())#print[1,1,1] 学python时候应该都遇到过这个问题,为什么?一般的说法是把这个可变的默认参数和函数绑定在一块了 但是,怎么绑定的??? 看python文档[1],里面对def的解释: A function definition is an execu…
def extendList(val, test=[]): test.append(val) return test list1 = extendList(10) list2 = extendList(123,[]) list3 = extendList('a') print("list1 = %s" % list1) print("list2 = %s" % list2) print("list3 = %s" % list3)运行结果:list…
add by zhj: Python设计者为何将默认参数设计成这样呢?参见Python函数参数默认值的陷阱和原理深究 原文:https://github.com/acmerfight/insight_python/blob/master/Default_Parameter.md 文章的主题 不要使用可变对象作为函数的默认参数例如 list,dict,因为def是一个可执行语句,只有def执行的时候才会计算默认默认参数的值,所以使用默认参数会造成函数执行的时候一直在使用同一个对象,引起bug. 基…
函数的使用原则 函数的使用必须遵循:先定义后使用的原则 函数的定义,与变量的定义是相似的,如果没有事先定义函数而直接引用就相当于在引用一个不存在变量名 定义阶段:只检测语法,不执行代码,当出现语法错误会抛出错误 def foo(): print('from foo') bar() def bar(): print('from bar') 调用阶段:执行代码的过程中,会检查逻辑问题,当引用一个不存在的变量名会抛错 foo() 函数参数 形参与实参 形参指的是函数定义时候标记的变量名,实参表示函数调…
在Python教程里,针对默认参数,给了一个“重要警告”的例子: def f(a, L=[]): L.append(a) return L print(f(1)) print(f(2)) print(f(3)) 默认值只会执行一次,也没说原因.会打印出结果: [1] [1, 2] [1, 2, 3] 因为学的第一门语言是Ruby,所以感觉有些奇怪. 但肯定的是方法f一定储存了变量L. 准备知识:指针 p指向不可变对象,比如数字.则相当于p指针指向了不同的内存地址. p指向的是可变对象,比如lis…
一.默认参数 python为了简化函数的调用,提供了默认参数机制: 这样在调用pow函数时,就可以省略最后一个参数不写: 在定义有默认参数的函数时,需要注意以下: 必选参数必须在前面,默认参数在后: 设置何种参数为默认参数?一般来说,将参数值变化小的设置为默认参数. python标准库实践 python内建函数: 函数签名可以看出,使用print('hello python')这样的简单调用的打印语句,实际上传入了许多默认值,默认参数使得函数的调用变得非常简单. 二.出错了的默认参数 引用一个官…
本节内容 1. 函数基本语法及特性 2. 参数与局部变量 2.2. 函数变量作用域 3. 返回值 嵌套函数 4.递归 5.匿名函数 6.函数式编程介绍 7.高阶函数 8.内置函数 1. 函数基本语法及特性 函数是什么? 函数的英文 function()功能的意思.(即一般一个函数实现一个功能) 函数的作用: 1.减少重复代码 2.方便修改,更易扩展 3.保持代码的一致性 函数语法定义: def 函数名(形参): ... 函数体 ... 返回值 函数名(实参) ---------我是分割线----…
定义函数的时候,还可以有默认参数. 例如Python自带的 int() 函数,其实就有两个参数,我们既可以传一个参数,又可以传两个参数: >>> int('123') 123 >>> int('123', 8) 83 int()函数的第二个参数是转换进制,如果不传,默认是十进制 (base=10),如果传了,就用传入的参数. 可见,函数的默认参数的作用是简化调用,你只需要把必须的参数传进去.但是在需要的时候,又可以传入额外的参数来覆盖默认参数值. 我们来定义一个计算 x…
1.可变的默认参数----list  示例: def add(a, mylist=[]): # print(id(mylist)) mylist.append(a) return mylist print(add(5)) print(add(6)) "])) print(add(7)) 输出结果: 预期输出 实际输出 [5][6]['6', 9008][ 7] [5][5, 6]['0908', 6][5, 6, 7]  查看其id def add(a, mylist=[]): print(&q…
1. inline内联函数 内联函数用于替换宏, 实例: 其中宏和 ++ 连用有副作用. #include "iostream" using namespace std; #define MYFUNC(a, b) ((a) < (b) ? (a) : (b)) inline int myfunc(int a, int b) { return a < b ? a : b; } int main() { ; ; //int c = myfunc(++a, b); int c =…
坑 当你的默认参数如果是可变的数据类型,你要小心了 例题 # 正常没毛病的操作 def func(a,b=False): print(a) print(b) func(1,True) # 在实参角度,传的的True对默认关键字参数进行了修改操作 # 结果 1 True # 坑来了 # 就是当你的默认参数如果是可变的数据类型,你要小心了 # 也就是 def func(a,b=[1,2,3,4])这个时候要小心b列表中的内容 def func(a,1i=[]): li.append(a) retur…
参数作用:如果外界希望在函数内部处理数据,就可以将数据作为参数传入函数内部: 返回值作用:如果希望一个函数函数执行完成后,向外界报告函数的执行结果,就可以使用函数的返回值. 函数的返回值 进阶 利用元组返回多个函数值 可以用元组让函数返回多个值:如果函数返回的类型时元组,那么小括号可以省略:比如,以下两个就相等: return (temp, humidity) = return temp, humidity def measure(): """ 测量温度和湿度 :return…
数据类型和变量 Python中直接处理的数据类型主要有以下几种: 整数:Python可以直接处理任意大小的整数,无论正负,都可以直接输入处理: 浮点数:浮点数也叫做小数.有普通写法,如:1.1,也有描述很大或者很小的科学计数法,有e代替10,有1.3e6.1.2e-5等: 字符串:用‘’和“”表示的都是字符串,如‘abc’,“ABC”.但是如果字符串中包含’或者”,则注意只包含’,外面用“”括起来:只包含”的,外面用‘’括起来.和c中一样,\是转义字符,但是使用比较麻烦.如果‘和”都包含的话,可…
一.文件操作 对文件操作流程 打开文件,得到文件句柄并赋值给一个变量 通过句柄对文件进行操作 关闭文件 现有文件如下 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 Somehow,…
带参数的装饰器:就是在原装饰器外再包一层函数 def auth(driver='file'): def auth2(func): def wrapper(*args,**kwargs): name=input("user: ") pwd=input("pwd: ") if driver == 'file': if name == 'egon' and pwd == '123': print('login successful') res=func(*args,**k…
1.数据运算 算数运算 整除运算:// 取余运算:% 指数运算:** 赋值运算 b+=a;等价于b=b+a 比较运算 >,<,==,!=,>=,<= 逻辑运算符 and .or .not 运算优先级:按照短路原则从左到右计算 条件1 and 条件2:如果条件1为假,python将不会再计算条件2,直接返回True 条件1 or 条件2:如果条件1为真,python将不会再计算条件2,直接返回True 身份运算 is 判断两个标识符是不是引自同一对象,如果是返回True is not…