【问题标题】:For loop not saving variable outside the loopFor循环不保存循环外的变量
【发布时间】:2020-04-21 05:56:41
【问题描述】:

我不知道为什么,但是当我要求它在循环结束后打印它时,我的代码没有显示所选每种颜色的变量内容。程序运行时,只输出一个没有文本输出的空行。

如果有人能提供一个非常有帮助的指针,谢谢。

def inputs(): firstColour = "" #Variables 用于由for loop secondColour = "" thirdColour = "" patchSize = "" #States the number of patches in the grid 中输入的字母确定的三种颜色中的每一种

for i in range(3):

    patchColour = input ("Please choose a colour: r, g, b, m, c, o: ").lower()

    if patchColour == "r":
        colour = "red"
        print (colour)
    elif patchColour == "g":
        colour = "green"
        print (colour)
    elif patchColour == "b":
        colour = "blue"
        print (colour)
    elif patchColour == "m":
        colour = "magneta"
        print (colour)
    elif patchColour == "c":
        colour = "cyan"
        print (colour)
    elif patchColour == "o":
        colour = "orange"
    else:
        print("No valid input has been entered")
        break

    if i == 0:
        colour == firstColour
    elif i == 1:
        colour == secondColour
    elif i == 2:
        colour == thirdColour

    print(firstColour, secondColour, thirdColour)

【问题讨论】:

    标签: python for-loop variables scope global


    【解决方案1】:

    本节:

    if i == 0:
        colour == firstColour
    elif i == 1:
        colour == secondColour
    elif i == 2:
        colour == thirdColour
    

    应该是:

    if i == 0:
        firstColour = colour
    elif i == 1:
        secondColour = colour
    elif i == 2:
        thirdColour = colour
    

    “==”用于比较项目是否相同,“=”用于为变量赋值。此外 color 和 firstColour 等......是错误的方式。当您稍后打印出 firstColour 时,您需要先为其分配一个值

    【讨论】:

    • 非常感谢你的工作,我知道理解