首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

为什么我的函数不返回值,但如果我使用print就可以了?

函数不返回值的原因可能是函数内部没有使用return语句来返回结果。在Python中,函数可以通过return语句将结果返回给调用者。如果函数没有使用return语句,或者return语句没有返回任何值,那么函数将默认返回None。

使用print语句可以在控制台上打印出函数内部的结果,但并不会将结果返回给调用者。print语句只是将结果输出到标准输出流,供用户查看。

如果你希望函数返回一个值,你需要在函数内部使用return语句,并将希望返回的值作为return语句的参数。例如:

代码语言:txt
复制
def add(a, b):
    result = a + b
    return result

sum = add(3, 5)
print(sum)  # 输出结果为8

在上面的例子中,add函数接受两个参数a和b,并将它们相加得到结果result。然后,使用return语句将结果返回给调用者。调用add函数并将返回值赋给sum变量,最后使用print语句打印出结果。

需要注意的是,函数只能返回一个值。如果你希望返回多个值,可以使用元组、列表或字典等数据结构来封装多个值,然后将其作为一个整体返回。例如:

代码语言:txt
复制
def get_info():
    name = "John"
    age = 25
    return (name, age)

info = get_info()
print(info)  # 输出结果为('John', 25)

在上面的例子中,get_info函数返回一个包含姓名和年龄的元组。调用get_info函数并将返回值赋给info变量,最后使用print语句打印出结果。

总结起来,如果你的函数不返回值,但使用print语句可以打印出结果,那么很可能是因为你忘记在函数内部使用return语句来返回结果。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

为什么建议使用框架默认 DefaultMeterObservationHandler

为什么建议使用框架默认 DefaultMeterObservationHandler 背景知识 最近,我们升级 SpringBoot 3.x,并且,升级后,我们全面改造原来 Sleuth 以及...)结合,这样,我们就可以在链路追踪中,同时记录指标监控数据。...这样,既节约成本,又能及时报警,又能容易通过 Jaeger 通过链路追踪数据定位出问题实例,然后通过获取对应实例 JFR 事件定位详细问题。...全面使用 Observation 遇到了内存溢出以及 CPU 飙高(非不断 GC 导致) 但是,我们在全面使用 Observation 时候,发现一个问题,就是内存溢出以及 CPU 飙高(非不断 GC...,根据你项目中是否添加了链路追踪,或者指标监控依赖,来初始化不同 ObservationHandler,如果项目中只有指标监控,那么就会初始化 DefaultMeterObservationHandler

3300

为什么推荐你使用RabbitMQ消息转换功能

改版: 发送消息与订阅消息取消使用amqp提供消息序列化与反序列化功能,使用String类型,发送消息时手动转化为json字符串再发送,消费消息时手动json反序列化。...背景: 如果使用自动序列化与反序列化功能,即给Rabbitmq配置Jackson2JsonMessageConverter消息转化器,当我们修改消息Bodyjava类型名称或者包名时,消费历史消息就会抛出...1、不做兼容上线,需要: 确保不会有新消息进入队列; 确保队列中消息已经消费完。...这是因为Rabbitmq为了实现一个队列支持多个方法消费(即@RabbitHandler注解方法),每个方法消费不同Java类型消息Body,在消费到消息时,就需要先反序列化出消息Body,才能根据消息...除非确保消息Body类名不会变,且生产者与消费者定义完整类名相同,否则不建议使用自动序列化与反序列化功能。

2.2K20

如果Node.js已具备反向代理功能,为什么使用反向代理?

它还可以通过其他方式修改请求,例如清除格式错误请求或在协议之间进行转换。 一旦反向代理接收到响应,它就可以以某种方式转换该响应。同样,常见方法是修改Host标头以匹配原始请求。...既然我们知道反向代理是什么,我们现在可以看看为什么我们想要使用Node.js。 为什么使用反向代理? SSL终止 SSL终止是使用反向代理最常见原因之一。...但是,如果Node.js应用程序正在处理SSL,那么您应用程序使用每个第三方模块(甚至可能是恶意模块  )都可以访问您私有SSL证书。...反向代理允许我们应用程序专注于业务逻辑并忘记协议和流程管理。 ---- 尽管Node.js完全能够在生产中运行,使用具有生产HTTP Node.js应用程序反向代理提供了无数好处。...SSL证书管理可以变得更简单。所需应用程序代码量也减少了。强烈建议您在下一个生产Node.js应用程序时使用反向代理。

1.5K40

番外特别篇之 为什么建议你直接使用UIImage传值?--从一个诡异相册九图连读崩溃bug谈起

至少,现在能复现问题了.下面的,需要就只是时间,耐心还有大开脑洞....3.确定是PHImageManager 问题requestImageForAsset:方法引起高内存占用 当你通过注释法,配合断点,很容易就可以引起内存高占用代码.此处,App中,是读取相册原图...,前者是直接返回二进制数据,渲染....,如果原始 UIImage 对象一直存在,这一块内存那就无法释放.这一步,困扰很久很久,好几个小时!...真没想到,一个UIImage对象,竟然会二次引起高内存占用.最终解决方法,就是在前一个页面传递 NSData数组,在赋值处,再使用imageWithData:转换为 UIImage.这样,内存使用基本没什么起伏

1.6K70

这些年,你们一起踩过坑(2)

虽然这种干货文章要比蹭热点水文阅读数少多了,而且一般系列文章阅读都会呈下降趋势。但有价值东西,也总归还是要有人来做一做,就算吃力讨好也认了。有缘人看到了,学到了,那就挺好。...很多人在一开始没理解函数返回值(return)和输出(print区别。 函数里 return 后面的东西叫做返回值,它是函数执行结果,是函数里特有的。一旦遇到 return,函数就结束。...喇叭可以响很多次,发出各种不同声音(print 各种信息),每次生成出小黄鸭只有一个。 函数返回值可以赋值给变量,之后再被使用如果没有赋值,那返回值就没有用了。...所以上述函数如果希望输出,有两种写法,一是在函数中直接 print,另一种是: s = show_hello() print(s) 4. 为什么调用了函数、加了括号,还赋值了,还是没拿到结果?...为什么函数里修改了变量,没有效果? ? 函数里修改了 x,但是最终结果并没有变化。类似的还有程序直接报错变量未定义、不想改变值被修改了等情况。

57930

python 之 函数

大家好,又见面是你们朋友全栈君。 什么是函数 引言 现在有这么个情况:假设我们python中len方法不可以使用了,而恰好你又要计算一个字符串长度你该怎么办呢?...若传入多个参数: 应按先位置传值,再按关键字传值 具体传入顺序应按照函数定义参数情况而定3.返回值 如果函数返回值,还应该定义“变量”接收返回值 如果返回值有多个...那就是在函数最后加上一个return,return 后面写你需要返回值就可以。...str_len) 没有return 只写return,后面写其他内容,也会返回None,有的同学会奇怪,既然没有要返回值,完全可以写return,为什么还要写个return呢?...但是现在这个函数还是不完美,之前我们使用len函数时候得是length = len(“hello world”),这样可以想计算谁就计算谁长度。

34160

Python 学习过程第一个山坡,99%的人都倒在山坡下【附源码】

就可以用该函数使用自己想要效果。...print("是一个无参数无返回值函数") print("hello world") print("是一个无参数无返回值函数") print("hello world") print("是一个无参数无返回值函数...") print("hello world") print("是一个无参数无返回值函数") print("hello world") print("是一个无参数无返回值函数") print("hello...def show(a,b,c,name="查理"): pass 函数返回值 --------- 函授返回值属于非必选项,可以写可以写,时候也会有返回值,该值为 None。...) 在函数定义时候,参数位置使用 *参数名,然后在函数体重代码块位置就可以进行循环打印,可以捕获到任意数量参数。

23840

码如其人,小老弟,你能写一手漂亮Python函数

但我保证,如果函数符合这些规则,你代码看起来会非常漂亮。下面将分步讲解各个规则,然后总结这些规则如何构成一个「好」函数。...该函数命名第一个问题是使用首字母缩写/缩略词。比起缩略词和并未普及首字母缩写,完整英语单词会更好。使用缩写唯一原因是为了节省打字时间,现代编辑器都有自动补全功能,所以你只需键入一次全名。...文档注释 很多 Python 开发者都知道 PEP-8,它定义 Python 编程风格指南,很少有人了解定义文档注释风格 PEP-257。...以下是人们在被问及为什么他们写函数没有返回值时给出一些常见原因: 「函数所做就是类似 I/O 操作,例如将一个值保存到数据库中,这种函数不能返回有用输出。」...因此,尽管我们新定义 add_three(number) 仍是幂等函数,但它不再是纯函数。 纯函数记录语句或 print() 调用,不使用数据库或互联网连接,访问或修改非局部变量。

47120

C++ 初阶 类和对象(中)

前言:C++初阶系列,每一期博主都会使用简单朴素语言将对应知识分享给大家,争取让所有人都可以听懂,C++初阶系列会持续更新,上学期间将不定时更新,总会更 一、构造函数 1.1为什么要有构造函数...妈妈再也不用当心忘记初始化类~ 1.2构造函数特性 1. 无返回值。 2.函数名与类名相同。 3. 对象实例化时编译器自动调用对应构造函数。 4. 构造函数可以重载。...C++初阶 入门(2)-CSDN博客 1.3使用构造函数 我们拿关于日期类举例子,年月日基本变量创建一下,再写一个构造函数和打印函数需要注意一点就是构造函数创建必须要有默认构造函数,否则在你传变量时候...在我看来一共有三种 1.在构造函数中写入缺省值,实现全缺省,这样就可以实现创建无参数变量依然可以初始化变量 2.使用重载方式来缺省 3.在声明同时进行初始化 值得一提是,如果你已经写了构造函数...如图: 屏蔽掉之后就可以正常使用声明 总结一下: 总的来说,默认构造函数就是指传参也可以调用函数,如全缺省。

12710

1.Python函数初识

print("ok 走起") 那么这里,写了一个约会功能,将上面的那些重复代码封装到这个所谓函数中,这样,什么时候需要使用这个功能,通过一个指令调用即可。...什么都没有发生.因为只定义一个函数.但是还没有执行过这个函数. 2.2函数调用 使用函数名加小括号就可以调用了 写法:函数名() 这个时候函数函数体会被执行 通过上面的动态图大家可知,只有解释器读到函数名...() 时,才会执行此函数如果没有这条指令,函数里面即使有10万行代码也是执行。...直接调用定义好函数就可以 咱们约完之后得有个结果吧, 比如是约萝莉,还是大妈啊总得有个结果,那么这个结果 怎么来描述和获得呢? 这就涉及到函数返回值啦 三....跟我们之前使用len一样,函数返回值返回给 函数名() 这个整体,也就是这个执行者。 return 会给函数执行者返回值。 当然,也可以返回多个值。 ?

42520

码如其人,同学你能写一手漂亮Python函数

文档注释 很多 Python 开发者都知道 PEP-8,它定义 Python 编程风格指南,很少有人了解定义文档注释风格 PEP-257。...以下是人们在被问及为什么他们写函数没有返回值时给出一些常见原因: 「函数所做就是类似 I/O 操作,例如将一个值保存到数据库中,这种函数不能返回有用输出。」...50 行函数而言是个合理长度。 如果函数遵循单一功能原则,一般而言其长度会非常短。如果函数是纯函数或幂等函数(下面会讨论),它长度也会较短。这些想法对于构造简洁代码很有帮助。...以下展示非幂等函数示例: 这函数不是幂等,因为函数返回值依赖于 I/O,即用户输入数字。每次调用这个函数时,它都可能返回不同值。...因此,尽管我们新定义 add_three(number) 仍是幂等函数,但它不再是纯函数。 纯函数记录语句或 print() 调用,不使用数据库或互联网连接,访问或修改非局部变量。

56030

码如其人,同学你能写一手漂亮Python函数

文档注释 很多 Python 开发者都知道 PEP-8,它定义 Python 编程风格指南,很少有人了解定义文档注释风格 PEP-257。...在编写函数时,遵循这些规则很容易。我们只需要养成编写文档注释习惯,并在实际写函数主体之前完成它们。如果你不能清晰地描述这个函数作用是什么,那么你需要更多地考虑为什么要写这个函数。...以下是人们在被问及为什么他们写函数没有返回值时给出一些常见原因: 「函数所做就是类似 I/O 操作,例如将一个值保存到数据库中,这种函数不能返回有用输出。」...50 行函数而言是个合理长度。 如果函数遵循单一功能原则,一般而言其长度会非常短。如果函数是纯函数或幂等函数(下面会讨论),它长度也会较短。这些想法对于构造简洁代码很有帮助。...因此,尽管我们新定义 add_three(number) 仍是幂等函数,但它不再是纯函数。 纯函数记录语句或 print() 调用,不使用数据库或互联网连接,访问或修改非局部变量。

48020

码如其人,同学你能写一手漂亮Python函数

文档注释 很多 Python 开发者都知道 PEP-8,它定义 Python 编程风格指南,很少有人了解定义文档注释风格 PEP-257。...以下是人们在被问及为什么他们写函数没有返回值时给出一些常见原因: 「函数所做就是类似 I/O 操作,例如将一个值保存到数据库中,这种函数不能返回有用输出。」...50 行函数而言是个合理长度。 如果函数遵循单一功能原则,一般而言其长度会非常短。如果函数是纯函数或幂等函数(下面会讨论),它长度也会较短。这些想法对于构造简洁代码很有帮助。...以下展示非幂等函数示例: 这函数不是幂等,因为函数返回值依赖于 I/O,即用户输入数字。每次调用这个函数时,它都可能返回不同值。...因此,尽管我们新定义 add_three(number) 仍是幂等函数,但它不再是纯函数。 纯函数记录语句或 print() 调用,不使用数据库或互联网连接,访问或修改非局部变量。

43420

Pytest学习(四) - fixture使用

前言 写这篇文章,整体还是比较坎坷发现有知识断层,理解再整理写出来,还真的有些难。 作为java党硬磕Python,虽然对而言是常事(因为比较爱折腾,哈哈),这并不能影响热情。...fixture是有返回值,没有返回值默认为None。用例调用fixture返回值时,把fixture函数名当做变量用就可以。...,后执行放上层 可以传多个fixture参数,先执行放前面,后执行放后面 如果fixture有返回值,用 @pytest.mark.usefixtures() 是无法获取到返回值,必须用传参方式...需要用函数传参方式,不能用 @pytest.mark.usefixtures() 方式,否则会生效。...def test01(): print("\n是第一个用例") # 如果第一个用例异常,不影响其他用例执行 raise Exception #此处异常 def test02

88830

全菊变量和菊部变量

(虽然觉得事件本身也挺有意思,已成路人粉) 如果你对此感到不适,或对于变量作用域相关概念已了然于心,那后面的内容就不必看了,谢谢!...根据我经验,几乎所有的编程学习者在开始用函数不久之后,都踩过局部变量坑。几乎每个星期,都会有人在答疑群、知识星球、论坛、微博上问到关于作用域使用不当而导致问题。...(昨天在微博上刚回答一个) 所以,如果通过这个略有点恶趣味热点事件能让你记住“全局变量”、“局部变量”、“形参”、“实参”、“变量作用域”这几个概念,觉得也挺好啊。...对 x 进行赋值之后,x 值发生了变化,但不会影响实参 a 值。 函数返回值是 x 值,并赋值给外部变量 b,所以 b 值就是 x 值, b 不是 x,此时 x 已不存在。...变量 x 在函数中被重新赋值 10,但不会影响外部变量 x 值。 对 x 自身做了累加,此时 x 变成 20。 函数返回值是 x 值,没有赋值给任何变量,所以此返回值没任何作用,函数结束。

45120

基础 Python

基础 Python 本指南范围和结果 嗨,是 Virgilio ,你可能已经认识。 欢迎来到你进入数据科学第一步! 为什么要你学习 Python?...如果你正在学习成为开发人员,那么这个原因就可以。在这种情况下,从更传统语言(如 C 或 Java) 开始可能是正确选择。...考虑到有多少人来自不同领域并且只是希望能够将编程应用于他们特定问题,认为他们希望因为 Java 类名中指针或大写字母而受到打击。...函数 函数是完成特定任务 “自包含” 代码模块。函数通常 “接收” 数据,处理数据并 “返回” 结果。一旦写入函数就可以反复使用它。可以从其他函数内部 “调用” 函数。...现在,如果你关注指南,你应该熟悉 Python 基础知识,并且已经能够创建很多东西!如果没有更多具体小项目练习,你会很快忘记你学到东西。 建议你事情是实现一些小项目。

63410

刚转行1年测开新手:学习编程几点经验分享

注意: 调用函数时,实参可以是按位置或关键字混合使用必须保证关键字参数在位置参数后面,且不可以对一个形参重复赋值 默认参数值通常应设为不可变类型 2、可变长度参数*args和**kwargs 参数长度可变指的是调用函数时...,实参个数可以固定,而在调用阶段,实参无非是按照位置或者按关键字两种形式,因此就出现两种解决方案来处理。...,y,z都被**接收以字典形式赋值给kwargs,即kwargs={'y':2,'z':3} 2.3 组合使用 可变参数*args与关键字参数kwargs通常是组合在一起使用如果一个函数形参为上述两种类型...有装饰器,我们就可以抽离出大量与函数功能本身无关雷同代码到装饰器中并继续重用。 五、装饰器推导 提出需求:为index函数新增计算代码运行时间功能,必须符合开放封闭原则。...stop-start) 结果:虽然实现功能,破环开放封闭原则,修改了源代码,不符合要求,失败。

37910

干货 | 如何写一个更好Python函数

缩写单词唯一原因是为了节省打字时间,但是每个现代编辑器都有自动填充功能,所以你只需要键入一次全名就可以。 缩写通常是特定领域。...再这里不简单地重复PEP - 257内容,你可以在闲暇时读一下。...如果你不能写一个清晰文档字符串来描述函数做什么,就说明你需要再考虑考虑为什么要写这个函数了。 返回值 函数可以被认为是一些独立程序。它们以参数形式接受一些输入,并返回一些结果。...当给定函数没有返回值时,有一些常见原因: “它所做只是[一些与I / O相关事情,比如将一个值保存到数据库中]。不能返回任何有用东西。” 不同意。如果操作顺利完成,函数可以返回True。...纯函数没有日志语句或print ( )调用。它们不使用数据库或互联网连接。它们访问或修改非局部变量。它们不调用任何其他非纯函数

58820

干货 | 如何写一个更好Python函数

缩写单词唯一原因是为了节省打字时间,但是每个现代编辑器都有自动填充功能,所以你只需要键入一次全名就可以。 缩写通常是特定领域。...再这里不简单地重复PEP - 257内容,你可以在闲暇时读一下。...如果你不能写一个清晰文档字符串来描述函数做什么,就说明你需要再考虑考虑为什么要写这个函数了。 返回值 函数可以被认为是一些独立程序。它们以参数形式接受一些输入,并返回一些结果。...当给定函数没有返回值时,有一些常见原因: “它所做只是[一些与I / O相关事情,比如将一个值保存到数据库中]。不能返回任何有用东西。” 不同意。如果操作顺利完成,函数可以返回True。...纯函数没有日志语句或print ( )调用。它们不使用数据库或互联网连接。它们访问或修改非局部变量。它们不调用任何其他非纯函数

58710

怎样才能写好一个 Python 函数

缩写单词唯一原因是为了节省打字时间,但是每个现代编辑器都有自动填充功能,所以你只需要键入一次全名就可以。 缩写通常是特定领域。...再这里不简单地重复 PEP - 257 内容,你可以在闲暇时读一下。...如果你不能写一个清晰文档字符串来描述函数做什么,就说明你需要再考虑考虑为什么要写这个函数了。 4. 返回值 函数可以被认为是一些独立程序。它们以参数形式接受一些输入,并返回一些结果。...当给定函数没有返回值时,有一些常见原因: “它所做只是[一些与 I/O 相关事情,比如将一个值保存到数据库中]。不能返回任何有用东西。” 不同意。...纯函数没有日志语句或 print()调用。它们不使用数据库或互联网连接。它们访问或修改非局部变量。它们不调用任何其他非纯函数

55220
领券