2016-08-26 5 views
3

функция предполагается открыть файл CSV, который имеет данные в этом форматеМоя функция не возвращает значение, не может понять, почему

«опрос компания, диапазон дат, сколько опрошенных, окраина ошибка, cruz, kasich, rubio, trump «

Когда я запустил эту функцию, read_data_file, выхода нет, чего я не понимаю, так как возвращаю poll_data. Я не верю, что с остальной частью кода возникает проблема, как если бы я заменил «данные опроса» на «print (poll_data)», то есть желаемый результат.

Я нахожусь в этом noob и не имею полного понимания возврата.

def read_data_file(filename): 
    file = open(filename, 'r') 
    poll_data = [] 
    for data in file: 
     data = data.strip('\n') 
     data = data.split(',') 
     poll_data.append(data) 
    return poll_data 


read_data_file('florida-gop.csv') 
+2

«Я не верю, что есть проблема с остальной частью кода, как если бы я заменил данные« return poll »на« print (poll_data) », то есть желаемый результат». - если вы собираетесь это сделать, вам придется сделать эту окончательную строку 'print (read_data_file ('florida-gop.csv ') ' – n1c9

+0

Что сказал @ n1c9. Лучший способ проверить, есть ли какой-либо * вывод для 'print (function (args))' – BHustus

+0

Итак, если мне нужно использовать результат функции, но я также хочу, чтобы функция фактически отображала вывод В результате я бы включил «print (read_data_file ('florida-gop.csv')« после «return poll_data»? или пользователь должен будет использовать функцию печати для отображения вывода? –

ответ

2

вы изменили эту последнюю строку в функции от print к return. Таким образом, при вызове функции, как, например:

read_data_file('florida-gop.csv')

это делает возвращения этого данные. Он сидит прямо здесь! Но тогда ваш скрипт заканчивается, ничего не делая с этими данными. поэтому, вместо этого, сделать что-то вроде этого:

data = read_data_file('florida-gop.csv') 
print(data) 

короткого добавления к нему - политические данными является отличным способом, чтобы узнать, манипулирование данных с Python и, если так склонены, сам Python. Я бы рекомендовал книги O'Reilly по данным & Python - но это выходит за рамки этого вопроса.

+1

Вы избили меня на 49 секунд. =) – heather

+0

:) ваш был более объяснительным, хотя! – n1c9

1

У вас есть два варианта здесь:

  1. Замена return poll_data с print poll_data.
  2. Вместо read_data_file('florida-gop.csv') вы можете сделать print read_data_file('florida-gop.csv').

Зачем вам это нужно?

Print против Return

print фактически показывает вам результат, в то время как return только дает результат на компьютере, если это имеет смысл. Компьютер знает об этом, но он не печатает его, поэтому второе решение работает - компьютер имеет нужные вам данные, и он может распечатать его, если вы его тоже запустите. Однако в вашем случае первое решение, вероятно, проще.

Надеюсь, это поможет!

0

В продолжение выше (или не так выше больше XD) ответ ...

полный код будет теперь,

def read_data_file(filename): 
    file = open(filename, 'r') 
    poll_data = [] 
    for data in file: 
     data = data.strip('\n') 
     data = data.split(',') 
     poll_data.append(data) 
    return poll_data 


print(read_data_file('florida-gop.csv')) # Before you forgot to print it. 

или так же, как выше ответ,

def read_data_file(filename): 
    file = open(filename, 'r') 
    poll_data = [] 
    for data in file: 
     data = data.strip('\n') 
     data = data.split(',') 
     poll_data.append(data) 
    return poll_data 


data = read_data_file('florida-gop.csv') 
print(data) 
Смежные вопросы