鱼C论坛

 找回密码
 立即注册
查看: 2229|回复: 8

[已解决]函数问题

[复制链接]
发表于 2021-9-30 21:34:42 | 显示全部楼层 |阅读模式

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

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

x
  1. def fun(var):
  2.     var = 1314
  3.     print(var, end='')

  4. var = 520
  5. fun(var)
  6. print(var)
复制代码


<<< '1314520'

请问 全局变量var =520 是作为函数 中var的参数输入进去,----> 就先打印出1314,那print(var)这一步骤为什么不是另起一行打印520  
我原本想打印的是 >>>1314
                          >>>520

这个520是怎么在局部变量里打印出来的?
print(var,end='')这个步骤 var既打印了局部变量里的var=1314同时又访问了全局变量var=520 能解释一下吗?
           
最佳答案
2021-10-1 08:23:04
範例 1:
  1. def func(var): # 參數是全局變量的值,不是全局變量本身
  2.     var = 1314 # 局部變量
  3.     print(var) # 這裡打印的是局部變量

  4. var = 520 # 全局變量
  5. func(var) # 打印局部變量
  6. print(var) # 打印全局變量
复制代码
  1. 1314
  2. 520
复制代码
範例 2:
  1. def func(): # 沒有參數
  2.     # var = 1314 也沒有局部變量
  3.     print(var) # 這裡打印的就是全局變量

  4. var = 520 # 全局變量
  5. func() # 打印全局變量
  6. print(var) # 打印全局變量
复制代码
  1. 520
  2. 520
复制代码
範例 3:
  1. def func(): # 沒有參數
  2.     global var # 定義全局變量(意思就是現在這個 var 是全局變量)
  3.     var = 1314 # 已經改變全局變量的值了
  4.     print(var) # 這裡打印的就是全局變量

  5. var = 520 # 全局變量
  6. func() # 打印全局變量,全局變量的值由 520 變成 1314
  7. print(var) # 打印全局變量
复制代码
  1. 1314
  2. 1314
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2021-9-30 21:40:28 | 显示全部楼层
你不是end=''了吗,就说明你打印1234后不换行
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-9-30 21:42:35 | 显示全部楼层
寄安 发表于 2021-9-30 21:40
你不是end=''了吗,就说明你打印1234后不换行

我想问最后的print(var)为什么会通过函数里打印出来呢,为什么不是一个单独打印全局变量的行为
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-9-30 21:42:54 | 显示全部楼层
为啥要用两个一样的变量名,你是在深究全局变量和局部变量的问题吗
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-9-30 21:44:25 | 显示全部楼层
寄安 发表于 2021-9-30 21:42
为啥要用两个一样的变量名,你是在深究全局变量和局部变量的问题吗

这是课后题目,没搞懂这个答案
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-9-30 21:45:18 | 显示全部楼层
luck78 发表于 2021-9-30 21:42
我想问最后的print(var)为什么会通过函数里打印出来呢,为什么不是一个单独打印全局变量的行为

你定义的函数里有一个print
后边还有一个print
so就打印了两次
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-9-30 21:46:06 | 显示全部楼层
luck78 发表于 2021-9-30 21:44
这是课后题目,没搞懂这个答案

问题不大,我也才是 初学者,共同进步
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-9-30 22:17:08 | 显示全部楼层
你的函数参数在内部被重新赋值了, 任何参数传进来都是打印1314, 520没有在函数内部被打印出来, 你在全局有一个print(var)输出了520
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-10-1 08:23:04 | 显示全部楼层    本楼为最佳答案   
範例 1:
  1. def func(var): # 參數是全局變量的值,不是全局變量本身
  2.     var = 1314 # 局部變量
  3.     print(var) # 這裡打印的是局部變量

  4. var = 520 # 全局變量
  5. func(var) # 打印局部變量
  6. print(var) # 打印全局變量
复制代码
  1. 1314
  2. 520
复制代码
範例 2:
  1. def func(): # 沒有參數
  2.     # var = 1314 也沒有局部變量
  3.     print(var) # 這裡打印的就是全局變量

  4. var = 520 # 全局變量
  5. func() # 打印全局變量
  6. print(var) # 打印全局變量
复制代码
  1. 520
  2. 520
复制代码
範例 3:
  1. def func(): # 沒有參數
  2.     global var # 定義全局變量(意思就是現在這個 var 是全局變量)
  3.     var = 1314 # 已經改變全局變量的值了
  4.     print(var) # 這裡打印的就是全局變量

  5. var = 520 # 全局變量
  6. func() # 打印全局變量,全局變量的值由 520 變成 1314
  7. print(var) # 打印全局變量
复制代码
  1. 1314
  2. 1314
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-7-13 07:35

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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