我正在尝试创建一个猜词的程序,它有一个单词,你输入的是‘高兴’,让我们说'heapy‘,它以H,P,Y作为X的意思,这些值是正确的(基本上是单词),O's,如果它们在单词中,但位置不对的话。
我设法创建了它们是否处于确切位置,并指出了它们之间的空格,但我很难弄清楚如何比较这两个字符串,看看它是否包含相同的字母,例如'a‘,然后将其添加到列表中,以便打印X,_ O,X,X,如果它位于正确的位置,字母根本不在那里,而O在那里,但在错误的位置。
我这部分的代码如下:
target = "Happy"
guess = "Heapy"
# Part 1 of 3
lst = []
name = ""
targetCount = 0
while targetCount < 5:
# print(guess[counter])
if guess[targetCount] == target[targetCount]:
print("X")
lst.append(guess[targetCount])
else:
print(".")
lst.append(".")
targetCount += 1
print("---------------------------------")
for x in lst:
print(x)
print("Next: ---------------------------------")
# Part 2 of 3
targetCount = 0
yCount = 0
List = 0
guess_index = []
# index of the two '.' in word
for List in range(len(lst)):
if lst[List] == ".":
guess_index.append(List)
print(List)我觉得我在这里很傻,但如果你们能帮我理解的话,那就太棒了
发布于 2022-06-20 17:48:50
用一套,看看信里有没有.与…有关的东西
target = "Happy"
guesses = ["Nothi", "Heapy", "Happy"]
lst = []
letters = set(target)
for guess in guesses:
print (guess,": ", *["X" if a==b else # identical
"O" if b in letters else # somewhere in word
"_" for a,b # not in word
in zip(target, guess)], sep="") # for all letter-tuples将打印
Nothi: _____
Heapy: X_OXX
Happy: XXXXX我没有用固定的数字索引,而是将两个单词(相同的长度)拉链在一起,这样您就可以从
"aaaa"
"1234"元组
("a","1"), ("b","2"), ("c","3"), ("d","4")来比较它们。
发布于 2022-06-20 17:53:20
您就快到了,您只需要一个elif条件来检查信中是否存在:
def evaluate(target, guess):
result = list()
for i, c in enumerate(guess):
if c == target[i]:
result.append('X')
elif c in target:
result.append('O')
else:
result.append('_')
return ''.join(result)
print(evaluate('happy', 'heapy'))https://stackoverflow.com/questions/72690929
复制相似问题