1

ユーザーが入力する内容に応じて2つの異なるタスクを実行するプログラムを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 を実行する必要があります。

これを行う最善の方法は何ですか?

4

2 に答える 2

-1

関数ポインタは非常に簡単に使用できます。これを試して:

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]()
于 2013-09-15T23:44:15.823 に答える