更改if s中的等效值

2024-10-02 06:21:55 发布

您现在位置:Python中文网/ 问答频道 /正文

这是我的密码:

com=input('> ')
while True:
    if com=='say':
        print('1')
        com=input('> ')
    if com=='change':
        global change_com
        change_com=input('changeing_say_to: ')
        change_com='say'
        com=input('> ')

我想得到的结果是,在change_com=input('changeing_say_to: ')之后,change_com变成了say之外的东西,比如NAME,然后当我给NAME而不是saycom的值时,它会进入if com=='say'状态。我该怎么做

目标如下:

        > say
        1
        > change
        changeing_say_to: NAME
        > NAME
        1

Tags: tonamecomtrue密码目标inputif
2条回答

您可以比较当前值change_com而不是硬编码的say-并将嵌套的input("> ")-调用移到while循环的开头。还提供了一种退出循环的方法(在Ctrl-C旁边):

change_com = "say"

while True:
    com = input('> ')
    if com == change_com:
        print('1')
    elif com == 'change':
        change_com = input('changing {} to: '.format(change_com))
    elif com == "break":
        break

您可以使用一个字符串格式参数来调整您的消息,以便它匹配当前位于change_com中的任何内容

str.format(..)

输出:

> say
1
> say
1
> change
changing say to: tut
> tut
1
> tut
1
> change
changing tut to: lol
> lol
1
> break

这里有一个解决方案:

value='say'
while True:
    com = input('> ')
    if com == value:
        print('1')
    elif com == 'change':
        value=input('changeing_say_to: ')

相关问题 更多 >

    热门问题