在 python 中不使用元组或字典创建词汇表
Creating a glossary without using tupler or dictionary in python
def glossary():
print("Menu for glossary\n Type 1 to insert a new word\n Type 2 to lookup a word\n Type 3 to exit\n")
answer = input("Write your answer here: ")
if answer == "1":
Insert()
elif answer == "2":
lookup()
elif answer == "3":
return
else:
print("\nTry again!\n")
glossary()
def insert():
words = []
descriptions = []
word = input("Type the word you want to add: ")
words.append(word)
description = input("Descripe the word you want to add: ")
descriptions.append(description)
return words, descriptions
def lookup():
words = insert()
descriptions = insert()
print(words,"\n", descriptions)
您好,我正在尝试在 python 中创建词汇表而不使用元组或字典。词汇表应由两个字符串列表组成。一个单词列表,另一个列表是该单词的描述。用户将获得两个选项,要么插入一个带有描述的新单词,要么查找词汇表中已有单词的描述。操作插入和查找应该像在我的代码中一样在单独的函数中。我 运行 遇到的问题是,当我 运行 程序并选择 1 插入一个词时,一切顺利,词及其描述被插入到列表中。但是当菜单返回并且我选择 2 来查找我刚刚插入的单词时,当我尝试将列表传输到查找功能时,我 运行 遇到了问题。因为当我尝试从插入函数中获取 return 值时,它会再次调用该函数。所以我的问题基本上是将编辑后的列表从插入函数传输到查找函数,而无需再次 运行 插入函数。如您所见,查找功能远未完成,但我陷入了这个问题。
此代码有很多问题,如果我没有正确解释它们,我深表歉意,我对 python 的世界还比较陌生。
当前在您的插入函数中没有存储列表“单词”和“描述”的中心枢纽。当您调用该函数时,您实际上并没有为它们分配任何变量。每次调用该函数时,您都会用一个空列表覆盖您添加到这些列表中的任何内容。此外,通过在查找函数中调用函数插入,您并没有调用您想要的值。您 运行 正在执行整个功能,这不是您想要发生的事情。
我将首先更改您的词汇表功能,使其充当程序的中心枢纽。请注意,列表“单词”和“描述”在 while 循环之外,因此它们可以保留信息。我还更改了“if answer == “3””以打破循环而不是 return 什么都不做。最后,在调用 insert 和 lookup 时,我给它们提供了函数内使用的变量。
def glossary():
words = []
descriptions = []
while True:
print("\nMenu for glossary\n Type 1 to insert a new word.\n Type 2 to lookup a word.\n Type 3 to exit.\n")
answer = input("Write your answer here: ")
if answer == "1":
insert(words, descriptions)
elif answer == "2":
lookup(words, descriptions)
elif answer == "3":
break
else:
print("\nTry again!\n")
函数 insert 看起来也有点不同,如前所述,列表“words”和“descriptions”从函数中删除。此外,当函数被调用时,它会被赋予要使用的变量。这个函数没有 return 声明,据我所知这很好。如果实在想要一个可以改成有一个
def insert(words, descriptions):
word = input("Type the word you want to add: ")
words.append(word)
description = input("Descripe the word you want to add: ")
descriptions.append(description)
最后,查找功能。它看起来很不一样。它不再调用其中的另一个函数,它主要充当打印列表的函数。
def lookup(words, descriptions):
print('\n')
print(*words, sep = ", ")
print(*descriptions, sep = ", ")
当然我们会调用函数词汇表 运行 程序。
glossary()
全部代码:
def glossary():
words = []
descriptions = []
while True:
print("\nMenu for glossary\n Type 1 to insert a new word.\n Type 2 to lookup a word.\n Type 3 to exit.\n")
answer = input("Write your answer here: ")
if answer == "1":
insert(words, descriptions)
elif answer == "2":
lookup(words, descriptions)
elif answer == "3":
break
else:
print("\nTry again!\n")
def insert(words, descriptions):
word = input("Type the word you want to add: ")
words.append(word)
description = input("Descripe the word you want to add: ")
descriptions.append(description)
def lookup(words, descriptions):
print('\n')
print(*words, sep = ", ")
print(*descriptions, sep = ", ")
glossary()
这是一个非常奇怪的问题,如果我没有正确理解您的问题,我深表歉意。为了我的理智,我还更改了一些打印输出。我不知道你想用这段代码做什么,但我认为一种有趣的方式可以通过索引访问它们来获取“单词”和“描述”的特定部分的值以进行编辑或打印。
def glossary():
print("Menu for glossary\n Type 1 to insert a new word\n Type 2 to lookup a word\n Type 3 to exit\n")
answer = input("Write your answer here: ")
if answer == "1":
Insert()
elif answer == "2":
lookup()
elif answer == "3":
return
else:
print("\nTry again!\n")
glossary()
def insert():
words = []
descriptions = []
word = input("Type the word you want to add: ")
words.append(word)
description = input("Descripe the word you want to add: ")
descriptions.append(description)
return words, descriptions
def lookup():
words = insert()
descriptions = insert()
print(words,"\n", descriptions)
您好,我正在尝试在 python 中创建词汇表而不使用元组或字典。词汇表应由两个字符串列表组成。一个单词列表,另一个列表是该单词的描述。用户将获得两个选项,要么插入一个带有描述的新单词,要么查找词汇表中已有单词的描述。操作插入和查找应该像在我的代码中一样在单独的函数中。我 运行 遇到的问题是,当我 运行 程序并选择 1 插入一个词时,一切顺利,词及其描述被插入到列表中。但是当菜单返回并且我选择 2 来查找我刚刚插入的单词时,当我尝试将列表传输到查找功能时,我 运行 遇到了问题。因为当我尝试从插入函数中获取 return 值时,它会再次调用该函数。所以我的问题基本上是将编辑后的列表从插入函数传输到查找函数,而无需再次 运行 插入函数。如您所见,查找功能远未完成,但我陷入了这个问题。
此代码有很多问题,如果我没有正确解释它们,我深表歉意,我对 python 的世界还比较陌生。
当前在您的插入函数中没有存储列表“单词”和“描述”的中心枢纽。当您调用该函数时,您实际上并没有为它们分配任何变量。每次调用该函数时,您都会用一个空列表覆盖您添加到这些列表中的任何内容。此外,通过在查找函数中调用函数插入,您并没有调用您想要的值。您 运行 正在执行整个功能,这不是您想要发生的事情。
我将首先更改您的词汇表功能,使其充当程序的中心枢纽。请注意,列表“单词”和“描述”在 while 循环之外,因此它们可以保留信息。我还更改了“if answer == “3””以打破循环而不是 return 什么都不做。最后,在调用 insert 和 lookup 时,我给它们提供了函数内使用的变量。
def glossary():
words = []
descriptions = []
while True:
print("\nMenu for glossary\n Type 1 to insert a new word.\n Type 2 to lookup a word.\n Type 3 to exit.\n")
answer = input("Write your answer here: ")
if answer == "1":
insert(words, descriptions)
elif answer == "2":
lookup(words, descriptions)
elif answer == "3":
break
else:
print("\nTry again!\n")
函数 insert 看起来也有点不同,如前所述,列表“words”和“descriptions”从函数中删除。此外,当函数被调用时,它会被赋予要使用的变量。这个函数没有 return 声明,据我所知这很好。如果实在想要一个可以改成有一个
def insert(words, descriptions):
word = input("Type the word you want to add: ")
words.append(word)
description = input("Descripe the word you want to add: ")
descriptions.append(description)
最后,查找功能。它看起来很不一样。它不再调用其中的另一个函数,它主要充当打印列表的函数。
def lookup(words, descriptions):
print('\n')
print(*words, sep = ", ")
print(*descriptions, sep = ", ")
当然我们会调用函数词汇表 运行 程序。
glossary()
全部代码:
def glossary():
words = []
descriptions = []
while True:
print("\nMenu for glossary\n Type 1 to insert a new word.\n Type 2 to lookup a word.\n Type 3 to exit.\n")
answer = input("Write your answer here: ")
if answer == "1":
insert(words, descriptions)
elif answer == "2":
lookup(words, descriptions)
elif answer == "3":
break
else:
print("\nTry again!\n")
def insert(words, descriptions):
word = input("Type the word you want to add: ")
words.append(word)
description = input("Descripe the word you want to add: ")
descriptions.append(description)
def lookup(words, descriptions):
print('\n')
print(*words, sep = ", ")
print(*descriptions, sep = ", ")
glossary()
这是一个非常奇怪的问题,如果我没有正确理解您的问题,我深表歉意。为了我的理智,我还更改了一些打印输出。我不知道你想用这段代码做什么,但我认为一种有趣的方式可以通过索引访问它们来获取“单词”和“描述”的特定部分的值以进行编辑或打印。