Der Versuch, ein Skript von "Lerne Python auf die harte Tour" zu starten und diesen Fehler zu bekommen, probierte mehrere Dinge aus, aber ich stecke irgendwie fest. Gesehen ähnliche Fehler bei Menschen mit argv und nicht genug Argumente, wenn das Skript ausgeführt wirdPython "brauchen mehr als 1 Wert zum Entpacken"
Fehlerpunkte auf Linie 70:
question, answer = convert(snippet, phrase)
vollständige Code:
import random
from urllib import urlopen
import sys
WORD_URL = "http://learncodethehardway.org/words.txt"
WORDS = []
PHRASES = {
"class %%%(%%%):":
"Make a class named %%% that is-a %%%",
"class %%%(object):\n\tdef __init__(self, ***)" :
"class %%% has-a __init__ that takes self and *** parameters.",
"class %%%(object):\n\tdef ***(self, @@@)" :
"class %%% has-a function named *** that takes self and @@@ parameters.",
"*** = %%%()":
"Set *** to an instance of class %%%",
"***.***(@@@)":
"From *** get the *** function, nd call it with parameters self, @@@",
"***.*** = '***'":
"From *** get the *** attribute and set it to '***'."
}
#do they want to drill phrases first
PHRASE_FIRST = False
if len(sys.argv) == 2 and sys.argv[1] == "English":
PHRASE_FIRST = True
#load up the words from the website
for word in urlopen(WORD_URL).readlines():
WORDS.append(word.strip())
def convert(snippet, phrase):
class_names = [w.capitalize() for w in
random.sample(WORDS, snippet.count("%%%"))]
other_names = random.sample(WORDS, snippet.count("***"))
results = []
param_names = []
for i in range(0, snippet.count("@@@")):
param_count = random.randint(1, 3)
param_names.append(", ".join(random.sample(WORDS, param_count)))
for sentence in snippet, phrase:
result = sentence[:]
#fake class names
for word in class_names:
result = result.replace("%%%", word, 1)
#fake other names
for word in other_names:
result = result.replace("***", word, 1)
for word in param_names:
result = result.replace("@@@", word, 1)
results.append(result)
return results
#keep going until they hit CTRL-D
try:
while True:
snippets = PHRASES.keys()
random.shuffle(snippets)
for snippet in snippets:
phrase = PHRASES[snippet]
question, answer = convert(snippet, phrase)
if PHRASE_FIRST:
question, answer = answer, question
print question
raw_input("> ")
print "ANSWER: %s\n\n" % answer
except EOFError:
print "\nBye"
Mögliche Duplikat [Valueerror: Notwendigkeit, mehr als 1 Wert auspacken] (https://stackoverflow.com/questions/19749077/valueerror-need-more-than-1-value-to-entpacken) –