Python - 根据用户的输入运行不同的函数



我正在用Python创建一个程序,它将根据用户输入的内容执行两个不同的任务。如果用户将输入要打开的文本文件的名称,则将执行函数#1,但如果用户将输入一个句子(以字符串的形式),则将执行函数#2。

我唯一能想到的是做一个try: except:,一个函数将尝试打开一个文件,如果失败,它将假定用户输入了一个句子。但是,这不是最好的方法,因为用户可以尝试打开不存在的文件,该文件将移动到except并将文件名视为句子。

def main:
    input_x = input("Enter name of the file or type in your sentence")
    try:
        list_y = open(list_x, "r")
        functionOne(list_y)
    except:
        functionTwo(input_x)

因此,如果用户输入类似 myTextFile.txt 的内容,则应执行 functionOne,但如果输入是"这是一个句子",则应执行 functionTwo。

最好的方法是什么?

使用 os.path.isfile

if os.path.isfile(input_x):
    functionOne(open(input_x))
else:
    functionTwo(input_x)

此外,您可能希望使用raw_input而不是input

函数指针使用起来非常简单。试试这个:

def function_one(list):
    pass
def function_one(list):
    pass
function_dict = {'myTextFile.txt': function_one, 
    'This is a sentence': function_two }
user_input = input("Enter name of the file or type in your sentence")
function_dict[user_input]()

相关内容

  • 没有找到相关文章

最新更新