03python_function
来源:互联网 发布:打印机合格证的软件 编辑:程序博客网 时间:2024/04/30 05:08
Python学习笔记
03python_function
- defFunction
#-*- coding:utf-8 -*-print("defFunction")def my_function(x): if x>=0: return x else: return -xx = input("please input the value of x:")print(my_function(int(x)))#pass用于返回没有用的空函或者方法def my_fun01(y): pass#my_function(1,2)参数检查def my_fun02(x): if not isinstance(x,(int,float)): raise TypeError("bad operand type") if x!=100: print("not 100") else: print("hundred")print(my_fun02("hehe"))
- defFunctionPlus.py
#-*- coding:utf-8 -*-print("defFunction")def my_function(x): if x>=0: return x else: return -xx = input("please input the value of x:")print(my_function(int(x)))#pass用于返回没有用的空函或者方法def my_fun01(y): pass#my_function(1,2)参数检查def my_fun02(x): if not isinstance(x,(int,float)): raise TypeError("bad operand type") if x!=100: print("not 100") else: print("hundred")print(my_fun02("hehe"))
- function_abs_max
#-*- coding:utf-8 -*-print("abs求绝对值")print(abs(100))print(abs(-200))print(abs(12.43))print(max(1,2,3,5,-100))print(float("123.200"))print(int("12"))print(int(12.45))print(str(100))print(bool(1))print(bool(""))print("函数的别名")a = absprint(a(-123))n1 = 123141341print(hex(n1))print(n1,'\n',n1)#/n好像是用于这个换行空格 所以多出一个空格
- function_para
# -*- coding:utf-8 -*-def power(x): return x*x#这些都是必选参数print(power(25))#必选参数在前,默认参数在后才行def power(x,n=2): i = 1 for t in range(n):#rang是指从0-(n-1) 只是数这N个数而已 i = i * x return iprint(power(5,3))print(power(25))print("*********************************")def reroll(name,grade,age=6,city="xian"): print("name:",name) print("grade:",grade) print("age:",age) print("city:",city)reroll("xiaoming",14)reroll("xiaohong",99,8)reroll("yangcongtou",100,9,"beijing")reroll("lanmao",13,city="shanghai")print("*****************坑*******************")#默认参数最大的坑 准备好铲子了吗哈哈def add_end(L=[]): L.append("END") print(L)add_end([1,2,3])#[1,2,3,end]add_end()#[end]add_end()#[end,end]add_end()#..print("*******************调整*******************")#在函数声明的时候,L=[]就已经被声明出来了,所以它变成了一个可变的list供给使用,每次再重新调用的时候就会出现这种现象,所以必须放不可变对象def add_end_change(L = None): if L == None: L = [] L.append("END") print(L)add_end_change([1,2,3])#[1,2,3,end]add_end_change()#[end]add_end_change()#[end]add_end_change()#..#由于对象不变,多任务环境下同时读取对象不需要加锁,同时读一点问题都没有。我们在编写程序时,如果可以设计一个不变对象,那就尽量设计成不变对象。print("*******************可变参数********************")#实现一个累加程序,但是参数数量不确定def add_add(numbers): sum = 0 for i in numbers: sum = sum+i print(sum) return sumadd_add([1,23,4,5,78])#麻烦 每次都要输入这么长的数字def add_add(*numbers): sum = 0 for i in numbers: sum = sum+i print(sum) return sumadd_add(1,2,3,4,567,1)#在函数内部,参数numbers接收到的是一个tupleadd_add()Lisa = [1,2,3,4,5,123,6,7]hels = (1,2,4,45,4,7,88,9)add_add(Lisa[0],Lisa[1],Lisa[2],Lisa[3],Lisa[4],Lisa[5],Lisa[6],Lisa[7])add_add(*Lisa)add_add(*hels)#nice#很有用print("********************关键字参数*********************")#关键字参数主要是用于传递dict的,这样有键值对的值用**来传递def person(name,age,**kv): print({"name":name,"age":age,"other":kv})person("Aono",12)person("Aono",12,city="xian")person("Aono",12,city="xian",grade=100)extr = {"city":"beijing","grade":123}person("Aono",12,**extr)person("Aono",12)
- function_para_other
# -*- coding:utf-8 -*-print("************************命名关键字参数*************************")def person(name,age,**kw): if "city" in kw: print("jao") print("has_city") pass#有city参数 if "grade" in kw: print("hao") print("has_grade") pass#有grade参数 print("name:",name,"age:",age,"other:",kw)person("Aono",24,addr="dianzizhengjie",zipcode=123456)person("Aono",24,addr="dianzizhengjie",zipcode=123456,city="xian")print("限制关键字参数为city和grade")def person(name,age,*,city,grade):#*是特殊分隔符 用来区分位置参数和关键字参数的 print(name,age,city,grade)#命名关键字参数必须传入参数名,这和位置参数不同。如果没有传入参数名,调用将报错:person("Aono",24,city="xian",grade=100)#事实证明不都写上而且写对是有问题的#person("Aono",24,"xian")#命名关键字可以有默认值,这样就会避免没有写出现的问题def person(name,age,*,city="xian",grade): print(name,age,city,grade)person("Aono",24,city="xian",grade=100)person("Aono",24,grade=100)print("*************************参数组合****************************")print("*************************必选参数、默认参数、可变参数、关键字参数和命名关键字参数****************************")print("*************************顺序:必选参数、默认参数、可变参数/命名关键字参数和关键字参数****************************")def fun01(a,b,c = 0,*d,**e): print("a:",a,"b:",b,"c:",c,"d:",d,"e:",e)fun01(1,2,[23,45],k="123",f = 12)r = {"name":"Aono","age":23,"city":"xian","grade":122,"school":"jiliUniversity"}def fun02(*d,**e): print("d:",d,"e:",e)fun02(**r)
- function_recursive
# -*- coding:utf-8 -*-print("*********************递归函数*********************")def fact(n): if n == 1: return 1 else: return n*fact(n-1)print(fact(5))print(fact(100))#print(fact(1000))这样会栈溢出的 要注意print("*********************尾递归(类似于循环while)*********************")def fact_head(n): return fact_tail(n,1)def fact_tail(num,product): if num == 1: return product else: return fact_tail(num-1,num*product)print(fact_head(5))print(fact_head(100))#然而语言本身并没有对尾递归做了什么优化,所以还是会出现栈溢出的print("汉诺塔")print("设柱子A、B、C,有四个盘子,我们要想的是,第四个盘子从A-C就必须经历前三个盘子从A-B的经历,第三个盘子从A-B就必须经历前两个盘子从A-C,第二个盘子要经历从A-C就必须经历第一个盘子从A-B")def hanuo(n,a,b,c): #不得不说自己脑子够笨的,简单的问题复杂化 if n == 0: return None elif n == 1: print(a,"->",c) else: #print("把",n-1,"个从本地送到一个孤单的地方") hanuo(n-1,a,c,b) #print("本座",n,"移驾c") hanuo(1,a,b,c) #print("孩子们都过来",n-1) hanuo(n-1,b,a,c)hanuo(9,"A","B","C")
- thinking.txt
假设有四个:3要做底:遍历前2 2要做底:遍历前1 1要做底:无需遍历 1移动判断另外两个位置有没有大于本身的数,如果有,移动到较小的,没有,移动到100 2移动判断另外两个位置有没有大于本身的数,如果有,移动到较小的,没有,移动到100 1要做底:无需遍历 1移动判断另外两个位置有没有大于本身的数,如果有,移动到较小的,没有,移动到1003移动判断另外两个位置有没有大于本身的数,如果有,移动到较小的,没有,移动到100 2要做底:遍历前1 1要做底:无需遍历 1移动判断另外两个位置有没有大于本身的数,如果有,移动到较小的,没有,移动到100 2移动判断另外两个位置有没有大于本身的数,如果有,移动到较小的,没有,移动到100 1要做底:无需遍历 1移动判断另外两个位置有没有大于本身的数,如果有,移动到较小的,没有,移动到100上边的去死!!!
0 0
- 03python_function
- 03
- 03
- 03
- 03
- 03
- 03
- 2010-03-03
- 2010-03-03
- 10-03-03 培训
- Python 2011-03-03
- 2010-03-03
- 2011-03-03 LDAP
- 2013-03-03
- 2014/03/03
- 2015-03-03
- 2016-03-03补写
- 2017-03-03
- Fmod使用总结
- Android JSON解析
- Java 8特性探究(1):通往lambda之路_语法篇
- Javascript如何创建一个新的实例(指针)
- CSS 基础教程目录
- 03python_function
- 关于http请求头host字段中的port
- Activity中获取view的高度和宽度为0的原因以及解决方案
- cocos2d-x核心概念(二)——字符串,标签和菜单
- 上传文件的服务
- 52nod 1012最小公倍数LCM
- 彻底理解ThreadLocal
- iOS事务的基本概念
- Android查询 每个进程的权限