首页 > 解决方案 > While 和 If 在一行中循环

问题描述

我创建了一个客户端服务器应用程序,当我需要更新客户端代码时,我正在使用字符串匹配推送更新,并且只要该字符串与无限运行的客户端代码进程匹配。更新只不过是一个包含 python 代码的字符串,让我们这样说:

while True:
    if data == "exit":
        connection_status = 'Exit Request Received, Exiting'
        MessageBox(None, connection_status, "Connection Status", 0x40000 | MB_OK | ICON_STOP)               
        break

在我的客户端主代码中,我有这样的东西:

if 'update' in data:
    new_source = data.split('###_CODEBLOCK_###')
    exec(new_source[1]) 

从服务器,我发送这样的东西:

Enter you Message  : update code is here ###_CODEBLOCK_###while True : if data == "mad": connection_status = "Exit Request Received, Exiting" ; MessageBox(None, connection_status, "Connection Status", 0x40000 | MB_OK | ICON_STOP) ; break

问题 :

  1. CLI 不喜欢换行,因此我必须使用单行 python 代码来实现这一点

  2. 因为,它是单行代码,而 while 和 if 循环是复合语句,我不能按照我输入的方式使用它们,所以我需要知道如何在一行代码中实现它

  3. 这真的是发送更新的好方法吗?这对我来说是一个额外的问题,如果你不回答,那很好

标签: pythonpython-2.7

解决方案


您可以在 Python 中使用exec()函数并将该多行代码转换为单行字符串以用作exec()参数。确保您使用\n来指示换行符并仍然保持适当的间距来指示缩进。


推荐阅读