python调用自定义函数怎么画自己定义的函数

Python学习笔记(一)——Python函数的定义和使用
Python学习笔记(一)——Python函数的定义和使用
最近在一个在线网站/上学习Python,因为我想除了专职语言之外还要掌握一门其它的脚本语言,虽然已经会Shell编程,不过因为Python独到的简介魅力吸引了我,而且在很多企业的招聘中都提出了要求会熟练运用至少一门脚本语言,所以我就开始了我的Python学习之路。
Python是一门解释型、脚本语言,所以也算是一门弱类型的语言,因为在Python中虽然也有基本的数据类型,不过我在用它编程的时候,并不需要像C语言那样显式声明数据类型,而是在程序中处理和赋值,这个和PHP比较相似,由于之前有用Python写过Raspberry上的串口读取程序和一些其它小的数据获取程序,那个时候只是浅尝辄止,没有真正地认识这门语言,今天重新翻开python的篇章,自然也有点熟悉的味道在里面。
众所周知Python没有像其它语言那样用大括号分隔代码块,而是用缩进来区分代码块,一开始学习的时候真的非常不习惯,因为一开始不想在IDE的选择上浪费时间,所以我选择了最简单的Python IDLE + Sublime编辑器的组合,在sublime上写代码然后在IDLE中调试运行,很多语法错误都是和缩进有关的,如果IDE没有自动对齐缩进的话,很多语法错误都很难调试出来,所以一定要耐心和细心。
在学到Python自定义函数这一块的时候,网站上说:所有参数(自变量)在Python里都是按引用传递。如果你在函数里修改了参数,那么在调用这个函数的函数里,原始的参数也被改变了。
于是我写了下面这样一个函数来测试这个理论:
def changenum( num ):
print &函数内取值: &, num
# 调用changeme函数
changenum(n);
print &函数外取值: &,n&/span&
按照上面的理论,函数内外输出应该是一致的,然而输出的却是这样的:
这明显和网站上说的不一样啊,所以我困惑了好久,如果是C语言的话,输出这样的结果理所当然,但是Python不应该都是传递引用的吗,那这样参数的值应该会被改变才对啊。
然后我又百度了一下,在豆瓣上找到了这样一段笔记,让我豁然开朗:
和其他语言不一样,传递参数的时候,python不允许程序员选择采用传值还是传引用。Python参数传递采用的肯定是“传对象引用”的方式。实际上,这种方式相当于传值和传引用的一种综合。如果函数收到的是一个可变对象(比如字典或者列表)的引用,就能修改对象的原始值--相当于通过“传引用”来传递对象。如果函数收到的是一个不可变对象(比如数字、字符或者元组)的引用,就不能直接修改原始对象--相当于通过“传值'来传递对象。
所以我们这里传的参数是一个数字,也就是一个不可变对象的引用,所以就不能直接修改原始对象,于是我又试了一下网站上修改传入列表的函数,果真可以改变,但是由于网站上没有传递不可变对象的例子,所以导致我走入了误区,这同时也说明,理论需要经过实践的检验,发现问题,思考问题,解决问题才是避免错误的最佳途径。
我的热门文章
即使是一小步也想与你分享python族 的BLOG
用户名:python族
文章数:41
访问量:17936
注册日期:
阅读量:5863
阅读量:12276
阅读量:363457
阅读量:1058973
51CTO推荐博文
&在Python里可以自定义函数,实现某特定功能,这里首先要区分一下函数的定义和函数的调用两个基本概念,初学者往往容易混淆。&&&&&&函数的定义是指将一堆能实现特定功能的语句用一个函数名标识起来,而函数的调用则是通过函数名来使用这一堆语句来执行这堆语句的功能。&&&&在Python定义一个函数很简单,语法如下:def&&function_name(arg1,arg2,...)&:&&&&(tab)&statement1&&&&(tab)&statement2&&&&(tab)&statement3&&&.......&&&&在定义函数时需要注意3点:一般函数名和变量名一样,采用动词_名词命名规则,参数的右括号后有个冒号不能少!函数名下的每条语句前要用TAB键缩进(或空格);每条语句后无分号,这是和C等高级语言区别的地方。&&&&示例如下:&<span style="color:#def&pprint():<span style="color:#print(&a&)<span style="color:#print(&b&)<span style="color:#print(&c&)&&&&&函数的调用很简单,直接写出函数名和参数语句即可。&&<span style="color:##define&a&function&named&message<span style="color:#def&message():<span style="color:#print(&#39;I&am&Arthur,&#39;)<span style="color:#print(&#39;King&of&the&Britons.&#39;)<span style="color:#<span style="color:##&Call&the&message&function.<span style="color:# message()&&&&&运行结果如下&&&&I&am&Arthur,King&of&the&Britons.&&&&其中第2行~4行是message函数的定义,第7行是调用message函数。&
了这篇文章
类别:┆阅读(0)┆评论(0)
本文收录至博客专题:《》Python函数定义和使用 - 简书
<div class="fixed-btn note-fixed-download" data-toggle="popover" data-placement="left" data-html="true" data-trigger="hover" data-content=''>
写了20710字,被24人关注,获得了22个喜欢
Python函数定义和使用
在Python中,函数如下定义:
def 函数名(参数1,参数2,...,参数n):
函数体(语句块)
几点需要注意的:
1.函数的命名规则要符合Python中命名要求,一般用小写字母和下划线、数字等组合2.def是定义函数的关键词,这个简写来自英文单词define3.函数后面是hi圆括号,可以有参数列表,也可以没有参数4.括号后面的冒号不要忘记了5.函数体(语句块),相对于def缩进四个空格
&&& def name():
#定义一个无参数的函数,只是通过这个函数打印
print "python function" #函数体,缩进4个空格
&&& name()
#调用函数,打印结果
&&& def add(x,y):
#定义一个加法函数
return x+y
#缩进4个空格
&&& add(3,4)
#通过函数计算3+4的和
&&& add("hello ","world")
'hello world'
从以上例子可以看出,Python定义函数的时候,变量是没有明确类型的。因为在Python中,变量无类型,对象才有类型。在add(x,y)中,变量x,变量y,在引用对象之前,是完全飘忽的,没有被贴在任何一个对象上,换句话说他们有可能引用任何对象,只要后面的运算许可,如果后面的运算不许可,则会报错。
从以上结果发现:x+y的意义完全取决于对象的类型。在Python中,这种依赖关系,称之为多态。记住:Python中为对象编写接口,而不是为数据类型。
&&& result = add(4,6)
&&& result
add(x,y)在运行之前,计算机内是不存在的,知道代码运行到这里的时候,在计算机中,就建立起来了一个对象,运行add(x,y)之后,也就建立了一个add(x,y)对象,这个对象与变量result可以建立引用关系,并且add(x,y)将计算结果返回。于是通过result可以查看运算结果。
参数的默认值
&&& def add_2(x,y=2):
return x+y
&&& add_2(2)
&&& add_2(4,4)
&&& def add_3(x=3,y):
return x+y
File "&stdin&", line 1
SyntaxError: non-default argument follows default argument
&&& def add_3(x=3,y=2):
return x+y
&&& add_3()
#x = 3 , y = 2
&&&add_3(6,6)
#x = 6 , y = 6
&&& def add(x,y=1,z):
return x+y+z
File "&stdin&", line 1
SyntaxError: non-default argument follows default argument
&&& def add(x,y=1,z=2):
return x+y+z
&&& add(2)
# x = 2 , y = 1 , z = 2
说明:只要在形参表末尾的那些参数可以有默认参数值,即你不可以在声明函数形参的时候,先声明有默认值的参数而后声明没有默认值的参数。这是因为赋给形参的值都是根据位置而赋值的。例如
def func(a,b = 1):
def func(a = 1,b):
如果我是乞丐,我应该已经发财。
打开微信“扫一扫”,打开网页后点击屏幕右上角分享按钮
被以下专题收入,发现更多相似内容:
实际项目中学习python
· 2人关注
如果我是乞丐,我应该已经发财。
选择支付方式:找好工作,快人一步}

我要回帖

更多关于 python 函数定义 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信