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

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

Δημοσ.

Καλησπέρα, η άσκηση ζητάει: 
-Συναρτηση με ονομα Debit που θα υπολογιζει μηνιαια χρεωση ενος πελατη, δεδομενου οτι το παγιο ειναι 5 ευρω. Η συναρτηση θα δεχεται ως παραμετρους τα λεπτα ομιλιας και θα επιστρεφει την χρεωση, η οποια ειναι κλιμακωτη με βαση εναν πινακα.

-Θα διαβαζει το επωνυμο του πελατη και τα λεπτα ομιλιας του με τη χρηση καταλληλου μηνυματος. Οι τιμες θα αποθηκευονται αντιστοιχα σε δυο λιστες με ονοματα customer και minutes. Ακολουθως θα υπολογιζει τη χρεωση του πελατη (κανοντας χρηση της συναρτησης debit) και θα την αποθηκευει σε λιστα με ονομα money. Η διαδικασια αυτη να επαναλαμβανεται μεχρι να δωθει για το επωνυμο "χ"

-Να χρησιμοποιει BubbleSort ωστε να ταξινομει ταυτοχρονα και τις 3 λιστες σε φθινουσα ταξινομηση ως προς τη χρεωση. Ακολούθως θα εμφανιζει τους 5 πρωτους πελατες με μεγαλυτερη χρεωση..

-Θα κανει εκπτωση 5% στην χρεωση των πελατων που εχουν πανω απο 200 λεπτα και θα γραφει σε αρχειο κειμενου "apot.txt" τα επωνυμα τους και το ποσο τελικης χρεωσης.. 
 

To link με το αρχειο (μιας και στο spoiler χαλάει ολος ο κωδικας) ειναι αυτο . 
Το τελευταιο βήμα δεν το εχω κανει ακομα, διοτι εχω κολλησει.. Μπορει καποιος να βοηθησει? Τι εχω κανει λαθος?
 

Edit: Ευχομαι να φανει νορμάλ..
 

# -*- coding: utf-8 -*-
def debit(lepta):
    pagio=5
    if lepta>=0 and lepta<=60:
        xrewsi=lepta*0.15
        global teliko
        teliko=xrewsi
        #print "Χρέωση: %f ευρώ."
        #print "Η τελική χρέωση είναι %f ευρώ. (μαζί με το πάγιο)"
    elif lepta>=61 and lepta<=120:
        xrewsi=lepta*0.1
        global teliko
        teliko=xrewsi
        #print "Χρέωση: %f ευρώ."
       # print "Η τελική χρέωση είναι %f ευρώ. (μαζί με το πάγιο)"
    elif lepta>120:
        xrewsi=lepta*0.05
        global teliko
        teliko=xrewsi
        #print "Χρέωση: %f ευρώ."
        #print "Η τελική χρέωση είναι %f ευρώ. (μαζί με το πάγιο)"
    
def BubbleSort(A, B, C):
    N=len©
    for i in range(N):
        for j in range(N-1,i,-1):
            if C[j]<C[j-1]:
                A[j], A[j-1]=A[j-1], A[j]
                B[j], B[j-1]=B[j-1], B[j]
                C[j], C[j-1]=C[j-1], C[j]
epwnimo=" "
customer=[]
minutes=[]
money=[]
while epwnimo!="x":
    epwnimo=raw_input("Dwse epwnymo pelati :")
    lepta=0
    if epwnimo!="x":
        lepta=input("Dwse lepta omilias :")
    debit(lepta)
    customer.append(epwnimo)
    minutes.append(lepta)
    money.append(teliko)
BubbleSort(customer, minutes, money)
print customer[0], customer[1], customer[2], customer[3], customer[4]
print minutes[0], minutes[1], minutes[2], minutes[3], minutes[4]
print money[0], money[1], money[2], money[3], money[4]
 
Δημοσ.

Η συνάρτησή σου δεν κάνει αυτό που ζητάει η άσκηση (δεν επιστρέφει τίποτα, επιστρέφω= return)

Kανείς δεν πληρώνει το πάγιο 

το loop while είναι λάθος

Δημοσ.

Η συνάρτησή σου δεν κάνει αυτό που ζητάει η άσκηση (δεν επιστρέφει τίποτα, επιστρέφω= return)

Kανείς δεν πληρώνει το πάγιο 

το loop while είναι λάθος

τελικα με τη βοηθεια ενος παιδιου μπορεσα και βρηκα το λαθος... (τα λαθη βασικα)

 

def debit(lepta):
    pagio=5
    global xrewsi
    if lepta<=60:
        xrewsi=lepta*0.15
    elif lepta<=120:
        xrewsi=(60*0.15)+((lepta-60)*0.1)
    else:
        xrewsi=(60*0.15)+(60*0.1)+((lepta-120)*0.05)
        print xrewsi
    xrewsi=xrewsi+pagio
    return xrewsi
    print("I xrewsi einai :", xrewsi)
    
def BubbleSort(A, B, C):
    N=len©
    for i in range(1,N,1):
        for j in range(N-1,i-1,-1):
            if C[j]<C[j-1]:
                A[j], A[j-1]=A[j-1], A[j]
                B[j], B[j-1]=B[j-1], B[j]
                C[j], C[j-1]=C[j-1], C[j]
epwnimo=" "
customer=[]
minutes=[]
money=[]
while epwnimo!="x":
    epwnimo=raw_input("Dwse epwnymo pelati :")
    lepta=0
    if epwnimo!="x":
        lepta=input("Dwse lepta omilias :")
    debit(lepta)
    customer.append(epwnimo)
    minutes.append(lepta)
    money.append(xrewsi)
    BubbleSort(customer, minutes, money)
customer.reverse()
minutes.reverse()
money.reverse()
print customer[0:4:1]
print minutes[0:4:1]
print money[0:4:1]

Emfanistikan kanonika ta apotelesmata auti ti fora.. 

Δημοσ.

Παράξενο το while είναι λάθος

κάπως έτσι πρέπει να είναι

while True:
    epwnimo=raw_input("Dwse epwnymo pelati :")
    if epwnimo=="x":
        break    
    lepta=input("Dwse lepta omilias :")
    customer.append(epwnimo)
    minutes.append(lepta)
    money.append(debit(lepta))
   
Δημοσ.

 

Παράξενο το while είναι λάθος

κάπως έτσι πρέπει να είναι

while True:
    epwnimo=raw_input("Dwse epwnymo pelati :")
    if epwnimo=="x":
        break    
    lepta=input("Dwse lepta omilias :")
    customer.append(epwnimo)
    minutes.append(lepta)
    money.append(debit(lepta))
   

Σου εχω στειλει μηνυμα

Δημοσ.

Την global γιατι τη χρησιμοποιεις; Επισης το print μετα το return δεν θα κανει κατι, στο return σταματαει η συναρτηση.

Ακυρο για την global.

Δημοσ.

Την global γιατι τη χρησιμοποιεις; Επισης το print μετα το return δεν θα κανει κατι, στο return σταματαει η συναρτηση.

Ακυρο για την global.

To global είναι λάθος, δεν επηρεάζει βέβαια άμεσα τον κώδικα αλλά δεν έχει λόγο ύπαρξης

Έχει κα άλλα λαθάκια θα τα βρει όμως  :-)

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

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

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

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

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

Σύνδεση

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

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