Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/wordpress/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 2.7.10:在函数之间向全局变量添加1_Python - Fatal编程技术网

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
    ,是吗?