2017-01-18 3 views
-2

Ich habe ein voll funktionsfähiges Programm, das ich ausführen möchte. Sie führt auf dem Laptop meines Freundes, aber nicht von mir, (ich habe es meinem Dokumente-Ordner gespeichert) das folgende ist das Programm:Funktion wird nicht definiert, obwohl ive es gespeichert

def DigitCount(n): 
    #how many decimal digits in integer 'n' 
    if n<0: 
     n=-n 
    digitCount=1 
    powerOfTen=10 
    while powerOfTen<=n: 
     digitCount+=1 
     powerOfTen*=10 
    return digitCount 

Aber ich halte die folgende Fehlermeldung erhalten:

>>> DigitCount(100) 
Traceback (most recent call last): 
    File "<pyshell#9>", line 1, in <module> 
    DigitCount(100) 
NameError: name 'DigitCount' is not defined 
+0

Können Sie uns das Skript zeigen, das es anruft? – MooingRawr

+0

Sie laufen von der Konsole aus. Sie müssen zuerst die Datei mit Ihrer Funktion importieren! –

+1

Wenn Sie das Python-Terminal starten, findet es nicht automatisch alle Python-Dateien auf Ihrem Computer (Was ist, wenn Sie zwei Funktionen mit dem gleichen Namen in verschiedenen Dateien geschrieben haben?) Stattdessen müssen Sie den Import durch 'import'-Anweisungen feststellen sehen. Wenn Ihr Code unter dem Dateinamen 'digitcount.py' gespeichert wird, verwenden Sie die Anweisung' import digitcount', um Ihren Code zu importieren. Sie würden dann darauf zugreifen wie 'digitcount.DigitCount (100)' –

Antwort

2

Warte, sagst du Folgendes von der Kommandozeile aus?

$ python DigitCount.py 
$ python 
>>> DigitCount(100) 

Das wird nicht funktionieren. Sie müssen dies tun:

$ python 
>>> import DigitCount 
>>> DigitCount.DigitCount(100) 
+0

importieren. Ja, das hat für mich funktioniert, aber wir Arent sollte nicht die Funktion in der Klasse importieren müssen, ich löschte meine replicate digitcount und jetzt nur eine, aber Python erkennt immer noch nicht die Funktion? Ich bekomme immer noch den Fehler, dass es nicht definiert ist? –

+0

@AidanCronin - Ich weiß nicht, was "nicht angenommen" bedeutet hier. Funktionen sind lokal für die Datei, in der sie definiert sind, sofern sie nicht explizit in eine andere importiert werden. – Malvolio

Verwandte Themen