Python 单词生成器

Python words generator

我目前正在尝试 运行 一个程序,用户输入一个词,然后在他们输入第一个词后,程序会询问他们是否要继续输入词。一旦用户回答“否”,程序将生成已输入的单词列表。我似乎无法为下面的代码调用数组:

def word():
    w1 = input("Please enter a word: ")
    group = []
    group.append(w1)
    decide = input("Do you want to continue? yes/no: ")
    if (decide == "yes"):
        return -1
    elif (decide == "no"):
        return 1


while (True):
    crit = word()
    if (crit == -1):
        continue
    elif (crit == 1):
        print("words are: ", group)
        break

我怎样才能让它正常工作?

我想你是想将 list 传递给函数:

def word(group):
    w1 = input("Please enter a word: ")
    group.append(w1)
    decide = input("Do you want to continue? yes/no: ")
    return decide == "yes"

group = []
while True:
    crit = word(group)
    if crit:
        continue
    else:
        print("words are: ", group)
        break

数组“group”在函数 word() 中定义。这意味着如果返回函数,列表“group”也会消失。

你可以

  1. 使用全局变量

在函数外部定义组(在本例中,在顶部)并在函数内部使用该全局列表。 IE。添加行 global group 在函数的第一行。

然而,在不需要时使用全局变量并不是那么推荐。

  1. 在函数外定义组列表并将其作为参数传递给函数

而不是def word(),使用def word(group)并在调用函数时将列表传递给函数。

group = []

def word():
    w1 = input("Please enter a word: ")
    group.append(w1)
    decide = input("Do you want to continue? yes/no: ")
    if (decide == "yes"):
        return -1
    elif (decide == "no"):
        return 1


while (True):
    crit = word()
    if (crit == -1):
        continue
    elif (crit == 1):
        print("words are: ", group)
        break

变量 group 在函数外不可用。

在函数外部创建的变量是全局变量,任何人都可以使用。