2017-10-29 4 views
-2

Hey, ich bin wirklich neu in Python und Programmierung im Allgemeinen. Ich arbeite an einem Projekt für die Schule, bei dem ich einen NPC dazu bringen muss, eine zufällige Codezeile auszusprechen, die ich ihm geben soll. Mein Professor hat uns einige Codezeilen gegeben, mit denen wir arbeiten können, und wir müssen selbst ein paar Zeilen ausfüllen. Jedoch habe ich eine harte Zeit, nur das Programm zu bekommen, um irgendeinen Text überhaupt auf windowspowershell anzuzeigen. Ich habe mir viele Tutorials auf dieser Website angeschaut und ihnen zufolge mache ich alles richtig. Kann mir bitte jemand sagen, was ich falsch mache und warum es falsch ist?Benötigen Sie Hilfe beim Aufrufen von Methoden

from random import randint 
class NPC (object): 
    def __init__(self,name, phrases): 
     self.__name = name 
     self.__phrases = #Your code here 

    def getDescription(self): 
     return self.__description 

    def add_phrase(self, phrase): 
     #your one line of code here to add a phrase to the phrases an NPC can say 

    def getPhrases(self): 
     return self.__phrases 

    def speak(self): 
     #Your code here, no more than 2 lines to select a phrase at random and 
     #return it 

    def __str__(self): 
     return "Good day, I am " + self.__name 

Ist, was wir als Vorlage erhalten.

Was ich bisher ist

from random import randint 
class NPC (object): 
def __init__(self,name, phrases): 
    self.__name = name 
    self.__phrases = ['Today is Tuesday', 'Today is Wednesday', 'Today is Thursday', 'Today is Friday'] 

def getDescription(self): 
    return self.__description 

def add_phrase(self, phrase): 
    return "Howdy" 

def getPhrases(self): 
    return self.__phrases 

def speak(self): 
    for i in self.__phrases: 
     return randint 

def __str__(self): 
    return "Good day, I am " + self.__name 

c = NPC() 
c.speak() 

Außerdem, was soll ich unter der sprechen Funktion gesetzt, so dass es einer dieser Sätze zufällig zurückkehrt?

+0

Ihr Professor hat Sie Variablen? – citizen2077

+0

Ich bin nicht sicher, ob StackOverflow verwendet werden soll, um Hausaufgaben zu lösen. Aber natürlich zu lernen und zu verstehen, das Problem ist gut. Du hast gesagt, dass nichts angezeigt wird. Die Frage ist dann, was würde die Dinge erscheinen lassen? Wenn Sie nur einen Wert zurückgeben, wird normalerweise nichts angezeigt (Dinge wie Jupyter werden ignoriert). Die 'print'-Anweisung tut dies. – de1

+0

Diese Frage ist zu breit für Stack Overflow. Es fordert uns im Grunde, deine Aufgabe zu erledigen. Ich suche nach Beweisen, dass Sie die Aufgabe verstehen und dass Sie die grundlegende Python-Syntax verstehen, und ich sehe sie nicht. Ich bin also nicht sicher, dass auch eine Stack Overflow-Antwort verstanden wird. Was ich an Ihrer Stelle tun würde, wäre, grundlegende Python-Tutorials zu durchlaufen. Sie sind ein Zehncentstück im Internet. Dort sollten Sie anfangen. Ich fürchte, hier gibt es keine Abkürzungen. –

Antwort

0

versuchen diese, einen Blick auf die Änderungen nehme ich tat:

from random import randint 

class NPC (object): 

    def __init__(self,name, phrases): 
     self.__name = name 
     self.__phrases = phrases 

    def getDescription(self): 
     return self.__description 

    def add_phrase(self, phrase): 
     return "Howdy" 

    def getPhrases(self): 
     return self.__phrases 

    def speak(self): 
     rand = randint(0,len(self.__phrases)) #Selecting a random phrase 
     print(self.__phrases[rand]) 


    def __str__(self): 
     return "Good day, I am " + self.__name 


name = "Stranger" 
# Initializing phrase list and then passing it as an argument to the constructor. 
phrases = ['Today is Tuesday', 'Today is Wednesday', 'Today is Thursday', 'Today is Friday'] 

c = NPC(name, phrases) 
c.speak() 

Einer der Ausgänge ist:

Today is Wednesday 
mit __ am Anfang ihrer Namen
+0

Ich mag, was Sie getan haben, und es funktioniert, aber gibt es eine Möglichkeit, die Sätze unter dem Konstruktor statt außerhalb zu bekommen und es auf die gleiche Weise funktionieren zu lassen? –

+0

Als selbstverständlich den Code, den Sie an erster Stelle erhielten, können Sie so etwas in Ihrem Konstruktor tun: 'phrases = ['Heute ist Dienstag', 'Heute ist Mittwoch', 'Heute ist Donnerstag', 'Heute ist Freitag' '] 'und dann' self .__ phrases = Phrasen'. Aber ich sehe keinen Grund dafür, weil Ihre Klasse ihre Flexibilität verlieren wird. –

Verwandte Themen