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

python αρχαριος


yolobot

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

εφτιαξα τον  παρακατω κωδικα και  θα ηθελα να μου πειτε αν μπορειτε πως να τον εφτιαχνα καλυτερα για να μην κανω τοσες 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"
Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

πιστεύω εφόσον έχεις τόσα μέτρα σύγκρισης είναι αναγκαίο να έχεις τα if,

μπορείς να αποφύγεις το print των υπολοίπων όμως βάζοντας το όλο σε μία while (?)

έτσι θα αποφύγεις τα else

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

  • Moderators

Μπορείς να τους ταξινομήσεις και μετά να πάρεις ποιος είναι μεγαλύτερος κλπ. Έτσι όπως το έχεις τώρα, αν πούμε ότι ο α είναι μεγαλύτερος του β, θα πάρεις αυτό στην κονσόλα:

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;

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

αυτο που θελω ειναι να  δωσει ο χρηστης 3 αριθμους και να τους συγκρινω ποιος ειναι μεγαλυτερος μεσαιος και μικροτερος


και ο γ;

πηγαδι;

τον ξεχασα μαλλον :P

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

εκανα αυτο μπορει να εχει μερικα συντακιτκα αλλα σαν σκεψη ειναι σωστο νομιζω.αυτο με τους πινακες δεν καταλαβαινα πως ηθελες να το κανεις μπορεις να  μοπυ δωσεις την λυση σου να δω τι εννοουσες?

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"
Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

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

Με ταξινόμηση νομίζω και εγώ γίνεται πιο εύκολα

σε 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())))))

Σωστό

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

 

Με ταξινόμηση νομίζω και εγώ γίνεται πιο εύκολα

σε 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?

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

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

Ο παραπάνω κώδικας είναι λάθος 

εδώ είναι ο σωστός

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('καλημέρα')
'κ:α:λ:η:μ:έ:ρ:α'
Επεξ/σία από k33theod
Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

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

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

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

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

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

Σύνδεση

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

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