用“餐厅打包”的故事说明白Python里面的自定义函数
注:博主并非Python专业程序员,年龄12岁,Python龄不到1岁,才疏学浅,如有错误还请大佬指教! 希望能通过本专栏帮助到一些Python小白!
嗨~大家好!上篇博文咱们说了,万一有一些上万行才能实现的功能没有库,只能自己写了,那么如何简化咱们复制粘贴上万行的这个过程嘞?
函数是个啥?
呃,不要担心,函数其实就是我们去饭店吃饭,然后要求服务员打包。
不不不,就是这样的,至少在Python里是这样的。我们举例来说明。
标准名称 | 实际意义 |
---|---|
函数 | 打包 |
函数里面的东西 | 打包的食物 |
如何定义函数
好了,先说这么多,来讲讲怎么定义一个函数。
def blablabla():
print('我就是函数的内容!欧耶!')
a = True
while a:
print('快快关注我!')
a = False
注意几点
1. 函数的命名规范
和变量一样~~
- 要让人能看懂。
- 函数名必须是英文字母,数字和下划线的结合,数字不能做变量名称的第一个字符,
- 变量名称也不能跟Python内置的东西(也就是内置的函数)重名。要不然Python同学又该糊涂了。
2. 标点符号
定义函数时必须遵守如下格式:
def 函数名():
并且函数的内部的代码必须缩进,如果忘记了缩进或者是把缩进删掉了,在那行前按下Tab键即可。
如何运行函数
很简单~
在定义好函数名以后就直接输入
函数名()
比如我的:blablabla()
运行结果就是:
切记:运行函数有且仅有这种方式!!
这时,你或许会发现一个问题。
没错,那么这个问题该怎么解决呢?
对,我们可以在括号里面加上一些东西,这些“东西”类似于变量,但又不是变量。这就好比什么呢?去打包的时候,你跟服务员说:
那么,怎么定义这种函数呢?走起~
如何定义有参数的函数
def blablabla(name):
print('我就是函数的内容!欧耶!')
a = True
while a:
print('快快关注我!',name)
a = False
只要在括号里加上可变元素的名称即可,运行也一样:
如何运行有参数的函数
blablabla('工具人001A')
运行就会得到:
我就是函数的内容!欧耶!
快快关注我! 工具人001A
注意常见几个BUG出没地
1. 你给了参数的地方,但运行时不给参数
反面教材:
def blablabla(name):
print('我就是函数的内容!欧耶!')
a = True
while a:
print('快快关注我!',name)
blablabla()
报错提示:
注:“可变元素”是非正式称呼,正式称呼为“参数”。
2. 反之,你给了参数,但是没给参数的地方
反面教材:
def blablabla():
print('我就是函数的内容!欧耶!')
a = True
while a:
print('快快关注我!',name)
a = False
blablabla('hhh')
报错提示:
注:“可变元素”是非正式称呼,正式称呼为“参数”。
如何定义与运行有多个参数的函数
嘿这就有意思了。其实就是用逗号分隔。
def all_about_you(name,sex,age,hobby):
print('wow, your name is',name,'and your sex is',sex,'and you are',age,'years old and you like',hobby)
all_about_you('xiaocao162020','boy',12,'writing Python')
这样运行就会得到:
wow, your name is xiaocao162020 and your sex is boy and you are 12 years old and you like writing Python
啊别管没有标点符号的问题哈,写着玩而已,这个也有几个bug,比如你给了3个可变元素地方,运行时只输入2个可变元素,或者反之。都会报错。下面给大家看另一种BUG,准确地说,不算BUG:
def all_about_you(name,sex,age,hobby):
print('wow, your name is',name,'and your sex is',sex,'and you are',age,'years old and you like',hobby)
all_about_you('writing Python','12','boy','xiaocao162020')
运行,没有报错,但是显示了:
wow, your name is writing Python and your sex is 12 and you are boy years old and you like xiaocao162020
翻译过来绝对笑死你:
为了保证不会这样,我们可以按顺序输入或者这样:
def all_about_you(name,sex,age,hobby):
print('wow, your name is',name,'and your sex is',sex,'and you are',age,'years old and you like',hobby)
all_about_you(hobby='writing Python',age='12',sex='boy',name='xiaocao162020')
有木有一种很亲切的感觉?
是的!咱们用Python操作文件那一篇的对于打开文件的代码正是:
file1 = open('blablabla.txt',encoding='utf-8',mode='r')
没错没错,正是你想的那样!open实际上是Python的一个内置函数!内置函数和自定义函数的运行方式完全一致!
好吧,这篇貌似该收尾了,有问题欢迎联系我哈~
最新文章
- 出现could not find developer disk image解决办法和不受信任的开发者
- python协程
- mysql 日期对比,varchar类型装换为datetime类型
- C#的Raw Socket实现网络封包监视
- 记录一下mvc发布
- highcharts图表的图例legend怎么改变显示位置
- 创建对象时引用的关键字,assign,copy,retain
- Java 泛型 协变性、逆变性
- openURL in APP Extension
- 愚蠢的遗留BUG
- 【每日更新】【Redis学习】
- 从oracle到mysql
- 高度自适应不能触发transition的解决方法
- polyfill-eventsource added missing EventSource to window ie浏览器 解决方案
- Rabbitmq-direct演示
- ffmpag总结_android_to_ios视频转换
- SQLAlchemy 与 fask-SQLAlchemy 中的多表查询例子
- pylot压力测试工具
- 20165233 2017-2018-2 《Java程序设计》第八周学习总结
- [译]Quartz.Net 框架 教程(中文版)2.2.x 之第三课 更多关于Jobs和JobDetails