2015-08-04 2 views
-2

Привет, я очень люблю программирование, и я работаю над своей первой программой. Я слежу за книгой, и я решил остановиться и проверить функцию. Функция находится в файле с именем myPythonFunctions.py. Затем я создал новый файл с именем untitled.py и поместил его в ту же папку, что и myPythonFunctions.py.Ошибка импорта: нет модуля с именем

В untitled.py У меня есть следующий код:

import myPythonFunctions as m 
m.generateQuestion() 

Очень простой, но когда я пытаюсь запустить его я получаю Import Error: no module named myPythonFunctions.

Я не понимаю, что в папке явно есть файл с именем myPythonFunctions. Что происходит?

В случае, если вам это нужно, вот код для m.generateQuestion()

def generateQuestion(): 

    operandList = [0,0,0,0,0,] 
    operatorList = ['', '', '', '', ''] 
    operatorDict = [1:'+', 2:'-', 3:'*', 4:'**'] 

    for index in range(0,5): 
     operandList[index] = randint(1,9) 

    for index in range(0,4): 
     if index > 0 and operatorList[index-1] !='**': 

      operator = operatorDict[randint(1,4)] 
     else: 

      operator = operatorDict[randint(1,3)] 

    operatorList[index] = operator 
    questionString = str(operandList[0]) 

    for index in range(1,5): 
     questionString = questionString + OperatorList[index-1] + str[operandList[index] 

    result = eval(questionString) 
    questionString.replace("**","^") 
    print('\n' + questionString) 
    userAnswer=input('Answer: ') 
    while true: 
     try: 
      if int(userAnswer) == result: 
       print('Correct!') 
       return 1 
      else: 
       print('Sorry, the correct answer is', result) 
       return 0 
     except Exception as e: 
       print("That wasn't a number") 
       userAnswer = input('Answer: ') 

Edit: Я теперь получаю эту ошибку

Traceback (most recent call last): 
    File "/Users/Brad/Desktop/Python/Untitled.py", line 1, in <module> 
    import myPythonFunctions as m 
    File "/Users/Brad/Desktop/Python/myPythonFunctions.py", line 33 
    operatorDict = [1:'+', 2:'-', 3:'*', 4:'**'] 
        ^
SyntaxError: invalid syntax 
+0

Пожалуйста, проверьте свой отступ в своем коде здесь. 'def generateQuestion():' после этого должны иметь отступы. Является ли это ошибкой в ​​том, как вы написали этот вопрос, или ваш отступ действительно похож на этот код? – skrrgwasme

+1

Вы используете 'untitled.py' (я бы предложил более конкретное имя) из текущего рабочего каталога? – TigerhawkT3

+0

def generateQuestion(): с отступом в реальном коде. Он просто скопировал странно. Я не планировал фактически использовать untitled.py, я просто хотел проверить свою функцию. – Dallin

ответ

-2

--- EDIT 2

Ваша реализация словаря неверна, вы действительно скопировали этот код откуда-то?

operatorDict = {1:'+', 2:'-', 3:'*', 4:'**'} 

Ваш код был mispelled

---- EDIT

Ваш код на myPythonFunctions действительно плохо.

Python нуждается правильно identation к работам, пожалуйста, проверьте этот шаг


Я предлагаю вам сделать чек в вашей структуре:

Я сделал это прямо сейчас

/somefolder 
--this.py 
--functions.py 
/

Содержание --this.py

import functions as f 

print f.hello() 

--functions.py

def hello(): 
    return 'It worked' 

Попробуйте эту структуру в своей среде: D

А затем запустить:

python this.py 
+0

OP отредактировал свой вопрос, говоря, что теперь импорт работает. Я не знаю, что они изменили. – TigerhawkT3

+0

Просто увидел это и отредактировал мой ответ, спасибо: D –

+0

OP сказал, что у них есть оба файла в одной папке, и это все, что вы им говорите. Это не отвечает на вопрос. OP также сказал, что отступы в их сообщении не соответствуют отступу в их фактическом коде. – TigerhawkT3

0

Ошибка syntaxis вы получаете, потому что вы пытаются определить словарь как список, поэтому интерпретатор поднимает ошибку, потому что он не знает, что с этим делать.

Чтобы определить словарь, вам необходимо использовать {} вместо []