Eρώτηση για τον τελεστή ' / ' στην Python

Ξεκίνησε από demy8, 29 Οκτ 2016, 03:13:37 ΜΜ

« προηγούμενο - επόμενο »

demy8

εφόσον ο τελεστής / όταν οι αριθμοί είναι ακέραιοι κάνει ακέραια διαίρεση, αν θέλουμε να υπολογίσουμε μέσο όρο ή ποσοστό πρέπει να δηλώνουμε κάποια μεταβλητή float, ώστε να μην κάνει ακέραια διαίρεση;
πχ.
μο = αθροισμα/float(πληθος)

evry

ναι αλλά μπορείς να κάνεις και αυτό

Κώδικας: python
sum = 0.0   # αν ο πρώτος είναι float τότε όλοι θα είναι float 

for i in range(N):
    sum += i

avg = sum / N


ή και αυτό

Κώδικας: python
......
avg = (sum + 0.0) / N
What I cannot create I do not understand -- Richard Feynman
http://evripides.mysch.gr

sub0gr

Στην Python 3.5.1 ο τελεστής / δεν παράγει απαραίτητα ακέραιο αποτέλεσμα. Στην πράξη 5/2 θα πάρεις αποτέλεσμα 2.5

evry

What I cannot create I do not understand -- Richard Feynman
http://evripides.mysch.gr

sub0gr

Τότε γιατί στη σελίδα του ΙΕΠ στο υποστηρικτικό υλικό το βιβλίο περιγράφει όλα τα παραδείγματα στην Python 3? Υπάρχει κάποιο οδηγία που λέει ότι μαθαίνουμε την python 2;

evry

σε ποιο μάθημα αναφέρεσαι?
μιλάω για τα μαθήματα αρχές προγραμματισμού της Β και Γ ΕΠΑΛ.
Αναφέρομαι στα σχολικά βιβλία που είναι σε Python 2.
What I cannot create I do not understand -- Richard Feynman
http://evripides.mysch.gr

sub0gr

Στο ίδιο μάθημα αναφέρομαι, απλά λέω ότι στη σελίδα του ιεπ έχουν αναρτήσει ένα βιβλίο με τίτλο ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ ΜΕ ΤΗΝ PYTHON το οποίο αναφέρεται στην python 3 και εξηγεί τη χρήση του τελεστή / ότι παράγει και δεκαδικό καθώς και τη χρήση του // ότι παράγει ακέραιο. Καταλαβαίνω ότι ακολουθούμε πιστά το τι λέει το βιβλίο. Απλά περίμενα ότι αφού βγάζουν καινούριο βιβλίο θα αναφέρονταν στην τελευταία έκδοση της python. Ευχαριστώ για την απάντηση σου

evry

Δίκιο έχεις, δεν ξέρω πως μπήκε εκεί αφού αναφέρεται σε άλλη έκδοση της γλώσσας.
Επίσης το βιβλίο αν παρατήρησες αναφέρεται στην Β ΕΠΑΛ ως υποστηρικτικό υλικό και όχι στη Γ.
Οπότε ακολουθούμε τα σχολικά βιβλία για να μην μπλέξουμε με λεπτομέρειες μεταξύ των δυο εκδόσεων  ;)
Πάντως και στο μάθημα γενικής παιδείας "Εισαγωγή στην Επιστήμη των Η/Υ" η έκδοση 2 ακολουθείται.

ΥΓ. Η τελευταία έκδοση της Python είναι η 2.7.12. Η έκδοση 2 δεν έχει μείνει στάσιμη, εξελίσσεται και αυτή  ;)
Παράλληλα εξελίσσεται και η 3.
What I cannot create I do not understand -- Richard Feynman
http://evripides.mysch.gr

odysseas

Παράθεση από: evry στις 29 Οκτ 2016, 05:42:39 ΜΜ
ΥΓ. Η τελευταία έκδοση της Python είναι η 2.7.12. Η έκδοση 2 δεν έχει μείνει στάσιμη, εξελίσσεται και αυτή  ;)
Παράλληλα εξελίσσεται και η 3.

Ευριπίδη, χωρίς να έχω κανέναν απολύτως σκοπό να μπω σε κάποιο debate σχετικά με τις δύο εκδόσεις της Python, δεν μπορεί κανείς να μιλήσει για εξέλιξη της 2 ή για παράλληλη εξέλιξη των δύο εκδόσεων. Το documentation είναι ξεκάθαρο:

Python 2.7 is the last major release in the 2.x series, as the Python maintainers have shifted the focus of their new feature development efforts to the Python 3.x series. This means that while Python 2 continues to receive bug fixes, and to be updated to build correctly on new hardware and versions of supported operated systems, there will be no new full feature releases for the language or standard library.

evry

Ναι σωστά, το εξέλιξη ήταν λάθος λέξη. Εννοούσα ότι δεν την έχουν παρατήσει εντελώς ακόμα και όλο και κάτι διορθώνουν, διότι υπάρχει αρκετός κώδικας σε Python 2, δηλαδή ασχολούνται με αυτή και θα ασχολούνται για κάποιο καιρό ακόμα.
Λογικά κάποια στιγμή όλα θα πάνε σε Python 3.
What I cannot create I do not understand -- Richard Feynman
http://evripides.mysch.gr

user_83

συγγνώμη για την ενόχληση απλά ήθελα να ρωτήσω αν πρέπει να διδάξουμε και τον τελεστή / με αρνητικούς αριθμους....

πχ 5/(-3)=-2
ενώ 5/(-3.0)=-1.6666

στο σχολικο βιβλιο δεν αναφερεται κάτι τέτοιο. εγω δυστιχώς πρώτη χρονια διδάσκω python και βρήσκομαι σε πλήρη σύγχηση....
ευχαριστώ ....

evry

Δεν υπάρχει κάποια σχετική οδηγία αν αυτό ρωτάς. Ο τελεστής δουλεύει όπως με όλους τους άλλους αριθμούς.
Άλλα δε νομίζω ότι είναι ένα σημείο που έχει νόημα να χάσεις χρόνο, ενώ παρακάτω υπάρχουν σημαντικότερα.
Επίσης αυτά οι μαθητές δεν τα έχουν ξανακούσει στην Β?
What I cannot create I do not understand -- Richard Feynman
http://evripides.mysch.gr

Νίκος Αδαμόπουλος

Παράθεση από: evry στις 30 Οκτ 2016, 09:41:03 ΜΜ
Επίσης αυτά οι μαθητές δεν τα έχουν ξανακούσει στην Β?

Πιθανότατα όχι!

evry

Τι εννοείς Νίκο, δεν το κατάλαβα.
Στην Β υπάρχει μάθημα Αρχές προγραμματισμού που γίνεται σε Python 4 ώρες την εβδομάδα, άρα στην χειρότερη πρόβλεψη να πούμε 25 εβδομάδες το χρόνο?
25x4 = 100 ώρες
Αδυνατώ να πιστέψω ότι σε 100 ώρες δεν έχεις κάνει τουλάχιστον μέχρι και δομή επανάληψης, να μην πω για λίστες και αλγορίθμους.

Παράθεση από: Νίκος Αδαμόπουλος στις 31 Οκτ 2016, 02:59:20 ΜΜ
Πιθανότατα όχι!
What I cannot create I do not understand -- Richard Feynman
http://evripides.mysch.gr

Νίκος Αδαμόπουλος

Παράθεση από: evry στις 31 Οκτ 2016, 07:25:41 ΜΜ
Τι εννοείς Νίκο, δεν το κατάλαβα.
Στην Β υπάρχει μάθημα Αρχές προγραμματισμού που γίνεται σε Python 4 ώρες την εβδομάδα, άρα στην χειρότερη πρόβλεψη να πούμε 25 εβδομάδες το χρόνο?
25x4 = 100 ώρες
Αδυνατώ να πιστέψω ότι σε 100 ώρες δεν έχεις κάνει τουλάχιστον μέχρι και δομή επανάληψης, να μην πω για λίστες και αλγορίθμους.

Δεν είμαι σίγουρος ότι διδάχθηκε η python παντού πέρυσι!