鱼C论坛

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

[已解决]小甲鱼课后作业20讲疑问

[复制链接]
发表于 2021-8-20 10:46:03 | 显示全部楼层 |阅读模式

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

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

x
def funY():
        x=5
        x += 1
        return x
   

a = funY()
print(a)
print(a)
print(a)

为什么打印不了678呢?
第三行运行完,x就已经是新值了,第二行的x也变了
最佳答案
2021-8-20 11:09:59
函数内部是局部变量,不会变的
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2021-8-20 10:57:22 | 显示全部楼层
  1. x = 5
复制代码

你每次进入函数,x都为5当然是打印5+1了
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-8-20 10:57:39 | 显示全部楼层
第三行只运行了一次 而且函数运行完x的内存就被释放了 没保存新值 每次都是5
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-8-20 11:03:30 | 显示全部楼层
本帖最后由 大马强 于 2021-8-20 11:06 编辑

a = funY() 相当于a 接收了funY()返回值,你是想每次print,就调用funY(),但a不是funY()而是它返回值,
你要理解 a = funY()和a = funY的区别
  1. x = 5
  2. def funY():
  3.     global x
  4.     x += 1
  5.     return x


  6. a = funY
  7. print(a())
  8. print(a())
  9. print(a())
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-8-20 11:09:59 | 显示全部楼层    本楼为最佳答案   
函数内部是局部变量,不会变的
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-8-20 11:19:30 | 显示全部楼层
a = funY()调用了funY()函数:
x = 5
x += 1  # 此时x = 6
return x  # return 6

那么a = 6
print(a)  # 打印6
print(a)  # 打印6
print(a)  # 打印6
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-8-20 11:30:33 | 显示全部楼层
  1. def funY(x):
  2.     return x + 1
  3.    
  4. a = funY(5)
  5. print(a , end = '')
  6. a = funY(a)
  7. print(a , end = '')
  8. a = funY(a)
  9. print(a)
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-8-20 14:28:17 | 显示全部楼层
调用funY(),每次都会重新给x赋值为5,返回的永远是6。看你的想法应该是每次调用funY()实现+1的功能,那你有两个方法:传入变量进去进行运算或者定义全局变量。
使用全局变量global声明,在函数内修改a的值。
a = 5
def funY():
        global a
        a += 1
        return a
print(funY())
print(funY())
print(funY())
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-8-20 15:05:50 | 显示全部楼层
内置函数的值已经固定了,你可以用
def ds(x):
      return x + = 1
a1= ds(5)
a2=ds(6)
a3=ds(7)
print(a1,  a2,  a3)
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-6-19 21:42

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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