Python 2.7.10:在函数之间向全局变量添加1
所以基本上我的代码是:Python 2.7.10:在函数之间向全局变量添加1,python,Python,所以基本上我的代码是: global I_like_dem_apples I_like_dem_apples = 0 global I_dont_like_dem_apples I_dont_like_dem_apples = 0 def how_do_you_like_them_applez(steve_jobs): if steve_jobs == "Empire" or steve_jobs == "Gala": return I_like_dem_apples
global I_like_dem_apples
I_like_dem_apples = 0
global I_dont_like_dem_apples
I_dont_like_dem_apples = 0
def how_do_you_like_them_applez(steve_jobs):
if steve_jobs == "Empire" or steve_jobs == "Gala":
return I_like_dem_apples == I_like_dem_apples + 1
if steve_jobs == "Rome" or steve_jobs == "York":
return I_dont_like_dem_apples == I_dont_like_dem_apples + 1
else:
return I_dont_like_dem_apples == I_dont_like_dem_apples + 1
def good_day (the_good_stuff):
for apple in the_good_stuff:
how_do_you_like_them_applez(apple)
if I_dont_like_dem_apples > I_like_dem_apples or I_dont_like_dem_apples == I_like_dem_apples:
return "false"
if I_like_dem_apples > I_dont_like_dem_apples:
return "true"
good_day(["Gala", "York", "Rome"])
print I_like_dem_apples
print I_dont_like_dem_apples
当我运行此命令时,不会收到任何错误消息,而是会收到以下消息:
0
0
[Finished in 0.0s]
我希望得到的是:
1
2
我试着改变代码,增加一点1
def how_do_you_like_them_applez(steve_jobs):
if steve_jobs == "Empire" or steve_jobs == "Gala":
return I_like_dem_apples =+ 1
if steve_jobs == "Rome" or steve_jobs == "York":
return I_dont_like_dem_apples =+ 1
else:
return I_dont_like_dem_apples =+ 1
还有这个
def how_do_you_like_them_applez(steve_jobs):
if steve_jobs == "Empire" or steve_jobs == "Gala":
return I_like_dem_apples = I_like_dem_apples + 1
if steve_jobs == "Rome" or steve_jobs == "York":
return I_dont_like_dem_apples = I_dont_like_dem_apples + 1
else:
return I_dont_like_dem_apples = I_dont_like_dem_apples + 1
但是我得到了无效的语法错误消息。我很确定唯一可能出错的是全局变量,但我不会,因为我认为全局变量就是这样工作的
全局的东西,你会错误地使用它们
全局I\u like\u dem\u apples、I\u not\u like\u dem\u apples
添加到所有相关函数中返回I_like_dem_apples==I_like_dem_apples+1
和所有类似语句替换为I_like_dem_apples+=1
I\u like\u dem\u apples
是一个可怕的名称“false”
和“true”
,返回false
和true
全局的东西,你会错误地使用它们
全局I\u like\u dem\u apples、I\u not\u like\u dem\u apples
添加到所有相关函数中返回I_like_dem_apples==I_like_dem_apples+1
和所有类似语句替换为I_like_dem_apples+=1
I\u like\u dem\u apples
是一个可怕的名称“false”
和“true”
,返回false
和true
通过“return(I_like_dem_apples+1)”和“return(I_not_like_dem_apples+1)”替换前两个函数中的返回。通过“真”和“假”替换“真”和“假”。您不需要全局变量。通过“return(我喜欢苹果+1)”和“return(我不喜欢苹果+1)”替换前两个函数中的返回值。通过“真”和“假”替换“真”和“假”。您不需要全局声明。
global I\u like\u dem\u apples
和其他global
声明在函数之外完全有意义。此外,表达式I_don_like_dem_apples==I_don_like_dem_apples+1
不会改变任何东西。它检查I\u don\u like\u dem\u apples
是否等于I\u don\u like\u dem\u apples+1
(始终为false),并返回0,这是“false”的数字表示形式。此外,您从未使用任何返回值,那么为什么还要麻烦返回任何东西呢?return I_like_dem_apples==I_like_dem_apples+1
是胡说八道=
是比较,而不是赋值,并且不能将赋值作为return
语句的一部分(这就是其他尝试失败的原因)。全局I_like_dem_apples
和其他全局
声明在函数之外完全有意义。此外,表达式I_don_like_dem_apples==I_don_like_dem_apples+1
不会改变任何东西。它检查I\u don\u like\u dem\u apples
是否等于I\u don\u like\u dem\u apples+1
(始终为false),并返回0,这是“false”的数字表示形式。此外,您从未使用任何返回值,那么为什么还要麻烦返回任何东西呢?return I_like_dem_apples==I_like_dem_apples+1
是胡说八道=
是比较,而不是赋值,并且不能将赋值作为返回
语句的一部分(这就是其他尝试失败的原因)。OP从不使用返回的值;你的建议不会有帮助。OP从不使用返回的值;你的建议没有用。1)我在一篇评论中去掉了所有的全球术语。2.)我用+=替换了那些语句,但我得到了一个无效的语法错误3.)完成4.)doneOn(2),我希望您也删除了return
s?是的,但现在我得到的是:UnboundLocalError:赋值前引用的局部变量'I_like_dem_apples'。如果你不介意的话,你能解释一下return到底是做什么的吗?我以为它停止了一个函数或if/else语句……您没有删除初始化i_like_dem_apples=0
,是吗?1。)我在一条注释中删除了所有全局术语。2.)我用+=替换了那些语句,但我得到了一个无效的语法错误3.)完成4.)doneOn(2),我希望您也删除了return
s?是的,但现在我得到的是:UnboundLocalError:赋值前引用的局部变量'I_like_dem_apples'。如果你不介意的话,你能解释一下return到底是做什么的吗?我以为它停止了一个函数或if/else语句……您没有删除初始化i\u like\u dem\u apples=0
,是吗?