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

(Python) Τέλη Κυκλοφορίας 2024


AlienTechGR

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

Καλησπέρα παιδιά και χρόνια πολλά.

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

Ευχαριστώ εκ των προτέρων. :) 

TeliKykloforias.py

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

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

Καλησπέρα!

Οι συναρτήσεις Until20XY θα μπορούσαν να συντομευθούν λίγο με χρήση dictionary, π.χ.

def Until2000(cc):
  dict = {
    4001: 1230,
    3001: 1025,
    2358: 820,
    1929: 615,
    1739: 280,
    1549: 260,
    1358: 225,
    1072: 135,
    786: 120,
    301: 55,
    0: 22
  }

  for key in dict:
    if cc >= key:
      return dict[key]

Για να δουλέψει το παραπάνω, θα πρέπει να χρησιμοποιείς Python >= 3.6 (παρέχει εγγύηση ότι τα key/value pairs θα κρατήσουν τη σειρά που τους έδωσες κατά την αρχικοποίηση του dictionary), να αρχικοποιείς την cc πριν να κληθεί η συνάρτηση (αφού πρέπει να περάσεις την cc ως όρισμα στη συνάρτηση) και ταυτόχρονα να κάνεις sanitise την τιμή της για αρνητικούς αριθμούς, δηλαδή κάπως έτσι:

def Calculate():
  try:
    year = int(TextBox2.get())
    # cc = int(TextBox1.get())
    cc = max(0, int(TextBox1.get()))

 

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

Καλημέρα

Αν και δεν έχω γράψει python ποτέ είπα να κάνω μία απόπειρα με τον πρωινό καφέ :D

Με χρήση dictionary και ranges γίνεται πιο απλός ο κώδικας , δεν ξέρω αν έχει ξεφύγει κάποιος έλεγχος για να πέσει ακριβώς μέσα στη χρονιά , αλλά μπορείς να δεις την λογική

Με το παραπάνω τρόπο γλυτώνεις τον μισό επαναλαμβανόμενο κώδικα

Επίσης είναι καλύτερη πρακτική να έχεις μία μέθοδο που θα υπολογίζει μία τιμή και να την καλείς για να την εμφανίσεις στο textbox , παρά να γράφεις κατευθείαν τις τιμές μέσα απο την μέθοδο . Έτσι αν θέλεις να χρησιμοποιήσεις αυτή την μέθοδο και σε κάποιο άλλο κομμάτι (π.χ. να το έβγαζες και ως web service) δεν θα είναι δεμένη με το UI σου

Επαναλαμβάνω δεν έχω ξαναγράψει python αλλά έχω εμπειρία σε προγραμματισμό και περισσότερο ήθελα να σου δείξω την κατεύθυνση , μπράβο για την προσπάθεια και καλή χρονιά

main.py

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

  • 3 εβδομάδες αργότερα...

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

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

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

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

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

Σύνδεση

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

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