注:博主并非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的一个内置函数!内置函数和自定义函数的运行方式完全一致!

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

用“餐厅打包”的故事说明白Python里面的自定义函数的更多相关文章

  1. python学习之--自定义函数:

    Python之--自定义函数: 在Python中,定义一个函数要使用def语句,依次写出函数名.括号.括号中的参数和冒号:,然后,在缩进块中编写函数体,函数的返回值用return语句返回. 以下自定义 ...

  2. python怎么导入自定义函数

    python 编程中经常需要调用自己定义的函数,在大型程序中自定义的函数一般会和main函数分开,这么主要讲下在不同文件下定义的函数怎么调用: 首先在有文件夹test_python文件夹下有main. ...

  3. Python基础(二)自定义函数

    1.判断字符串,内容是否为数字 我们用python:xlrd读Excel内容时,本来只是输入的整数字,经常读出来的是float类型 我们需要自动转成整型,意思就是说,读出来的和我们输入的一样,但是,我 ...

  4. python 基础篇 自定义函数

    多态 我们可以看到,Python 不用考虑输入的数据类型,而是将其交给具体的代码去判断执行,同样的一个函数(比如这边的相加函数 my_sum()),可以同时应用在整型.列表.字符串等等的操作中. 在编 ...

  5. Python学习教程(learning Python)--2.1 Python下自定义函数

    在Python里可以自定义函数,实现某特定功能,这里首先要区分一下函数的定义和函数的调用两个基本概念,初学者往往容易混淆. 函数的定义是指将一堆能实现特定功能的语句用一个函数名标识起来,而函数的调用则 ...

  6. python的自定义函数

    今天想把上次参考着网上教程写的scrapy爬虫改写成requests和beautifulsoup的普通爬虫,写着写着发现自己对python的自定义函数还不是太熟悉(自己TCL了.........流泪) ...

  7. Python中关于Lambda函数的使用总结

    lambda表达式是一种匿名函数,对应python中的自定义函数def,是定义某个函数时比较高级的一种写法.作为python初学者,本文整理了lambda的一些基本用法和特点. lambda和def的 ...

  8. python中常用的函数与库一

    1, collections.deque 在python里如果我们用列表作为队列使用也是可以的,只是当从队尾删除或者增加元素的时候是很快的,但是从队首删除或者增加元素则要慢得多,这是因为在队首进行操作 ...

  9. python基础-内置函数详解

    一.内置函数(python3.x) 内置参数详解官方文档: https://docs.python.org/3/library/functions.html?highlight=built#ascii ...

  10. python中使用zip函数出现<zip object at 0x02A9E418>

    在Python中使用zip函数,出现<zip object at 0x02A9E418>错误的原因是,你是用的是python2点多的版本,python3.0对python做了改动 zip方 ...

随机推荐

  1. 基于遗传算法的地图四色原理绘图上色的Python代码

      本文介绍利用Python语言,实现基于遗传算法(GA)的地图四色原理着色操作. 1 任务需求   首先,我们来明确一下本文所需实现的需求.   现有一个由多个小图斑组成的矢量图层,如下图所示.   ...

  2. C-07\字符串的输入输出及常用操作函数

    一.算法优化: 减少分支优化 // 求绝对值 int MyAbs(int n) { if (n < 0) { n = ~n + 1; } return n; } // 优化 int MyAbs( ...

  3. ECharts 饼图切换数据源bug 开始没数据显示 切换或刷新后显示

    1.出现问题原因 一个饼图,右上方两个按钮分别为今天和本月,分别调用不同接口控制,点击则调用不同接口同时饼图绑定数据源刷新:出现此问题原因点击今日按钮有一个饼图区域形没有数据不显示,对应数据值比例都没 ...

  4. POJ1737 连通图

    一句话题意:求一个 \(n\) 点带编号的连通图数量. 吐槽一下:好好一道计数 dp 为什么不加取余????逼着选手写高精度的出题人应该拎出去烧--哦楼天城是出题人是吧哦当我没说我什么都没说我现在就把 ...

  5. js/jquery 所有页面点击事件(持续更新)

    // 切换菜单 <div class="box">                <div class="box-item" id=" ...

  6. centos7 安装MariaDB数据库

    1.添加 MariaDB yum源 #添加MariaDB.repo配置文件 vim /etc/yum.repos.d/MariaDB.repo #添加内容 [mariadb] name = Maria ...

  7. 记录篇-浪潮服务器raid卡

    在说raid卡之前,首先,我们要明确,不同的raid卡型号,会有不同的配置方式,但是总体来说是大同小异的 这里举例浪潮机架式服务器经常用到的raid卡型号:  PM8204      (其实像3108 ...

  8. wibu软授权(五)

    本篇将尝试根据RAU的asn1定义手动生成一份自定义的RAU文件,看看能不能通过wibu软授权系统的验证 准备工具 python3 asn1tools Ubuntu 18.04 CodeMeter R ...

  9. C# DevExpress中GridControl控件的基本属性设置和使用方法

    1.GridControl隐藏GroupPanel(主面板) 隐藏:鼠标单击Run Designer-OptionsView-ShowGroupPanel=False; 修改:鼠标单击Run Desi ...

  10. 初始化控件panel大小和相对父容器居中

    /// <summary> /// 初始化界面大小 /// </summary> protected void InitForm() { int winwith = Scree ...