Создать модуль, затем импортировать указанный модуль - PullRequest
0 голосов
/ 07 ноября 2018

Я пытаюсь создать модуль и импортировать его в другую программу. Моя задача для модуля:

  • принять строку
  • есть строка документации, объясняющая, что она делает
  • возвращает количество символов в строковом параметре

Мне удалось создать модуль, и я думаю он должен вернуть правильный счет, но у меня либо возникают проблемы с его внедрением в исходный код, либо код в файле нового модуля неверен а также.

Вот код из исходного файла:

# Program for Determining Palindromes

import stack
import letterCount
from letterCount import countLetters

# welcome
print ('This program can determine if a given string is a palindrome\n')
print ('(Enter return to exit)')

# init
char_stack = stack.getStack()
empty_string = ''

# get string from user
chars = input('Enter string to check: ')

while chars != empty_string:
    if len(chars) == 1:
        print('A one letter word is by definition a palindrome\n')
    else:
        # init
        is_palindrome = True

        # determine half of length. excluding any middle character
        compare_length = len(chars) // 2

        # push second half of input string on stack
        for k in range(compare_length, len(chars)):
            stack.push(char_stack, chars[k])

        # pop chars and compare to first half of string
        k = 0
        while k < compare_length and is_palindrome:
            ch = stack.pop(char_stack)
            if chars[k].lower() != ch.lower():
                is_palindrome = False

            k = k + 1

        # display results
        if is_palindrome:
            print (chars, 'is a palindrome\n')
            print (
        else:
            print (chars, 'is NOT a palindrome\n')

    # get string from user
    chars = input('Enter string to check: ')

и вот код для модуля, который я создал:

def countLetters(chars):
    """this function keeps track of the longest palindrome"""
    palinlen = len(chars)

    print("This Palindrome is ",palinlen," characters long!")

Что именно мне не хватает? Любая помощь будет очень ценится!

1 Ответ

0 голосов
/ 07 ноября 2018

Вы не можете вызвать функцию, которую вы импортировали.

Комментарии к вашему вопросу уже объясняют это, но вдобавок немного подробнее:

Скажем, у нас есть 2 файла, один - мой "модуль", другой - мой проект (кстати, это бесполезный пример)

#Module file, moduleFoo.py
def foo(bar):
    print(bar)

.

#Project file
import moduleFoo
moduleFoo.foo("Some wild stuff")

В последней строке нашего файла проекта мы вызываем или , вызывая нашу функцию внутри файла модуля

Это также можно сделать, выполнив:

from moduleFoo import foo
foo("Some wild stuff")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...