像之前的print()、input()和len()功能,Python提供了一些类似的内置函数,另外也可以自己编写自定义函数。

示例:

def hello():

print('Howdy!')

print('Howdy!!!')

print('Hello there.')

hello()

第一行是def语句,它定义了一个名为hello()的函数。def语句之后的代码块是函数的主体。该代码是在调用函数时执行,而不是在首次定义函数时执行。

最后的hello()功能是函数调用。在代码中,函数调用只是函数的名称,后跟括号,括号里面可能带有一些参数。当程序运行到这些调用时,它将跳到函数的第一行并在那里开始执行代码。当运行到函数末尾时,程序运行将返回到调用函数的那一行,并像之前一样继续遍历运行代码。

当运行该段程序时,输出如下:

Howdy!

Howdy!!!

Hello there.

带有参数的DEF语句

调用print()或len()函数时,可以通过在括号之间键入值来传递在此上下文中称为参数的值。还可以定义自己的接收参数的函数。

示例:

def hello(name):

print('Hello ' + name)

hello('Alice')

hello('Bob')

当运行该程序时,输出如下:

Hello Alice

Hello Bob

该hello()程序中函数的定义具有一个称为parameter的参数name。参数时一个变量,它被存储在一个函数里被调用。第一次调用hello()函数时,带有参数’Alice'。程序运行进入函数,变量name自动设置为'Alice',然后通过print()输出。

关于参数需要特别注意一点,函数返回时会忘记存储在参数中的值。举个例子,如果在hello('Bob')之后加print(name),程序将会报错,因为name没有被命名,而这个定义已经在hello('Bob')被调用返回后被回收了。

返回值和返回语句

当调用len()函数并将参数传递给'Hello',函数调用的结果为整数值5,即传递的字符串的长度。通常,函数调用求值的值称为函数的返回值。

使用def语句创建函数时,可以使用语句指定返回值return。一个return语句由以下部分组成:return关键字

函数应返回的值或表达式

当表达式与return语句一起使用时,返回值就是该表达式的计算结果。例如,以下程序定义了一个函数,该函数根据作为参数传递的数字返回一个不同的字符串。

import random

def getAnswer(answerNumber):

if answerNumber == 1:

return 'It is certain'

elif answerNumber == 2:

return 'It is decidedly so'

elif answerNumber == 3:

return 'Yes'

elif answerNumber == 4:

return 'Reply hazy try again'

elif answerNumber == 5:

return 'Ask again later'

elif answerNumber == 6:

return 'Concentrate and ask again'

elif answerNumber == 7:

return 'My reply is no'

elif answerNumber == 8:

return 'Outlook not so good'

elif answerNumber == 9:

return 'Very doubtful'

r = random.randint(1, 9)

fortune = getAnswer(r)

print(fortune)

该程序启动时,Python首先导入random模块。然后getAnswer()定义函数,由于函数是已经定义的,因此执行将跳过其中的代码。接下来,random.randint(1, 9)函数调用有两个参数,1和9。它的计算结果是1和9之间(包括1和9本身)的随机整数,并且此值存储在变量r中。

将该r作为参数的getAnswer()函数调用,程序运行值getAnswer()函数的头部,该值r存储在参数answerNumber。然后,根据answerNumber判断返回对应的字符串值。程序运行返回到程序最底部fortune = getAnswer(r),返回的字符串被赋值给了变量fortune,然后传递给print()调用,输出。

请注意,由于可以将返回值作为参数传递给另一个函数调用,因此可以缩短以下三行:

r = random.randint(1,9)

fortune = getAnswer(r)

print(fortune)

等效于

print(getAnswer(random.randint(1,9)))

None值

在python中,有一个名为None的值,表示没有值。None是NoneType数据类型的唯一值。(其他编程语言则为null,nil或underfined)就像True和False,None的首字母必须大写

当需要将不会与真实值混淆的内容存储在变量中时,None会很有用。

比如:

>>> spam = print('Hello!')

Hello!

>>> None == spam

True

在Python中,在没有return声明的情况下将return None添加到任何函数定义的末尾。这类似于while 或 for循环以continue语句隐式结束的方式。另外,如果使用return不带值的情况,也会返回None。

关键字参数和PRINT()

大多数参数由他们在函数调用中的位置标识。例如,random.randint(1, 10)与random.randint(10, 1)不同。函数调用random.randint(1, 10)将返回1和10之间的随机整数,因为第一个参数是范围的低端,第二个参数是高端(而random.randint(10, 1)会导致错误)

然而,关键字参数在函数调用中会被他们之前的关键字标识。关键字参数也通常用于可选参数。

例如:

print('Hello',end ='')

print('World')

输出:

HelloWorld

输出被打印在一行上,因为在之后不再打印新行’Hello',而是打印空白字符串,如果需要禁用每个print()函数调用末尾的换行符,这将很有用。

同样,可以将多个字符串值传递给print(),该函数将自动用空格分隔他们。

>>> print('cats', 'dogs', 'mice')

cats dogs mice

当然,也可以通过传递关键字参数sep来替换默认的分隔字符串。如:

>>> print('cats', 'dogs', 'mice', sep=',')

cats,dogs,mice

当然你也可以在自定义函数中添加关键字参数。后面的文章将会涉及。

文档:【零基础学Python】def语句,参数和None值 - 掘金​juejin.im

python的def语句_【零基础学Python】def语句,参数和None值相关推荐

  1. python培训一般多久_零基础学python需要多久

    一:明确自己的学习目标.不管我们学习什么样的知识,都要对自己的学习目标有一个明确的认识.只有这样才能朝着目标持续的前进,少走弯路,从而在学习的过程中得到提升,享受整个学习的乐趣. 二:基础的Pytho ...

  2. python赋值运算符难理解_零基础学 Python(8)运算符 — 算术、比较、赋值、逻辑...

    Python 的运算符有:算术运算符.比较运算符.赋值运算符.逻辑运算符.成员运算符.位运算符.身份运算符.本章主要讲解 Python 的算术运算符.比较运算符.赋值运算符.逻辑运算符. 算术运算符 ...

  3. python循环套循环_零基础学python 14 循环套循环:循环的嵌套

    大家可以回忆一下,之前我们学习过的循环结构.也就是for循环结构,今后我们还将学习另一种循环结构while结构,这里先不细讲.当初我们学习for循环结构的时候,有心的同学或许会发现,我们的for结构一 ...

  4. python while遍历字符串_零基础学Python:while循环和for遍历

    1.while 循环 while是计算机的一种基本循环模式.当满足条件时进入循环,进入循环后,当条件不满足时,跳出循环.while语句的一般表达式为:while(表达式){循环体}. 循环的作用就是让 ...

  5. python适合做网站吗_零基础学python—做网站

    3-2 通过python连接数据库 1 . 先下载MySQLdb 2 . 解压后在终端执行以下命令 vandeMacBook-Air:~ enniu$ cd/Users/enniu/Downloads ...

  6. c字符串中包含双引号_零基础学Python:一文看懂数字和字符串

    来源:大数据DT 本文约2000字,建议阅读6分钟 数据类型是构成编程语言语法的基础.[ 导读 ]数据类型是构成编程语言语法的基础.不同的编程语言有不同的数据类型,但都具有常用的几种数据类型.Pyth ...

  7. python 智能造句_[零基础学Python]正规地说一句话

    小孩子刚刚开始学说话的时候,常常是一个字一个字地开始学,比如学说"饺子",对他/她来讲,似乎有点难度,大人也聪明,于是就简化了,用"饺饺"来代替,其实就是让孩子 ...

  8. 小甲鱼python课后题答案_小甲鱼python视频教程下载|小甲鱼零基础学python视频教程附习题答案_ - 极光下载站...

    小甲鱼零基础学python视频教程下载,最完整的小甲鱼python语言学习视频来啦,想要学习python语言的小白们不妨点击观看视频在下学习吧! Python语言介绍 Python是一种面向对象的解释 ...

  9. python入门到熟练要多久_零基础学python要多久

    零基础进行Python学习的话,如果选择自学,一般学习周期在一年半左右.选择进行培训的话,学习Python周期一般在五到六个月左右,不过学习的种类不同,班级不同,培训周期也是存在一定差异的. 零基础学 ...

  10. python语言程序设计难不难_零基础学Python编程开发难度大吗?从哪学起?

    转行零基础学Python编程开发难度大吗?从哪学起? 近期很多小伙伴问我,如果自己转行学习Python,完全0基础能否学会呢?Python的难度到底有多大? 今天,小编就来为大家详细解读一下这个问题. ...

最新文章

  1. c语言resource files的作用,c – resource.h中的宏用于什么?
  2. 保存Java程序状态及设置Properties文件
  3. c++队列queue
  4. WPF效果第一百七十八篇ItemsControl旋转
  5. 如何用一套引擎搞定机器学习全流程?
  6. Linux系统如何安装VMware(虚拟机)
  7. 啪的一下,马保国的流量被这帮人抢先变现了!
  8. python实现水仙花
  9. 《Head First 设计模式》(一):策略模式
  10. Firebug工具离线安装
  11. 还在烦恼ToF的误差问题?有人帮你找到解决方法了!
  12. php计算qqbkn,QQ 加密算法最新版 _tk,bkn算法
  13. gitlab修改项目名称
  14. Vue 拦截器 多接口调用 实现唯一loding效果 解决同步接口调用loding闪动
  15. 用Matlab作函数的图像
  16. IOS数据库操作SQLite3使用详解
  17. python编程的缩进什么意思_编程缩进是什么意思
  18. jsencrypt-RSA加密
  19. 一文搞懂Spring,堪称Spring源码终结者
  20. 使用oracle数据库审计,Oracle数据库审计功能详解

热门文章

  1. Java File类详解
  2. 各种说明方法的答题格式_初中语文阅读答题公式 语文阅读理解万能公式大全...
  3. matlab程序转java_用面向对象的方法将一段JAVA代码转化为matlab
  4. 华为仿苹果字体_华为mate40系列再次霸榜DXO,网友:无敌是多么寂寞
  5. mysql5.6 python_Centos-6.5 + python3 + mysql5.6 环境搭建
  6. mysql plsql cursor_Oracle--plsql游标创建和使用
  7. Python数模笔记-PuLP库(2)线性规划进阶
  8. jframe运行和预览大小不一样_同一款车型,为什么配的轮胎大小还会不一样?【内含福利】...
  9. mysql主备切换 自动_核电生产管理信息系统EAM完成首次备用环境切换演练
  10. echarts自适应父div大小