Python 2.7 我已经找到了我所需要的一切,并且有了一个;主要是;工作游戏
我猜def检查有问题。这是我老师特别指定的格式。你们太棒了。谢谢你的帮助!!!!抱歉的格式,这是我第一次在这个网站Python 2.7 我已经找到了我所需要的一切,并且有了一个;主要是;工作游戏,python-2.7,Python 2.7,我猜def检查有问题。这是我老师特别指定的格式。你们太棒了。谢谢你的帮助!!!!抱歉的格式,这是我第一次在这个网站 # # Global variables wrong_guesses = [] target_phrase = "" current_phrase = "" def clear_display(): for i in range(20): print "\n" def string_with_dashes(str): global
# # Global variables
wrong_guesses = []
target_phrase = ""
current_phrase = ""
def clear_display():
for i in range(20):
print "\n"
def string_with_dashes(str):
global target_phrase
new_phrase = ""
for i in str:
if i.isalpha():
new_phrase += "-"
else:
new_phrase += i
return new_phrase
def check_guess(letter):
global current_phrase
replacement_list = [""]
for i in range(len(target_phrase)):
if target_phrase[i] == letter:
replacement_list[i] = target_phrase[i]
current_phrase = replacement_list
return current_phrase
else:
wrong_guesses.append(letter)
return False
def process_input():
user_letter = raw_input("Guess a letter: ").upper()
if user_letter in wrong_guesses:
print "You already guessed that letter"
user_letter = raw_input("Guess again : ")
else:
return check_guess(user_letter)
def one_turn():
global wrong_guesses
print "=================================================="
print current_phrase
print "Wrong guesses:", ' '.join(wrong_guesses)
print "Guesses remaining:", (8 - len(wrong_guesses))
display_robot(8 - len(wrong_guesses))
print "String to guess:", current_phrase
print "=================================================="
process_input()
print "\n\n"
def setup_phrase():
global target_phrase, current_phrase
target_phrase = raw_input("Dear friend, enter a phrase for the user to guess: ").upper()
current_phrase = string_with_dashes(target_phrase)
setup_phrase()
clear_display()
while True:
one_turn()
if len(wrong_guesses) > 7:
print "GAME OVER! You Lose"
breack
if current_phrase == target_phrase:
print "You WIN!!"
break
(为什么stackoverflow不让我来修复你的代码?我不确定你到底想做什么,但听起来你想创建一个字符串,让猜出来的字母替换猜出来的空格?试着这样做:
hidden_phrase = "abracadabra"
current_list = ["."]*len(hidden_phrase)
def check_guess(letter):
for i in range(len(hidden_phrase)):
if hidden_phrase[i] == letter:
current_list [i] = hidden_phrase[i]
print("before", "".join(current_list ))
check_guess("a")
print("guess1", "".join(current_list))
check_guess("z")
print("guess2", "".join(current_list))
check_guess("b")
print("guess3", "".join(current_list))
输出:
before ...........
guess1 a..a.a.a..a
guess2 a..a.a.a..a
guess3 ab.a.a.ab.a
在Python中,字符串是不可变的,并且不能更新,因此对我来说,将“替换”字(带空格,我用
表示)保留为一个列表,并将其重新连接在一起显示似乎更容易
这两个全局变量不需要显式指定为global
,因为该变量不在函数中赋值,只可访问
如果您希望有一个字符串当前\u短语
,并对其进行更新,当然也有可能:
hidden_phrase = "abracadabra"
current_phrase = "."*len(hidden_phrase )
def check_guess(letter):
global current_phrase
i = -1
while True:
i = hidden_phrase.find(letter, i+1)
if i<0:
break
current_phrase = current_phrase[0:i]+letter + current_phrase[i+1:]
print("before", current_phrase)
check_guess("a")
print("guess1", current_phrase)
check_guess("z")
print("guess2", current_phrase)
check_guess("b")
print("guess3", current_phrase)
hidden_phrase=“abracadabra”
当前_短语=“.”*len(隐藏_短语)
def检查猜测(字母):
全球时态
i=-1
尽管如此:
i=隐藏的短语。查找(字母,i+1)
如果我我不确定你到底想做什么,但听起来你想创建一个字符串,让猜出来的字母代替猜出来的空格?试着这样做:
hidden_phrase = "abracadabra"
current_list = ["."]*len(hidden_phrase)
def check_guess(letter):
for i in range(len(hidden_phrase)):
if hidden_phrase[i] == letter:
current_list [i] = hidden_phrase[i]
print("before", "".join(current_list ))
check_guess("a")
print("guess1", "".join(current_list))
check_guess("z")
print("guess2", "".join(current_list))
check_guess("b")
print("guess3", "".join(current_list))
输出:
before ...........
guess1 a..a.a.a..a
guess2 a..a.a.a..a
guess3 ab.a.a.ab.a
在Python中,字符串是不可变的,并且不能更新,因此对我来说,将“替换”字(带空格,我用
表示)保留为一个列表,并将其重新连接在一起显示似乎更容易
这两个全局变量不需要显式指定为global
,因为该变量不在函数中赋值,只可访问
如果您希望有一个字符串当前\u短语
,并对其进行更新,当然也有可能:
hidden_phrase = "abracadabra"
current_phrase = "."*len(hidden_phrase )
def check_guess(letter):
global current_phrase
i = -1
while True:
i = hidden_phrase.find(letter, i+1)
if i<0:
break
current_phrase = current_phrase[0:i]+letter + current_phrase[i+1:]
print("before", current_phrase)
check_guess("a")
print("guess1", current_phrase)
check_guess("z")
print("guess2", current_phrase)
check_guess("b")
print("guess3", current_phrase)
hidden_phrase=“abracadabra”
当前_短语=“.”*len(隐藏_短语)
def检查猜测(字母):
全球时态
i=-1
尽管如此:
i=隐藏的短语。查找(字母,i+1)
如果我我以前的回答是对你问题的第一个更一般的版本。您的check_guess()
有几处问题。这里有一个固定版本:
def check_guess(letter):
global current_phrase
replacement_list = list(current_phrase)
found=False
for i in range(len(target_phrase)):
if target_phrase[i] == letter:
replacement_list[i] = target_phrase[i]
found = True
if found:
current_phrase = "".join(replacement_list)
else:
wrong_guesses.append(letter)
显示版本问题的注释:
def check_guess(letter):
global current_phrase
replacement_list = [""] # list has only 1 element, can't assign above index zero
for i in range(len(target_phrase)):
if target_phrase[i] == letter:
replacement_list[i] = target_phrase[i]
current_phrase = replacement_list # assigning a list to what was previously a string
return current_phrase # returns before checking 2nd character
else:
wrong_guesses.append(letter) # only the first character has been checked
return False # returns False or current_phrase, inconsistent
同样在接近尾声时,您编写了break
而不是break
,很遗憾Python没有默认检查这些东西,而是等待您点击这一行。我之前的回答是关于您问题的第一个更一般的版本。您的check_guess()
有几处问题。这里有一个固定版本:
def check_guess(letter):
global current_phrase
replacement_list = list(current_phrase)
found=False
for i in range(len(target_phrase)):
if target_phrase[i] == letter:
replacement_list[i] = target_phrase[i]
found = True
if found:
current_phrase = "".join(replacement_list)
else:
wrong_guesses.append(letter)
显示版本问题的注释:
def check_guess(letter):
global current_phrase
replacement_list = [""] # list has only 1 element, can't assign above index zero
for i in range(len(target_phrase)):
if target_phrase[i] == letter:
replacement_list[i] = target_phrase[i]
current_phrase = replacement_list # assigning a list to what was previously a string
return current_phrase # returns before checking 2nd character
else:
wrong_guesses.append(letter) # only the first character has been checked
return False # returns False or current_phrase, inconsistent
同样在接近尾声时,您编写了break
而不是break
,很遗憾Python没有默认检查这些内容,而是等待您点击这一行。我如何告诉它确切地在哪里用len()替换字母?目标短语中的i
仅返回True
或False
来告诉您目标短语是否包含i
。您需要使用其他工具,例如find()
或迭代字符串以找到替换字母的位置。如何告诉它在何处使用len()替换字母?目标短语中的i
仅返回True
或False
来告诉您目标短语是否包含i
。您需要使用其他工具,例如find()
或迭代字符串以找到替换字母的位置。感谢您的回复。我还是有麻烦。这是我的全部代码。老师给了我们这些特定的def函数。如何以正确的格式发布代码?它只是把它放在那里的段落??抱歉,谢谢你的帮助。你不能在评论中发布代码块。改为编辑问题。谢谢您的回复。我还是有麻烦。这是我的全部代码。老师给了我们这些特定的def函数。如何以正确的格式发布代码?它只是把它放在那里的段落??抱歉,谢谢你的帮助。你不能在评论中发布代码块。改为编辑问题。非常感谢!!!!我已经为此工作了两天,快发疯了!!作为一名机械师,我从未想过编码会如此难学。你让我的日子过得很开心,谢谢你的帮助和耐心!!!没问题,是的,一开始很难-你必须准确地理解每一行代码在做什么,但是通过练习你会达到目的的。非常感谢!!!!我已经为此工作了两天,快发疯了!!作为一名机械师,我从未想过编码会如此难学。你让我的日子过得很开心,谢谢你的帮助和耐心!!!没问题,是的,一开始很难——你必须准确地理解每一行代码都在做什么,但是通过练习你会达到目的的。