用“餐厅打包”的故事说明白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的一个内置函数!内置函数和自定义函数的运行方式完全一致!
好吧,这篇貌似该收尾了,有问题欢迎联系我哈~

用“餐厅打包”的故事说明白Python里面的自定义函数的更多相关文章
- python学习之--自定义函数:
Python之--自定义函数: 在Python中,定义一个函数要使用def语句,依次写出函数名.括号.括号中的参数和冒号:,然后,在缩进块中编写函数体,函数的返回值用return语句返回. 以下自定义 ...
- python怎么导入自定义函数
python 编程中经常需要调用自己定义的函数,在大型程序中自定义的函数一般会和main函数分开,这么主要讲下在不同文件下定义的函数怎么调用: 首先在有文件夹test_python文件夹下有main. ...
- Python基础(二)自定义函数
1.判断字符串,内容是否为数字 我们用python:xlrd读Excel内容时,本来只是输入的整数字,经常读出来的是float类型 我们需要自动转成整型,意思就是说,读出来的和我们输入的一样,但是,我 ...
- python 基础篇 自定义函数
多态 我们可以看到,Python 不用考虑输入的数据类型,而是将其交给具体的代码去判断执行,同样的一个函数(比如这边的相加函数 my_sum()),可以同时应用在整型.列表.字符串等等的操作中. 在编 ...
- Python学习教程(learning Python)--2.1 Python下自定义函数
在Python里可以自定义函数,实现某特定功能,这里首先要区分一下函数的定义和函数的调用两个基本概念,初学者往往容易混淆. 函数的定义是指将一堆能实现特定功能的语句用一个函数名标识起来,而函数的调用则 ...
- python的自定义函数
今天想把上次参考着网上教程写的scrapy爬虫改写成requests和beautifulsoup的普通爬虫,写着写着发现自己对python的自定义函数还不是太熟悉(自己TCL了.........流泪) ...
- Python中关于Lambda函数的使用总结
lambda表达式是一种匿名函数,对应python中的自定义函数def,是定义某个函数时比较高级的一种写法.作为python初学者,本文整理了lambda的一些基本用法和特点. lambda和def的 ...
- python中常用的函数与库一
1, collections.deque 在python里如果我们用列表作为队列使用也是可以的,只是当从队尾删除或者增加元素的时候是很快的,但是从队首删除或者增加元素则要慢得多,这是因为在队首进行操作 ...
- python基础-内置函数详解
一.内置函数(python3.x) 内置参数详解官方文档: https://docs.python.org/3/library/functions.html?highlight=built#ascii ...
- python中使用zip函数出现<zip object at 0x02A9E418>
在Python中使用zip函数,出现<zip object at 0x02A9E418>错误的原因是,你是用的是python2点多的版本,python3.0对python做了改动 zip方 ...
随机推荐
- springcloud12-spring cloud stream
1.基础说明 官网:https://spring.io/projects/spring-cloud-stream#overview 文档:https://docs.spring.io/spring ...
- JAVA虚拟机25---编译器,解释器,JAVA中的即时编译
https://www.cnblogs.com/somefuture/p/14272221.html 1.简介 编译器:是一种计算机程序,负责把一种编程语言编写的源码转换成另外一种计算机代码,后者往往 ...
- 基于昇腾计算语言AscendCL开发AI推理应用
摘要:本文介绍了昇腾计算语言AscendCL的基本概念,并以示例代码的形式介绍了如何基于AscendCL开发AI推理应用,最后配以实际的操作演示说明如何编译运行应用. 本文分享自华为云社区<基于 ...
- Java Day 2
标识符 凡是变量中需要自己命名的地方都是标识符,例如:包名.类名.变量名等等 标识符的命名规则 1.Java的标识符只能用26个英文字母大小写,0-9的数字,下划线(_),和美元的符号($). 2.标 ...
- 【Vue】计算属性 监听属性 组件通信 动态组件 插槽 vue-cli脚手架
目录 昨日回顾 1 计算属性 插值语法+函数 使用计算属性 计算属性重写过滤案例 2 监听属性 3 组件介绍和定义 组件之间数据隔离 4 组件通信 父子通信之父传子 父子通信之子传父 ref属性 扩展 ...
- Java ”框架 = 注解 + 反射 + 设计模式“ 之 注解详解
Java "框架 = 注解 + 反射 + 设计模式" 之 注解详解 每博一文案 刹那间我真想令时光停住,好让我回顾自己,回顾失去的年华,缅怀哪个穿一身短小的连衣裙 和瘦窄的短衫的小 ...
- Cesium点击改变entity/primitives颜色与恢复原色(三)
2023-01-08 建筑物是primitives,两个娃娃是entity 加载娃娃代码: //粉色 var entity6 = viewer.entities.add({ id:6, positio ...
- TextView 走马灯效果不生效
TextView 控件需要添加以下必要的属性: <TextView android:ellipsize="marquee" android:focusable="t ...
- DOM05~
滚动事件和加载事件 滚动事件 加载事件 滚动事件 什么是滚动事件? 1.1 当页面进行滚动时触发的事件 1.2 作用:网页需要检测用户把页面滚动到某个区域后做一些处理 1.3 事件名:scroll 监 ...
- Django models.py 表的参数选择
from django.db import models # Create your models here. class Department(models.Model): # 以后可以新增, ...