[英]Iterate through a string to find matching characters and produce different emoji
如何從表情符號化的emojified
中調用contains_char
?
我希望能夠遍歷guess_word
以查看secret_word
中是否有任何匹配的字母。 如果有匹配的字母,output 應該有綠色的表情符號框。 如果沒有匹配的字母,output 應該有白色的表情符號框。 如果存在字母但不在正確的 position 中,則 output 應該有黃色框。
def contains_char(any_length: str, single_character: str) -> bool:
"""Loop iterates through each character in string to find matching character."""
assert len(single_character) == 1
if single_character in any_length:
return True
else:
return False
def emojified(guess_word: str, secret_word: str) -> str:
"""A way to match letters to its corresponding emoji color output. """
assert len(guess_word) == len(secret_word)
WHITE_BOX: str = "\U00002B1C"
GREEN_BOX: str = "\U0001F7E9"
YELLOW_BOX: str = "\U0001F7E8"
emoji_color: str = ""
i: int = 0
contains_char
while i < len(guess_word):
if guess_word[0] == secret_word[0]:
emoji_color += GREEN_BOX
else:
emoji_color += WHITE_BOX
print(emoji_color)
我希望 output 如下圖所示。 謝謝!
你把這個復雜化了。
def emojified(guess_word: str, secret_word: str) -> str:
assert len(guess_word) == len(secret_word)
WHITE_BOX: str = "\u2B1C"
GREEN_BOX: str = "\U0001F7E9"
YELLOW_BOX: str = "\U0001F7E8"
output: list = []
this_box: str = ''
for i, char in enumerate(guess_word):
if i < len(secret_word) and secret_word[i] == char:
this_box = GREEN_BOX
elif char in secret_word:
this_box = YELLOW_BOX
else:
this_box = WHITE_BOX
output.append(this_box)
return ''.join(output)
assert
可能不是處理這個問題的最佳方式; Python 可以在某些情況下禁用斷言語句。 如果檢查應該是您的生產邏輯的一部分,則可能會重構它以引發異常。
如果您確保兩個字符串的長度相同,則條件i < len(secret_word)
是多余的,但我認為保留它更安全,以防您想放寬該條件。
追加到字符串的成本相對較高,因此一個好的做法是將事物收集到一個列表中,並且只在最后將列表加入到一個字符串中。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.