input関数

キーボードからデータ入力

input()関数は、キーボードから文字列データを受け取る関数である。
数字を入力しても、すべて文字列(str型)として認識されるので注意が必要である。

tkinterなどでGUIを準備するまでもないアプリケーションに使用する。

次のサンプルコードでは、入力データを判別して、文字列なら文字列(str型)、整数なら整数(int型)、小数なら小数(float型)で取得するようになっている。

# study of "input function"

def python_input(msg=None, print_flag=False):
    if msg is None:
        msg = "input some word or number.:"
    else:
        pass
    input_string = input(msg)
    if print_flag is False:
        pass
    else:
        print("Confirm input result:", input_string)
        print("Confirm type:", type(input_string))
    return input_string

def is_number(input_string):
    try:
        float(input_string)
    except ValueError:
        return False
    else:
        return True

def change_type(input_value):
    if is_number(input_value) is not True:
        return input_value
    else:
        if "." in input_value:
            return float(input_value)
        else:
            return int(input_value)

def myfunc_input(msg=None, print_flag=False):
    """Receive numbers and strings from the command line.

    Returns:
        any type: str, int or float.
    """
    cnv_result = change_type(python_input(msg, print_flag))
    return cnv_result

def study_python_input(msg=None, print_flag=False):
    input_result = myfunc_input(msg, print_flag)
    print(input_result, type(input_result))

if __name__ == "__main__":
    msg = " Python study: Input some word or number. >"
    study_python_input(msg, print_flag=True)

実行結果

Python study: Input some word or number. >99
Confirm input result: 99
Confirm type: <class 'str'>
99 <class 'int'>

Python study: Input some word or number. >3.14
Confirm input result: 3.14
Confirm type: <class 'str'>
3.14 <class 'float'>

Python study: Input some word or number. >apple
Confirm input result: apple
Confirm type: <class 'str'>
apple <class 'str'>