gpt4 book ai didi

Python局部变量被修改但最后没有显示

转载 作者:太空宇宙 更新时间:2023-11-04 06:48:27 24 4
gpt4 key购买 nike

a = 'file'
b = 'file'
c = 4
d = 4
e = 5
f = 6

def sim(a,b,c,d,e,f):
s = 0
if( a == b):
s+=1
print(s)
if( c==d ):
s+=1
print(s)
if (e == d):
s+=1
print(s)
score = s/3
return score

>>> sim(a,b,c,d,e,f)

上面的输出是:

1
2
0

这意味着虽然 s 首先在 if 子句中更新,但当它在 score 变量中访问时,它具有 s 的旧值,即 0。有人可以解释一下如何更正这个吗?为什么 s 的正确值没有显示给评分变量

最佳答案

正在打印的 0 不是 s 的值。打印的是函数的返回值。 Python 2 默认使用整数除法,因此您打印的是 s/3 的值,即 0

它正在打印函数的返回值,因为您正在处理 shell。如果您将其作为单独的程序运行,则不会打印。

您的情况与此非常相似:

>>> def f(x):
return x / 3

>>> f(2)
0

可以看到,正在打印函数返回的值。此外,2 除以 3 得到整数除法 0。

关于Python局部变量被修改但最后没有显示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31707717/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com