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

像之前的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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/573804.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

筛选出一证多卡 用sql_对比Excel学习SQL(3):对列和行的操作

本文将从以下几个方面进行:一、对列的查询01 查询单个列03 查询所有列04 对列去重二、对列的值排序01 升序排列02 降序排列03 多个列排序三、对行的筛选01 单条件筛选02 多条件筛选03 IN命令04 LIKE命令正文:一、对列的查询Excel里对于一张表&#xff0c…

jude的一些基本用法

jude的基本使用方法 作为一名软件工程专业的学生,常常需要画各类流程图,数据流图。 说来惭愧,我对于各类图的画法以及各类画图软件并不熟悉。 需求工程老师给我们推荐过jude这个画图软件,但由于我不会使用,折腾了不少时…

python中reduce函数_Python中的reduce()函数

reduce()函数也是Python内置的一个高阶函数。reduce()函数接收的参数和 map()类似,一个函数 f,一个list,但行为和 map()不同,reduce()传入的函数 f 必须接收两个参数,reduce()对list的每个元素反复调用函数f&#xff0…

oracle 存储过程中调用存储过程

create procedure sp_name() begin ……… end 比如: create procedure pro_showdbs() show datebase; end //用exec调用存储过程。 一个带参数的存储过程。SQL> CREATE OR REPLACE PROCEDURE HelloWorld1 (2 p_user_name VARCHAR23 ) AS4 BEGIN5 dbms_output.pu…

序列生成_PR Structured Ⅴ:GraphRNN——将图生成问题转化为序列生成

本文使用 Zhihu On VSCode 创作并发布Paper | Code本文一作实在是太大佬了,让我和小伙伴焦虑了好一阵子。作者主页送你们,将这份焦虑传递下去。Introduction图生成有很多用处:建模physical and social interactions发现新的化学和分子结构构建…

网络资产管理系统_固定资产管理系统网络版的各种语言翻译

固定资产管理系统网络版指的是固定资产管理系统项目的联网版本,适合需要远程操作及多人同时操作的用户,各个版本都提供相应的网络版。固定资产管理系统网络版系统稳定、功能强大,支持局域网内用户联网操作软件,适用于各机关企事业…

数据字典在sga的哪一个组件中缓存_非功能性约束之性能(1)-性能银弹:缓存...

在《什么是架构属性》一文中提到提高「性能」的主要方式是优化,而优化的其中一个主要手段就是添加缓存!在软件工程里有这么一句话:「没有银弹」!就是说由于软件工程的复杂性,没有任何一种技术或方法能解决所有问题&…

.NET的轻量级IOC框架芮双随笔

面向对象的设计的重用性一直是他的一个重要特性,为了有效定义这一特性,又引申出面向对象设计的几个原则:高内聚、低耦合、功能单一、优先使用聚合、面向接口编程等。依赖这些原则和前人的经验,又发展出形形色色的模式,…

python热部署_关于Spring Cloud 框架热部署的方法

1、在对应的pom.xml 文件中添加依赖org.springframework.bootspring-boot-devtoolstrue2、注:project 中添加 spring-boot-maven-plugin,主要在eclipse中使用,idea中不需要添加此配置。【IDEA 忽略这个步骤哦(⊙o⊙)?】org.springframework.b…

《世界是数字的》读后感

随着科技的发展,我们已经进入数字化的世界。十年前,我们还拿着小灵通、按键手机,十年后,我们每个人的手上都有一部触屏手机。科技的发展使得世上的东西都更新换代的很快,任何东西存在的时间都很短,瞬息间就…

html js css如何关联_会html+css+js就能把前端项目发布到多个平台

在这篇文章中,小编将给大家分享如何让自己的前端代码发布到多个常用的平台。看完这篇文章以后,你就知道了如何让你的前端代码发布到多个平台,如:安卓应用程序,小程序,iOS应用程序,Windows,Mac,L…

机器学习 监督学习论文_NeurIPS 2020最佳机器学习论文奖

NeurIPS 会议在提交的大量论文和1903年被接受的论文中,有3篇被授予。今年获奖的论文有:语言模型是学习者很少广义形式相关平衡的无悔学习动力学列子集选择和Nystrom方法的改进保证和多重下降曲线该NeurIPS委员会由一些指导准则。最好的论文必须具有革命性…

Java--File文件操作

判断文件或目录是否存在 判断File对象所指向的文件或者目录是否存在,使用exists()函数。 File f new File("/Users/bemaster/Desktop/in.txt"); System.out.println(f.exists()); 判断当前File对象是文件还是目录 判断当前File对象是否是文件&#xff0c…

iis 装完framework4 7 无法切换_扫盲贴之电压并列与电压切换

点击上方电气小青年,关注并星标由于微信改版,只有星标才能及时看到我们的消息哦━━━━━━推荐阅读:《国内电气顶尖高校的奖学金介绍,总奖学金接近150万!》《世界工业自动化公司行业前十名:西门子、ABB、…

unixbench类似_UnixBench的实现介绍-阿里云开发者社区

很多用户都用UnixBench做性能测试,并做厂商之间的对比,那UnixBench到底做了哪些性能测试,本篇从代码层面阐述UnixBench做了哪些测试。在细说UnixBench的实现之前,先放一个总结果UnixBench算分介绍有类似结果,然后一个个…

android 集成同一interface不同泛型_C# 基础知识系列- 10 反射和泛型(二)

0. 前言 这篇文章延续《C# 基础知识系列- 5 反射和泛型》,继续介绍C#在反射所开发的功能和做的努力。上一篇文章大概介绍了一下泛型和反射的一些基本内容,主要是通过获取对象的类型,然后通过这个类型对象操作对象。这一篇介绍一个在反射中很重…

hdu 1297 递推难题

这题的话,我能玩一年 今天做了很多递推的题,这题无疑是最复杂的 其实可以看出来,2,3,4,5为一类,不妨定义为2型,1,6为一类,定义为1型 规定num[i]为结尾是i的凹槽的数量 我们可以能轻易的推出 sum num[1]*2n…

mysql 8.0远程连接_安装mysql 8.0.17并配置远程访问的方法

一、安装前准备查看数据库版本命令: mysql --versionmysql-community-common-8.0.17-1.el7.x86_64.rpmmysql-community-libs-8.0.17-1.el7.x86_64.rpmmysql-community-client-8.0.17-1.el7.x86_64.rpmmysql-community-server-8.0.17-1.el7.x86_64.rpm二、安装RPM包依…

python体育竞技分析代码200行_使用Python进行体育竞技分析(预测球队成绩)

使用Python进行体育竞技分析(预测球队成绩) 发布时间:2020-09-18 06:38:27 来源:脚本之家 阅读:69 今天我们用python进行体育竞技分析,预测球队成绩 一. 体育竞技分析的IPO模式 : 输入I(input)&…

使用JavaScript进行数组去重——一种高效的算法

最近比较忙,没时间更新博客,等忙完这阵子会整理一篇使用AngularJS构建一个中型的单页面应用(SPA)的文章,尽情期待!先占个坑。 数组去重的算法有很多种,以下是一种。 思路如下: 定义一个空的对象obj&#xf…