yolobot Δημοσ. 15 Ιανουαρίου 2017 Δημοσ. 15 Ιανουαρίου 2017 εφτιαξα τον παρακατω κωδικα και θα ηθελα να μου πειτε αν μπορειτε πως να τον εφτιαχνα καλυτερα για να μην κανω τοσες If ωστε να ηταμ μικροτερος ο κωδικας και να εκανα τις συγκρισεις a = int(input(u"Δωσε α: ")) b = int(input(u"Δωσε β: ")) c = int(input(u"Δωσε γ: ")) if ( a == b ): print "Line 1 - a is equal to b" else: print "Line 1 - a is not equal to b" if ( a != b ): print "Line 2 - a is not equal to b" else: print "Line 2 - a is equal to b" if ( a <> b ): print "Line 3 - a is not equal to b" else: print "Line 3 - a is equal to b" if ( a < b ): print "Line 4 - a is less than b" else: print "Line 4 - a is not less than b" if ( a > b ): print "Line 5 - a is greater than b" else: print "Line 5 - a is not greater than b"
Moderators Kercyn Δημοσ. 15 Ιανουαρίου 2017 Moderators Δημοσ. 15 Ιανουαρίου 2017 Τι ακριβώς προσπαθείς να κάνεις εδώ;
yolobot Δημοσ. 15 Ιανουαρίου 2017 Μέλος Δημοσ. 15 Ιανουαρίου 2017 να ζητησω απο τον χρηστη 3 αριθμους και να τους συγκρινω μετα
KiriosD Δημοσ. 15 Ιανουαρίου 2017 Δημοσ. 15 Ιανουαρίου 2017 πιστεύω εφόσον έχεις τόσα μέτρα σύγκρισης είναι αναγκαίο να έχεις τα if, μπορείς να αποφύγεις το print των υπολοίπων όμως βάζοντας το όλο σε μία while (?) έτσι θα αποφύγεις τα else
yolobot Δημοσ. 15 Ιανουαρίου 2017 Μέλος Δημοσ. 15 Ιανουαρίου 2017 με μια συνασρτηση θα μπορουσε να βγει πιο γρηγορα γινεται?
Moderators Kercyn Δημοσ. 15 Ιανουαρίου 2017 Moderators Δημοσ. 15 Ιανουαρίου 2017 Μπορείς να τους ταξινομήσεις και μετά να πάρεις ποιος είναι μεγαλύτερος κλπ. Έτσι όπως το έχεις τώρα, αν πούμε ότι ο α είναι μεγαλύτερος του β, θα πάρεις αυτό στην κονσόλα: Line 1 - a is not equal to b Line 2 - a is not equal to b Line 3 - a is not equal to b Line 4 - a is not less than b Line 5 - a is greater than b Αυτό είναι που θες; πιστεύω εφόσον έχεις τόσα μέτρα σύγκρισης είναι αναγκαίο να έχεις τα if, μπορείς να αποφύγεις το print των υπολοίπων όμως βάζοντας το όλο σε μία while (?) έτσι θα αποφύγεις τα else Τι θα κάνει η while; 1
yolobot Δημοσ. 15 Ιανουαρίου 2017 Μέλος Δημοσ. 15 Ιανουαρίου 2017 αυτο που θελω ειναι να δωσει ο χρηστης 3 αριθμους και να τους συγκρινω ποιος ειναι μεγαλυτερος μεσαιος και μικροτερος και ο γ; πηγαδι; τον ξεχασα μαλλον
Moderators Kercyn Δημοσ. 15 Ιανουαρίου 2017 Moderators Δημοσ. 15 Ιανουαρίου 2017 Ωραία, διάβασε τρεις αριθμούς σ' έναν πίνακα, ταξινόμησε τον πίνακα και εκτύπωσε τα στοιχεία του. 1
yolobot Δημοσ. 15 Ιανουαρίου 2017 Μέλος Δημοσ. 15 Ιανουαρίου 2017 θελω να τα δινει ο χρηστης οχι να τα εχω σε ενα πινακα
Moderators Kercyn Δημοσ. 15 Ιανουαρίου 2017 Moderators Δημοσ. 15 Ιανουαρίου 2017 Ο χρήστης θα τους δίνει και θα τους βάζεις σε πίνακα αντί σε τρεις ξεχωριστές μεταβλητές.
yolobot Δημοσ. 15 Ιανουαρίου 2017 Μέλος Δημοσ. 15 Ιανουαρίου 2017 εκανα αυτο μπορει να εχει μερικα συντακιτκα αλλα σαν σκεψη ειναι σωστο νομιζω.αυτο με τους πινακες δεν καταλαβαινα πως ηθελες να το κανεις μπορεις να μοπυ δωσεις την λυση σου να δω τι εννοουσες? a = int(input(u"Δωσε α: ")) b = int(input(u"Δωσε β: ")) c = int(input(u"Δωσε γ: ")) fisrt=a; if (b>=fist ): first=b second=b else: second=b; if (c>=fist ): third=second second=first fisrt=c; if (c>=second): third=second second=c else: c=third print "first,second,third"
k33theod Δημοσ. 15 Ιανουαρίου 2017 Δημοσ. 15 Ιανουαρίου 2017 (επεξεργασμένο) Με ταξινόμηση νομίζω και εγώ γίνεται πιο εύκολα σε python 3 Όχι πίνακας αλλά dict SORRY Ο κώδικας είναι λάθος το κοιτάω και επανέρχομαι def compare(): a = int(input("Δωσε α: ")) b = int(input("Δωσε β: ")) c = int(input("Δωσε γ: ")) lejiko={i:k for i,k in zip('αβγ',(a,b,c))} return '<='.join(n[1] for i in range(len(sorted(zip(lejiko.values(), lejiko.keys()))))) Σωστό Επεξ/σία 15 Ιανουαρίου 2017 από k33theod
yolobot Δημοσ. 15 Ιανουαρίου 2017 Μέλος Δημοσ. 15 Ιανουαρίου 2017 Με ταξινόμηση νομίζω και εγώ γίνεται πιο εύκολα σε python 3 Όχι πίνακας αλλά dict def compare(): a = int(input("Δωσε α: ")) b = int(input("Δωσε β: ")) c = int(input("Δωσε γ: ")) lejiko={i:k for i,k in zip((a,b,c),('αβγ'))} return '<='.join(lejiko[i] for i in sorted(lejiko.keys())) μπορεις να μου εξηγησεις τι κανει το zip και το join?
k33theod Δημοσ. 15 Ιανουαρίου 2017 Δημοσ. 15 Ιανουαρίου 2017 (επεξεργασμένο) Ο παραπάνω κώδικας είναι λάθος εδώ είναι ο σωστός def compare(): a = int(input("Δωσε α: ")) b = int(input("Δωσε β: ")) c = int(input("Δωσε γ: ")) lejiko={i:k for i,k in zip('αβγ',(a,b,c))} n=sorted(zip(lejiko.values(), lejiko.keys())) return '<='.join(n[i][1] for i in range(len(n))) To zip δεν έχει σχέση με το ζιπάρισμα αλλά με το φερμουάρ δες καλύτερα μόνος σου τι κάνει. Το λέω γιατί θα χάσω κάτι και δεν θα καλύψω το θέμα Αν σου πω δηλαδή ότι επιστρέφει ένα iter από πολλά iter αφού εξαντλήσει το μικρότερο πιστέυω δεν θα καταλάβεις και πολλά. με παράδειγμα >>> list(zip((1,2,3),(4,5,6))) [(1, 4), (2, 5), (3, 6)] >>> n=zip((1,2,3),(4,5,6)) >>> n <zip object at 0x00000250BB567E88> το join δες το και αυτό παράδειγμα >>> ':'.join('καλημέρα') 'κ:α:λ:η:μ:έ:ρ:α' Επεξ/σία 16 Ιανουαρίου 2017 από k33theod
Προτεινόμενες αναρτήσεις
Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε
Πρέπει να είστε μέλος για να αφήσετε σχόλιο
Δημιουργία λογαριασμού
Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!
Δημιουργία νέου λογαριασμούΣύνδεση
Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.
Συνδεθείτε τώρα