找回密码
 立即注册

扫一扫,访问微社区

QQ登录

只需一步,快速开始

查看: 3589|回复: 4

[求助] 请教一个关于自定义函数的基本问题:

1

主题

1

帖子

1

积分

贫民

积分
1
adg777 发表于 2018-6-15 21:53:08 | 显示全部楼层 |阅读模式
t=0
y=6
def aa(x,y):
    if y>5:
        x=4

aa(t,y)
print(t)

这段程序我本以为会输出4,结果输出的是0。
真心请教原因,为什么输出的t不等于4呢?

回复

使用道具 举报

0

主题

956

帖子

956

积分

圣骑士

积分
956
sheeboard 发表于 2018-6-16 09:11:30 | 显示全部楼层
本帖最后由 sheeboard 于 2018-6-16 09:14 编辑

你定义的函数没输出,还有t作用域是全局的,x的作用域在函数内部。
Screenshot from 2018-06-16 09-10-41.png
回复 支持 反对

使用道具 举报

1

主题

7

帖子

7

积分

贫民

积分
7
lyf007200 发表于 2018-6-19 14:46:28 | 显示全部楼层
x=4 改成 t=4
回复 支持 反对

使用道具 举报

0

主题

2

帖子

2

积分

贫民

积分
2
junnyjiang 发表于 2018-6-22 17:55:01 | 显示全部楼层
1. 输出0的原因楼上说明了作用域的问题
2. 调用方法没有返回值所以在调用后没有任何变化(所以你可以在方法体内输出解决)
3. 若不要再方法内输出代码如下:

t=0
y=6
def aa(x,y):
    if y>5:
        x=4
    return x
t =aa(t,y)
print(t)
回复 支持 反对

使用道具 举报

0

主题

3

帖子

3

积分

贫民

积分
3
szfj 发表于 2018-6-24 23:40:30 | 显示全部楼层
t = 0
y = 6
def aa(x, y):
    if y > 5:
        global t
        t = 4
aa(t, y)
print(t)
回复 支持 反对

使用道具 举报

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

本版积分规则

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