Άλλα μηνύματα του μέλους gademis σε αυτό το thread

gademis

Τιμώμενο Μέλος

Ο Δημήτρης αυτή τη στιγμή δεν είναι συνδεδεμένος. Είναι 43 ετών και επαγγέλεται Η.Μ.Μ.Υ. . Έχει γράψει 1,336 μηνύματα.
:hehe: Εγώ απορώ γιατί θεωρούν τη python ιδανική γλώσσα για να αρχίσει κάποιος

Γιατί αν εξαιρέσεις το indentation που παίζει ρόλο στο συντακτικό και είναι λίγο χαζό, κατά τα άλλα είναι σωστά αντικειμενοστραφής, με εύκολη σύνταξη, "εύκολους" τύπους (που είναι καλό feature για αρχάριο αν και πιο μετά γυρνάνε και σε δαγκάνουν στον κώλο), και ένα σκασμό packages.

Οι σύγχρονες εναλλακτικές σου είναι:

javascript = Γραμμένη για άλλη δουλειά, εγκληματικά λάθος σχεδιασμένη, "αντικειμενοστραφής" μαϊμού χωρίς κλάσεις
php = Γραμμένη για άλλη δουλειά. αντικειμενοστραφής εκ των υστέρων με μπλιάχ σύνταξη.
Java = σωστή μεν, αλλά θες μια σελίδα να ορίζεις κλάσεις για να τρέξει hello world.
rust / go = στιβαρές αλλά ακόμα στα σπάργανα σε σχέση με τις άλλες.
C# = microsoft locked.

Οπότε σε σχέση με αυτά είναι pretty good η python. Στην τελική δεν έχει πολλή σημασία με τι αρχίζεις, εν τέλη θα γράψεις αυτό που βολεύει για τη δουλειά που κάνεις την εκάστοτε στιγμή.
 

gademis

Τιμώμενο Μέλος

Ο Δημήτρης αυτή τη στιγμή δεν είναι συνδεδεμένος. Είναι 43 ετών και επαγγέλεται Η.Μ.Μ.Υ. . Έχει γράψει 1,336 μηνύματα.
Αν και δε κάνει πάντα πρόβλημα, φτιάξε ειδικά τη σειρά που ορίζεις τις συναρτήσεις που λέει ο Fast, μπορεί να είναι από εκεί.
 

gademis

Τιμώμενο Μέλος

Ο Δημήτρης αυτή τη στιγμή δεν είναι συνδεδεμένος. Είναι 43 ετών και επαγγέλεται Η.Μ.Μ.Υ. . Έχει γράψει 1,336 μηνύματα.
Aχ, και για τα δύο το τσέκαρα αλλά δεν ισχύουν.

Ουσιαστικά ο κώδικας πάει κάπως έτσι:

Code:
def wordGen():
    *λεξικά*
    *λεξικά*
    type=typeSel()
    word=wordSel()

def typeSel(): 
    import random
    return random.randint(1,7)

def wordSel():
    if type==1:
        poss=8
        x=random.randint(1,poss)
        word=intDict[x]
    elif
      *μπλα μπλα μπλα άλλες επιλογές με ίδιο σκεπτικό*
    return word
    
wordGen()


Τι πάει λάθος οεο;

αν είναι έτσι το indentation που έχεις στο quote (στο ίδιο επίπεδο ολα δηλαδή) , ναι δεν είναι scope..
το λάθος είναι NameError: name 'wordGen' is not defined ;
 

gademis

Τιμώμενο Μέλος

Ο Δημήτρης αυτή τη στιγμή δεν είναι συνδεδεμένος. Είναι 43 ετών και επαγγέλεται Η.Μ.Μ.Υ. . Έχει γράψει 1,336 μηνύματα.
Βοηθήστε με λίγο και πείτε μου, τι βλακεία παίζει να έχω κάνει για να μη μου βρίσκει μία συνάρτηση όταν τη καλώ; Ότι το έχω αποθηκεύσει άλλ'αντ'άλλων υποπτεύομαι αλλά δεν ξέρω πού θα έπρεπε. :P
Άσχετη, ντοντ τζατζ.


Δες επίσης αν ορίζεις τη συνάρτηση στο σωστό scope, καθώς ισχύουν οι ίδιοι κανόνες με τις μεταβλητές. Αν κάνεις κάτι του τύπου


Code:
def f1():
    def f2():
        print("lala")
    print("foo")

f2()


θα σου πετάξει error όταν πας να καλέσεις την f2 γιατί το scope της είναι (δηλαδή "ισχύει") μόνο μέσα στην f1 που είναι ορισμένη.
 
Top