Προς το περιεχόμενο

Bοήθεια σε άσκηση python (beginner)


Leuteris.V.2

Προτεινόμενες αναρτήσεις

Καλησπέρα στην παρέα

Πρόσφατα ξεκίνησα μαθήματα Python και έχω κολλήσει στη συγκεκριμένη άσκηση που φαίνεται στη φωτογραφία. Όταν πάω να τρέξω τον κώδικα, μου βγάζει συνέχεια NameError: name 'a' is not defined. Δεν μπορώ να καταλάβω ποιο είναι αυτό το όνομα που δεν έχω ορίσει. Πραγματικά δεν το βρίσκω πουθενά. Μήπως βλέπετε κάτι που δεν βλέπω με τα newbie μάτια μου;

Σας ευχαριστώ εκ των προτέρων

Screenshot (181).png

Screenshot (180).png

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Το a.b είναι ο συμβολισμός για το εσωτερικό γινόμενο. Δεν μπορείς να ορίσεις όνομα μεταβλητής με τελεία στη python. Όταν φτάσεις στiς κλάσεις θα καταλάβεις περισσότερα για το x.y ( στη προκειμένη a.b) και πως το "μεταφράζει" η python. Δώσε άλλο όνομα στη μεταβλητή προς το παρόν xD

Spoiler

Rules for Python variables:

  • A variable name must start with a letter or the underscore character
  • A variable name cannot start with a number
  • A variable name can only contain alpha-numeric characters and underscores (A-z, 0-9, and _ )
  • Variable names are case-sensitive (age, Age and AGE are three different variables)

 

  • Like 1
Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Το πρόβλημα είναι στην γραμμή 7, όπου έχεις:

a.b = (a1*b1) + (a2 * b2)

Αυτό είναι προβληματικό, γιατί λες: 

`a.`b: Το μέλος `b` του `a`

`=`:  θα πάρει την τιμή

`(a1 * b1) + (a2 + b2)`: H πράξη του αθροίσματος δύο γινομένων

Με την τελεία `.`, η Python προσπελαύνει μέλη του αντικειμένου. Πριν αναρωτηθείς "ποιο αντικείμενο", στην Python τα πάντα είναι αντικείμενα... τα πάντα όλα (όχι όπως στην Java που έχει Int και int). 

Δηλαδή, ακόμα και `a = 1` να κάνεις, το `a` είναι αντικείμενο. Με το να βάλεις την τελεία, `a.b`, λες στην Python να πάρει το μέλος `b` από το αντικείμενο `a`. 

  • Like 1
Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Δημοσ. (επεξεργασμένο)
23 λεπτά πριν, FiLw είπε

Το a.b είναι ο συμβολισμός για το εσωτερικό γινόμενο. Δεν μπορείς να ορίσεις όνομα μεταβλητής με τελεία στη python. Όταν φτάσεις στiς κλάσεις θα καταλάβεις περισσότερα για το x.y ( στη προκειμένη a.b) και πως το "μεταφράζει" η python. Δώσε άλλο όνομα στη μεταβλητή προς το παρόν xD

  Εμφάνιση κρυμμένου περιεχομένου

Rules for Python variables:

  • A variable name must start with a letter or the underscore character
  • A variable name cannot start with a number
  • A variable name can only contain alpha-numeric characters and underscores (A-z, 0-9, and _ )
  • Variable names are case-sensitive (age, Age and AGE are three different variables)

 

9 λεπτά πριν, Sacadmerde είπε

Το πρόβλημα είναι στην γραμμή 7, όπου έχεις:


a.b = (a1*b1) + (a2 * b2)

Αυτό είναι προβληματικό, γιατί λες: 

`a.`b: Το μέλος `b` του `a`

`=`:  θα πάρει την τιμή

`(a1 * b1) + (a2 + b2)`: H πράξη του αθροίσματος δύο γινομένων

Με την τελεία `.`, η Python προσπελαύνει μέλη του αντικειμένου. Πριν αναρωτηθείς "ποιο αντικείμενο", στην Python τα πάντα είναι αντικείμενα... τα πάντα όλα (όχι όπως στην Java που έχει Int και int). 

Δηλαδή, ακόμα και `a = 1` να κάνεις, το `a` είναι αντικείμενο. Με το να βάλεις την τελεία, `a.b`, λες στην Python να πάρει το μέλος `b` από το αντικείμενο `a`. 

Σας ευχαριστώ πολύ παιδιά. Όντως αυτό έφταιγε.  Τώρα όμως μου βγάζει αυτό στη 12η γραμμή :P

AttributeError: 'float' object has no attribute 'b' 

Καμιά ιδέα, πως να το ξεπεράσω;

Επεξ/σία από Leuteris.V.2
Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Δημοσ. (επεξεργασμένο)

Το άλλαξες και από τα δύο σημεία το a.b ?? ανέβασε ή φώτο ή copy-paste κώδικα

Επιπλέον κοίταξε καλύτερα τους τύπους και πως τους έχεις περάσει στο κώδικα. Δεν βλέπεις σφάλμα κατά την εκτέλεση αλλά στο τέλος θα αναρωτιέσαι γιατί δν βγαίνει σωστά(λογικό σφάλμα)

Επεξ/σία από FiLw
  • Like 1
Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Πωω έχεις δίκιο. Δεν είχα αλλάξει το a.b στην δεύτερη πράξη. Τωρα μου το ολοκληρώνει κανονικά. Σόρρυ αλλά είμαι τέρμα noob :P. Προχθές ξεκίνησα. 

Σε ευχαριστω και πάλι για τη βοήθεια.

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Προσοχή γιατί έχεις λάθος και στις υλοποιήσεις του μέτρου των διανυσματών με συνέπεια να έχεις λάθος και στον υπολογισμό του cos. Και ο υπολογισμός σε μοίρες είναι λάθος στη βάση του

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε

Πρέπει να είστε μέλος για να αφήσετε σχόλιο

Δημιουργία λογαριασμού

Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!

Δημιουργία νέου λογαριασμού

Σύνδεση

Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.

Συνδεθείτε τώρα
  • Δημιουργία νέου...