如何创建一个空字符串并更新它[重复]

Posted

技术标签:

【中文标题】如何创建一个空字符串并更新它[重复]【英文标题】:How to create an empty string and update it [duplicate] 【发布时间】:2020-06-11 20:41:57 【问题描述】:

我正在用pygame做一个游戏,我想让玩家输入他的名字,这样在玩的时候它就会出现在屏幕上。我尝试了一个列表:

def input_player_name():
    player_name_screen = True
    name_list = []
    win.blit(player_name_bg, (0, 0))
    while player_name_screen:
        for event in pygame.event.get():
            if event.type == pygame.KEYDOWN:
                if event.key == pygame.K_a:
                    name_list.append("a")
                elif event.key == pygame.K_b:
                    name_list.append("b")
                elif event.key == pygame.K_c:
                    name_list.append("c")
                elif event.key == pygame.K_d:
                    name_list.append("d")
                elif event.key == pygame.K_e:
                    name_list.append("e")
                elif event.key == pygame.K_RETURN:
                    print (name_list)
                    player_name_screen = False

        pygame.display.update()
        clock.tick(fps)

这行得通。但是我想用一个字符串来做,所以它会创建一个空字符串,玩家在键盘上输入他的名字时会更新它。有没有办法做到这一点?或者,也许您可​​以将我重定向到一个已经存在的页面,其中有人问了这个问题(我还找不到)?谢谢你的回答=D

【问题讨论】:

name_string += "d" 如果您发现自己创建了大量案例,您可能正在做一些过于复杂的事情。您根本不需要 1) 检查按下的字母是否为 'a' 和 2) 将 'a' 添加到名称中,然后对任何可能的按键再次执行此操作。只需将字母捕获为变量并添加该变量,无论它是什么。 【参考方案1】:

使用event.unicode:

例如:

player_name_screen = True
name = ""

while player_name_screen:
    for event in pygame.event.get():
        if event.type == pygame.KEYDOWN:
            if event.key == pygame.K_RETURN:
                print (name)
                player_name_screen = False
            else:
                name += event.unicode

如果您想将输入限制为字母,那么您可以执行以下操作:

if event.type == pygame.KEYDOWN:
    if event.key == pygame.K_RETURN:
        print (name)
        player_name_screen = False
    elif 'a' <= event.unicode <= 'z' or 'A' <= event.unicode <= 'Z':
        name += event.unicode

【讨论】:

非常感谢@Rabbid76,效果很好!

以上是关于如何创建一个空字符串并更新它[重复]的主要内容,如果未能解决你的问题,请参考以下文章

将识别列表中的空字符串并在那里打印标记/符号的函数(Python Tic-Tac-Toe)

如何在 JAVA 中输入空字符串 [重复]

javascript检查空字符串或空字符串[重复]

Mongoose:唯一字段,如果它不为 null 或空字符串 [重复]

如何使用scala在Apache spark中用空字符串(“”)替换空值[重复]

LeetCode 131. 分割回文串(Palindrome Partitioning)