鱼C论坛

 找回密码
 立即注册
查看: 1121|回复: 6

[已解决]关于局部变量和全局变量(第二天)

[复制链接]
发表于 2020-6-16 23:08:37 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
2020-6-16.png 2020-6-16-2.png
今天测试有两个问题:1、第一张图片里的func2函数为啥不能声明全局变量var啊?2、第二张图片里面的fun1函数没有返回值,有打印命令,然后我调用的时候结果出现两个值,一个是函数内部打印的结果,另外一个是因为没有返回值打印的None,有人能稍微解释下为啥是这样的结果吗?
最佳答案
2020-6-17 20:04:55
第一条差不多就你的意思

对于第二条我其实主要是想问print(函数),如果函数里面本身有print()函数,那么就会照常执行函数里面的print()函数内容是吧?我一开始理解的是print(函数)的话,只会打印函数里面的返回值的


print(函数) 只会打印这个函数的 返回值 , 和函数里面的print 没有关联,所以照常打印没错~,函数里面的 print 打印他的 ,我们 print(函数) 打印我们函数的返回值,互不影响~
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2020-6-16 23:12:46 | 显示全部楼层
本帖最后由 Stubborn 于 2020-6-16 23:15 编辑

我要一楼

1、第一张图片里的func2函数为啥不能声明全局变量var啊?

应该是函数的传参导致的,你把函数的参数名字修改一下,不要是var


2、第二张图片里面的fun1函数没有返回值,有打印命令,然后我调用的时候结果出现两个值,一个是函数内部打印的结果,另外一个是因为没有返回值打印的None,有人能稍微解释下为啥是这样的结果吗?

在没有出现return其他的时候,默认返回一个None
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-6-16 23:31:08 | 显示全部楼层
本帖最后由 Twilight6 于 2020-6-16 23:32 编辑

1、第一张图片里的func2函数为啥不能声明全局变量var啊?


因为第二个函数 你声明的是他的参数,而参数本身就是局部变量不属于全局变量滴呀~ 本身不是全局变量就不能通过 global 来声明~

你可以这样:
  1. var = ' Hi '

  2. def fun1():
  3.     global var
  4.     var = ' Baby '
  5.     return fun2()

  6. def fun2():
  7.     global var
  8.     var += 'I love you'
  9.     return var

  10. print(fun1())
复制代码

2、第二张图片里面的fun1函数没有返回值,有打印命令,然后我调用的时候结果出现两个值,一个是函数内部打印的结果,另外一个是因为没有返回值打印的None,有人能稍微解释下为啥是这样的结果吗?


因为在 Python 函数中如果没有设置返回值 那么都会默认返回的 None,你没有打印就不会打印出这个 None 返回值,但在交互界面和控制台Python 会自动帮你打印返回值


小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-6-17 19:56:21 | 显示全部楼层
Twilight6 发表于 2020-6-16 23:31
因为第二个函数 你声明的是他的参数,而参数本身就是局部变量不属于全局变量滴呀~ 本身不是全局变量就 ...

对于第一条你的意思是我函数内部如果声明全局变量,这个变量必须要在全局程序里面出现过是吧?
对于第二条我其实主要是想问print(函数),如果函数里面本身有print()函数,那么就会照常执行函数里面的print()函数内容是吧?我一开始理解的是print(函数)的话,只会打印函数里面的返回值的
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-6-17 20:04:55 | 显示全部楼层    本楼为最佳答案   
第一条差不多就你的意思

对于第二条我其实主要是想问print(函数),如果函数里面本身有print()函数,那么就会照常执行函数里面的print()函数内容是吧?我一开始理解的是print(函数)的话,只会打印函数里面的返回值的


print(函数) 只会打印这个函数的 返回值 , 和函数里面的print 没有关联,所以照常打印没错~,函数里面的 print 打印他的 ,我们 print(函数) 打印我们函数的返回值,互不影响~
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-6-17 22:38:47 | 显示全部楼层
Twilight6 发表于 2020-6-17 20:04
第一条差不多就你的意思

ok
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-6-21 23:47

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表