Как уже отмечали люди, вам нужно использовать расширение py
для исходных файлов Python. Ваши файлы станут «functiondoc.py» и «program.py». Это заставит ваши import functiondoc
работать правильно (если они находятся в одном каталоге)
Самая большая проблема с функцией autoparts
заключается в том, что вы никогда ничего не возвращали. Другая большая проблема в том, что вы использовали неправильную переменную ..
for line in list_of_parts:
k, v = line.split()
list1.append(k)
list2.append(v)
# k and v are now the last line split up, *not* the list you've been constructing.
# The following incorrect line:
dictionary = dict(zip(k, v))
# ...should be:
dictionary = dict(zip(list1, list2))
# ..although you shouldn't use zip for this:
Вы почти никогда не должны использовать zip
, бывают случаи, когда это может быть полезно, но для создания простого диктанта это неправильно .. Вместо того чтобы делать ..
for line in list_of_parts:
...
dictionary = dict(zip(k, v))
.. просто создайте пустой dict перед циклом, затем выполните mydict [key_variable] = value_variable
Например, как я мог написать функцию ..
def autoparts():
# open() returns a file object, not the contents of the file,
# you need to use .read() or .readlines() to get the actual text
input_file = open('list_of_parts.txt', 'r')
all_lines = input_file.read_lines() # reads files as a list (one index per line)
mydict = {} # initialise a empty dictionary
for line in list_of_parts:
k, v = line.split()
mydict[k] = v
return mydict # you have to explicitly return stuff, or it returns None