注:博主并非Python专业程序员,年龄12岁,Python龄不到1岁,才疏学浅,如有错误还请大佬指教! 希望能通过本专栏帮助到一些Python小白!

嗨~大家好!上篇博文咱们说了,万一有一些上万行才能实现的功能没有库,只能自己写了,那么如何简化咱们复制粘贴上万行的这个过程嘞?

函数是个啥?



呃,不要担心,函数其实就是我们去饭店吃饭,然后要求服务员打包。



不不不,就是这样的,至少在Python里是这样的。我们举例来说明。

标准名称 实际意义
函数 打包
函数里面的东西 打包的食物

如何定义函数

好了,先说这么多,来讲讲怎么定义一个函数。

def blablabla():
print('我就是函数的内容!欧耶!')
a = True
while a:
print('快快关注我!')
a = False

注意几点

1. 函数的命名规范

和变量一样~~

  1. 要让人能看懂。
  2. 函数名必须是英文字母,数字和下划线的结合,数字不能做变量名称的第一个字符,
  3. 变量名称也不能跟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的一个内置函数!内置函数和自定义函数的运行方式完全一致!

好吧,这篇貌似该收尾了,有问题欢迎联系我哈~

最新文章

  1. 出现could not find developer disk image解决办法和不受信任的开发者
  2. python协程
  3. mysql 日期对比,varchar类型装换为datetime类型
  4. C#的Raw Socket实现网络封包监视
  5. 记录一下mvc发布
  6. highcharts图表的图例legend怎么改变显示位置
  7. 创建对象时引用的关键字,assign,copy,retain
  8. Java 泛型 协变性、逆变性
  9. openURL in APP Extension
  10. 愚蠢的遗留BUG
  11. 【每日更新】【Redis学习】
  12. 从oracle到mysql
  13. 高度自适应不能触发transition的解决方法
  14. polyfill-eventsource added missing EventSource to window ie浏览器 解决方案
  15. Rabbitmq-direct演示
  16. ffmpag总结_android_to_ios视频转换
  17. SQLAlchemy 与 fask-SQLAlchemy 中的多表查询例子
  18. pylot压力测试工具
  19. 20165233 2017-2018-2 《Java程序设计》第八周学习总结
  20. [译]Quartz.Net 框架 教程(中文版)2.2.x 之第三课 更多关于Jobs和JobDetails

热门文章

  1. 大佬们的博客 && 友链
  2. try...catch中finally子句的使用
  3. NETAPP FAS2720初始化配置
  4. NOIP2022 总结
  5. JZOJ.4724 斐波那契
  6. 如何在Ubuntu 20.04上安装和保护phpMyAdmin
  7. SnakeYaml的不出网反序列化利用分析
  8. Vue框架整理:computed计算属性设置与缓存
  9. 基于Hexo的GitHub Pages个人博客搭建
  10. 一个厂区宿舍管理后台密码爆破 - selenium版