如果用户说“否”,则“返回” if语句

时间:2019-10-13 12:05:24

标签: python python-3.x

我对python还是很陌生,所以我决定创建一个程序,询问用户如果键入它,他们想打开哪个应用程序。

如果用户在提示代码中键入的不是应用程序的其他内容,我想问一下“重置”或“返回”到原始状态的问题,因此我不必继续打开新终端标签来实现这一目标,但我不知道如何!

这里有一些代码只是为了获得一个想法:

import os
import subprocess

print ('What do you want to open?')

prompt = raw_input('> ')

if prompt == 'safari':
    print('Opening Safari...')
    subprocess.call(
    ["/usr/bin/open", "-W", "-n", "-a", "/Applications/Safari.app"]
    )
else:
    print ('No Applications have been selected!')
    #Return to the original question#

1 个答案:

答案 0 :(得分:1)

将永远循环的while True怎么样?

import os
import subprocess

while True:
    print ('What do you want to open?')

    prompt = raw_input('> ')

    if prompt == 'safari':
        print('Opening Safari...')
        subprocess.call(["/usr/bin/open", "-W", "-n", "-a", "/Applications/Safari.app"])
    elif prompt == 'quit':
        break # will break out of the while loop and exit the program
    else:
        print ('No Applications have been selected!')
        #Return to the original question#

@FedericoS建议,在需要时使用break语句跳出循环。

请注意,如果发生异常,您的程序仍然可能崩溃。为确保不会,请查看Python中的异常处理。

还要注意,由于subprocess.call的阻塞性,该脚本仅在启动的进程退出时才循环返回。如果您希望立即返回,请考虑使用subprocess.Popen