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. 图片上没有line-height垂直居中

    <style> div {     width: 150px;     height: 155px;     line-height: 155px;     border: 1px sol ...

  2. Html之img标签

    我发现了为什么我不会开发,或者不愿意,我感觉是因为我不会前端,自认为写出来完美的后台显示不好也没人用,为了解决这一问题,笔者新增html栏目,和大家一起交流分享. 一.img必须有src和alt属性 ...

  3. forward && redirect 区别介绍

    解释一 一句话,转发是服务器行为,重定向是客户端行为.为什么这样说呢,这就要看两个动作的工作流程: 转发过程:客户浏览器发送http请求---->web服务器接受此请求-->调用内部的一个 ...

  4. ASP.net Application及Session 的start end 方法总结

    经过几天的摸索,试验,今天终于可以将Application及Session对象的Start和End方法做下总结了. Application_start: 第一个访问网站的用户会触发该方法. 通常会在该 ...

  5. 对GBK的理解(内附全部字符编码列表):扩充的2万汉字低字节的高位不等于1,而且还剩许多编码空间没有利用

    各种编码查询表:http://bm.kdd.cc/ 由于GB 2312-80只收录6763个汉字,有不少汉字,如部分在GB 2312-80推出以后才简化的汉字(如“啰”),部分人名用字(如中国前总理朱 ...

  6. Android list刷新后仍然定位到原来的位置,解决。

    问题: 有一个list,点击item时会做一些事情,然后重新加载数据,此时希望点击重新刷新后item还在原来的位置,而不是跳转到开头. 实现如下: 1.listview添加监听setOnScrollL ...

  7. 转载:简化IT程序员工作生活的4个窍门

    如果可以简化你的生活——少做枯燥的任务,将时间真正地用于完成事情,你愿不愿意去尝试?下面就让我一起来学一下如何让程序员工作生活变得简单的小窍门.如果你敢于倾听自己的心声,你会发现自己一天中的大多数时间 ...

  8. 国内的一些开源镜像站汇总,EPEL源

    国内的一些开源软件的镜像站 汇总 CentOS6.5安装 EPEL 源 国内高校的开源镜像站 中国科学技术大学(debian.ustc.edu.cn)    上海交通大学(ftp.stju.edu.c ...

  9. bzoj1823

    第一道2sat, 其实2sat问题不难,只要记住一个:通过“推导出”连边 什么意思呢?就是一般题目中的变量都有两个状态,只能取一个,我们定义为true和false 对于每一个变量i,我们都拆成两个点, ...

  10. 【转】OS X Mavericks: 防止 Mac 进入睡眠 -- 不错

    原文网址:https://support.apple.com/kb/PH13808?locale=zh_CN&viewlocale=zh_CN 某些 Mac 电脑将在不活跃一段时间后自动进入睡 ...