python基础学习(二)
2.1 python定义函数用def,没有返回类型?def myabs(x) if x>0: return x
python定义的函数可以多个直接一起返回,这一点和java有点不同。
例如:import math
def move(x,y,step,angle=0):
nx=x+step*math.cos(angle)
ny=y-step*math.sin(angle)
return nx,ny
x,y=move(100,100,20,math.pi/6)
print x,y

python默认参数:可以解决参数个数不相对的地方,但是默认参数必须放在后面。另外默认参数必须使用不可变的对象来实现,比如str,None ,tuple
不能用List。原因如下:
def add(L=[]):
L.append('abc')
return L
print add()
print add()
print add()
结果输出如下:
['abc']
['abc', 'abc']
['abc', 'abc', 'abc']
原因是:python在定义函数的时候就把默认参数的值计算出来,其结果是,每次用默认参数调用函数的时候,L因为是可变的对象,
所以L每次被默认参数调用都相当于记住。
修改:def add_end(L=None):
if L is None:
L = []
L.append('END')
return L
简单来说就是调用默认函数时不要用可变的对象。
python可变参数:即函数参数的个数可以随意改变。就是调用的时候用的参数是List或者tuple
例如:
def function(numbers):
sum=0
for number in numbers:
sum+=number
return sum
print function([1,2,3,4,5])

第二中情况:当调用函数时没有用到list或者是tuple那么上面的形参就要用可变的*number,情况如下:
def function(*numbers):
sum=0
for number in numbers:
sum+=number
return sum
print function(1,2,3,4,5)
python关键字参数:关键字参数就是形参上面加**,比如**kw,然后这个参数可以接受参数名和它的值,自动组装成一个dict。例如:
def func(a, b, c=0, *args, **kw):
print 'a =', a, 'b =', b, 'c =', c, 'args =', args, 'kw =', kw
func(1,2,3,'a','x','c',x=6)
a = 1 b = 2 c = 3 args = ('a', 'x', 'c') kw = {'x': 6}
递归函数(学习c的时候被这个折磨过。。。):a=raw_input('enter a number:')输入的任何东西自动转化成字符串。
递归就是不断地调用自身,然后会有一个结束条件。用栈实现,就是最开始算的是栈最高位置的函数值,然后
返回给它的下一层以供下一层使用,以此类推。最后算出你写的那个函数的值。

Python学习(2)的更多相关文章

  1. Python学习--04条件控制与循环结构

    Python学习--04条件控制与循环结构 条件控制 在Python程序中,用if语句实现条件控制. 语法格式: if <条件判断1>: <执行1> elif <条件判断 ...

  2. Python学习--01入门

    Python学习--01入门 Python是一种解释型.面向对象.动态数据类型的高级程序设计语言.和PHP一样,它是后端开发语言. 如果有C语言.PHP语言.JAVA语言等其中一种语言的基础,学习Py ...

  3. Python 学习小结

    python 学习小结 python 简明教程 1.python 文件 #!/etc/bin/python #coding=utf-8 2.main()函数 if __name__ == '__mai ...

  4. Python学习路径及练手项目合集

    Python学习路径及练手项目合集 https://zhuanlan.zhihu.com/p/23561159

  5. python学习笔记-python程序运行

    小白初学python,写下自己的一些想法.大神请忽略. 安装python编辑器,并配置环境(见http://www.cnblogs.com/lynn-li/p/5885001.html中 python ...

  6. Python学习记录day6

    title: Python学习记录day6 tags: python author: Chinge Yang date: 2016-12-03 --- Python学习记录day6 @(学习)[pyt ...

  7. Python学习记录day5

    title: Python学习记录day5 tags: python author: Chinge Yang date: 2016-11-26 --- 1.多层装饰器 多层装饰器的原理是,装饰器装饰函 ...

  8. [Python] 学习资料汇总

    Python是一种面向对象的解释性的计算机程序设计语言,也是一种功能强大且完善的通用型语言,已经有十多年的发展历史,成熟且稳定.Python 具有脚本语言中最丰富和强大的类库,足以支持绝大多数日常应用 ...

  9. Python学习之路【目录】

    本系列博文包含 Python基础.前端开发.Web框架.缓存以及队列等,希望可以给正在学习编程的童鞋提供一点帮助!!! 目录: Python学习[第一篇]python简介 Python学习[第二篇]p ...

  10. python学习笔记系列----(八)python常用的标准库

    终于学到了python手册的最后一部分:常用标准库.这部分内容主要就是介绍了一些基础的常用的基础库,可以大概了解下,在以后真正使用的时候也能想起来再拿出来用. 8.1 操作系统接口模块:OS OS模块 ...

随机推荐

  1. java.util.List

    /* * Copyright (c) 1997, 2014, Oracle and/or its affiliates. All rights reserved. * ORACLE PROPRIETA ...

  2. bin(x) 将整数x转换为二进制字符串

    >>> a 122 >>> b 344 >>> c = bin(a) >>> d = bin(b) >>> c ...

  3. sjtu1313 太湖旅行

    Description 西山风景区是苏州著名的国家级风景区,一到暑假,游客们都蜂拥而至.作为太湖风景区的精华,西山景区吸引人的地方主要在它的群岛风光.花果丛林和名胜古迹. ginrat对这个地方向往已 ...

  4. 【综述】(MIT博士)林达华老师-"概率模型与计算机视觉”

    [综述](MIT博士)林达华老师-"概率模型与计算机视觉” 距上一次邀请中国科学院的樊彬老师为我们撰写图像特征描述符方面的综述(http://www.sigvc.org/bbs/thread ...

  5. ***PHP各种编码的汉字字符串截取

    虽然PHP有现成的截取字符串函数substr(),但是这个函数不能对汉字字符串进行截取,要实现这种效果还需要我们自己去编写相应的函数.汉字有多种编码,比如GB2312,UTF-8等,汉字字符串的截取需 ...

  6. codeforces Mafia

    /* * Mafia.cpp * * Created on: 2013-10-12 * Author: wangzhu */ /** * 每个人都想玩若干场,求至少需要玩几场才可以满足大家的需求. * ...

  7. c#执行Dos命令

    一个执行Dos命令的窗口程序,与各位分享.   效果图:     具体实现在代码中有详细的注释,请看代码.   实现执行CMD命令的核心代码(Cmd.cs):   [csharp]   using S ...

  8. C#中IDisposable学习

    在Net中,由GC垃圾回收线程掌握对象资源的释放,程序员无法掌控析构函数的调用时机.对于一些非托管资源,比如数据库链接对象等,需要实现IDisposable接口进行手动的垃圾回收.那么什么时候使用Id ...

  9. An error occurred while filtering resources

    一个比较恶心的问题.在使用过程中项目中有个错误 ,找不到原因.. An error occurred while filtering resources     Maven -> Update ...

  10. 1.进入debug模式(基础知识列表)

    1.进入debug模式(基础知识列表)1.设置断点 2.启动servers端的debug模式 3.运行程序,在后台遇到断点时,进入debug调试状态 ========================= ...