likoyrgos Δημοσ. 11 Δεκεμβρίου 2015 Share Δημοσ. 11 Δεκεμβρίου 2015 Χρησιμοποιώ Python 2.7.10 . Ο τελεστής διαίρεσης είναι ο ' / '΄. Σύμφωνα με αυτά που έχω διαβάσει βγάζει το πηλίκο της διαίρεσης δύο αριθμών. Όταν όμως πληκτρολογώ πχ print 7/3 βγάζει αποτέλεσμα 2 και όχι 2,33333.. που είναι το κανονικό. Δηλ βγάζει μόνο το ακέραιο μέρος του πηλίκου. Αν όμως πληκτρολογήσω 7.3 / 2 βγάζει κανονικά το αποτέλεσμα 3.65. Πώς θα κάνω να βγάζει κανονικά το πηλίκο ανεξάρτητα αν ο διαιρετέος είναι ακέραιος ή όχι; Συνδέστε για να σχολιάσετε Κοινοποίηση σε άλλες σελίδες άλλες επιλογές
Moderators Kercyn Δημοσ. 11 Δεκεμβρίου 2015 Moderators Share Δημοσ. 11 Δεκεμβρίου 2015 http://stackoverflow.com/questions/1267869/how-can-i-force-division-to-be-floating-point-in-python Μάλλον πρέπει να κάνεις update την python. Η ερώτηση είναι από το 2009 και από τότε του λένε ότι αυτό που θέλει γίνεται αυτόματα στην python 3. Συνδέστε για να σχολιάσετε Κοινοποίηση σε άλλες σελίδες άλλες επιλογές
akis_fc Δημοσ. 11 Δεκεμβρίου 2015 Share Δημοσ. 11 Δεκεμβρίου 2015 Δοκίμασε 7.0/3 ή 7/3.0 γνκ πρέπει το ένα από τα δύο να είναι float για να σου δώσει δεκαδικά. Ή python3 1 Συνδέστε για να σχολιάσετε Κοινοποίηση σε άλλες σελίδες άλλες επιλογές
likoyrgos Δημοσ. 12 Δεκεμβρίου 2015 Μέλος Share Δημοσ. 12 Δεκεμβρίου 2015 Δοκίμασε 7.0/3 ή 7/3.0 γνκ πρέπει το ένα από τα δύο να είναι float για να σου δώσει δεκαδικά. Ή python3 Κατάλαβα μάλλον πάω σε έκδοση 3. Ευχαριστώ. Συνδέστε για να σχολιάσετε Κοινοποίηση σε άλλες σελίδες άλλες επιλογές
parsifal Δημοσ. 12 Δεκεμβρίου 2015 Share Δημοσ. 12 Δεκεμβρίου 2015 Διαφορετικά, μπορείς να πολλαπλασιάζεις είτε τον αριθμητή είτε τον παρονομαστή με 1.0 (βλ. και το link από SO που δόθηκε πιο πάνω). Συνδέστε για να σχολιάσετε Κοινοποίηση σε άλλες σελίδες άλλες επιλογές
Ilias95 Δημοσ. 12 Δεκεμβρίου 2015 Share Δημοσ. 12 Δεκεμβρίου 2015 Στην python υπάρχουν τα future imports για καλύτερο compatibility python2-python3. Η λογική είναι ότι φέρνεις χαρακτηριστικά της νεότερης python3 στην python2.Οπότε για να έχεις τον division operator της python3 στην python2, όπως φαίνεται και στο link του Kercyn θα γράψεις στην αρχή, αρχή του αρχείου σου: from __future__ import division Προφανώς δεν "χρειάζεται" να πας σε python3 για τέτοιο λόγο. Αν όμως τώρα μαθαίνεις python δεν βλέπω κανένα λόγο να γράφεις σε python2. Μάλλον πρέπει να κάνεις update την python. Υπάρχει η python 2.x series και η python 3.x series οι οποίες αναπτύσσονται παράλληλα, οπότε τυπικά όταν κάνεις update την python2 πας σε νέα έκδοση της python2.x, όχι στην python3 η οποία μπορεί να είναι εγκατεστημένη παράλληλα. Πιθανόν να το γνωρίζεις, αλλά just saying. 1 Συνδέστε για να σχολιάσετε Κοινοποίηση σε άλλες σελίδες άλλες επιλογές
Moderators Kercyn Δημοσ. 12 Δεκεμβρίου 2015 Moderators Share Δημοσ. 12 Δεκεμβρίου 2015 Υπάρχει η python 2.x series και η python 3.x series οι οποίες αναπτύσσονται παράλληλα, οπότε τυπικά όταν κάνεις update την python2 πας σε νέα έκδοση της python2.x, όχι στην python3 η οποία μπορεί να είναι εγκατεστημένη παράλληλα. Πιθανόν να το γνωρίζεις, αλλά just saying. Όχι, δεν το ήξερα αυτό. Υπέθεσα ότι ο OP απλώς έχει πολλή παλιά έκδοση Συνδέστε για να σχολιάσετε Κοινοποίηση σε άλλες σελίδες άλλες επιλογές
web_alex Δημοσ. 12 Δεκεμβρίου 2015 Share Δημοσ. 12 Δεκεμβρίου 2015 Δεν χρειάζεται να κάνεις κανένα update, Η python κάνει διαίρεση ανάλογα με το είδος των μεταβλιτών, αν είναι Intergers (ακέραιοι) τότε και το αποτέλεσμα θα είναι ακέραιο (καταλήγει δηλαδή να κάνει 'div'). Για να σου δώσει δεκαδικά πρέπει ένας απο τους 2 αριθμούς να είναι float(να έχει δηλαδή δεκαδικά). Οπότε, ή κάνεις 5.0/2 ή 5/2.0 ή αν έχεις μεταβλητές x / float(y). 2 Συνδέστε για να σχολιάσετε Κοινοποίηση σε άλλες σελίδες άλλες επιλογές
M2000 Δημοσ. 12 Δεκεμβρίου 2015 Share Δημοσ. 12 Δεκεμβρίου 2015 Δεν γνωρίζω, παρά ελάχιστα την python, το ερώτημα εδώ είναι αν μπορώ να ορίσω float ή double ή single τα Α και Β και να περιμένω Α/Β να δίνει πραγματικό; Συνδέστε για να σχολιάσετε Κοινοποίηση σε άλλες σελίδες άλλες επιλογές
ggeo1 Δημοσ. 12 Δεκεμβρίου 2015 Share Δημοσ. 12 Δεκεμβρίου 2015 Στην python δεν ορίζεις types ( float ,int .. ). Όπως ειπώθηκε και παραπάνω ή θα χρησιμοποιήσεις υποδιαστολή , ή την python3 ή from __future__ import division εφόσον χρησιμοποιείς python2. Συνδέστε για να σχολιάσετε Κοινοποίηση σε άλλες σελίδες άλλες επιλογές
akis_fc Δημοσ. 12 Δεκεμβρίου 2015 Share Δημοσ. 12 Δεκεμβρίου 2015 Δεν γνωρίζω, παρά ελάχιστα την python, το ερώτημα εδώ είναι αν μπορώ να ορίσω float ή double ή single τα Α και Β και να περιμένω Α/Β να δίνει πραγματικό; Ότι λέει ο από πάνω + να τα κάνεις casting σε float ή ότι άλλο θέλεις a = 7 b = 3 a/b ---> 2 a/float( ---> 2.3333333333333335 Συνδέστε για να σχολιάσετε Κοινοποίηση σε άλλες σελίδες άλλες επιλογές
M2000 Δημοσ. 12 Δεκεμβρίου 2015 Share Δημοσ. 12 Δεκεμβρίου 2015 Δηλαδή δεν ορίζουμε τύπο; Και όμως αν δώσεις αρχική τιμή με δεκαδικό, ορίζεις τύπο... Συνδέστε για να σχολιάσετε Κοινοποίηση σε άλλες σελίδες άλλες επιλογές
akis_fc Δημοσ. 12 Δεκεμβρίου 2015 Share Δημοσ. 12 Δεκεμβρίου 2015 Ναι δεν ορίζουμε είπαμε όχι δεν υπάρχουν. Φυσικά και η μεταβλητή παίρνει κάποιον τύπο αναλόγως με την τιμή που της θέτεις. Site: ρίξε εδώ μία ματιά αν θέλεις Συνδέστε για να σχολιάσετε Κοινοποίηση σε άλλες σελίδες άλλες επιλογές
M2000 Δημοσ. 12 Δεκεμβρίου 2015 Share Δημοσ. 12 Δεκεμβρίου 2015 οκ, το κατάλαβα! Απλά βλέποντας ένα Α/Β δεν ξέρεις αφενός αν είναι διαίρεση ακεραίων ή πραγματικών και αφετέρου αν θα δώσει πραγματικό ή ακέραιο. Η σταθερά που βάζουμε παίζει ρόλο στο τι θα βγάλει μια έκφραση. Και όταν ορίζουμε μεταβλητή ουσιαστικά έχουμε ανάθεση σε όνομα ενός αποτελέσματος έκφρασης! Δεν συμπαθώ ιδιαίτερα τη γλώσσα Python (με εκνευρίζουν τα underscore και οι εσοχές που παίζουν ρόλο μπλοκ χωρίς να υπάρχει σημάδι τερματισμού του μπλοκ) Συνδέστε για να σχολιάσετε Κοινοποίηση σε άλλες σελίδες άλλες επιλογές
Ilias95 Δημοσ. 12 Δεκεμβρίου 2015 Share Δημοσ. 12 Δεκεμβρίου 2015 Απλά βλέποντας ένα Α/Β δεν ξέρεις αφενός αν είναι διαίρεση ακεραίων ή πραγματικών και αφετέρου αν θα δώσει πραγματικό ή ακέραιο. Αυτό βέβαια σου δίνει πολύ μεγάλη ευελιξία. Δες πχ. ένα παράδειγμα με άλλον τελεστή: In [1]: def add(a, : ...: return a + b ...: In [2]: add(1, 5) Out[2]: 6 In [3]: add(2.4, 1.9) Out[3]: 4.3 In [4]: add("abc", "def") Out[4]: 'abcdef' In [5]: add([1, 2, 3], [4, 5, 6]) Out[5]: [1, 2, 3, 4, 5, 6] In [6]: add((1, 2), (3, 4)) Out[6]: (1, 2, 3, 4) In [7]: Ορίζεις μία add() και καθάρισες. Δεν χρειάζεσαι ούτε overloading, ούτε περίεργα macros, ούτε να ορίζεις 10 συναρτήσεις. Ποια underscores σε εκνευρίζουν; 1 Συνδέστε για να σχολιάσετε Κοινοποίηση σε άλλες σελίδες άλλες επιλογές
Προτεινόμενες αναρτήσεις
Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε
Πρέπει να είστε μέλος για να αφήσετε σχόλιο
Δημιουργία λογαριασμού
Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!
Δημιουργία νέου λογαριασμούΣύνδεση
Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.
Συνδεθείτε τώρα