2013-02-21 4 views
0

Если я использую глобальные переменные. Я могу писать так.Как использовать 'def' для получения входного значения

while True: 
    name_str = input('Please give me the file name:') 
    if name_str == 'table.csv': 
     break 
    else: 
     print('Bad file name, please try again.') 

Как определить функцию и получить ввод от этой функции? Получить вход пользователя в начале функции и вызвать главную функцию, чтобы получить вход пользователя.

def get_name(n): 
    x = input('Please give me the file name:') 
    ... 
    ... 

def main(): 
    ... 
    ... 
+0

Почему бы не вернуть 'x' из' get_name'? –

+0

Я могу сделать это return part.I не знаю, как сделать ввод в def get_name() :. Если есть какие-либо другие способы вызова main() получить входные данные из def get_name()? – Vinceeema

ответ

2

Вы хотите иметь это в файле (test.py):

def get_input(): 
    return raw_input('get file: ') 

if __name__ == '__main__': 
    print get_input() 

А потом называют это:

$ питон test.py

Примечание две вещи:

  1. вход() против raw_input() - вход() является not safe
  2. используя idiom 'если имя ...' для script environment вместо основной() функция.
+0

Очень полезно! – Vinceeema

+1

Вход() только не безопасен до python 3.x –

0

Вид зависит от того, что вы пытаетесь выполнить.

Если ваш метод сбор информации от пользователя, вы можете написать так:

def get_name(): 
    return input('Please give me the file name. ') 

Если ваш метод разбора информации от пользователя, он будет принять файл имя в качестве аргумента и быть написано что-то вроде этого:

def check_file_name(fname): 
    if fname == 'table.csv': 
     return True 
    return False