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

Άσκηση στην Python (Επείγον)


georgie15

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

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

Χαιρετώ, είμαι πρωτοετής φοιτήτρια και έχω επιλέξει τον προγραμματισμό σαν μάθημα επιλογής. Ο καθηγητής είναι δεν είναι τόσο επεξηγηματικος και μας έχει βάλει μια άσκηση εξαμήνου με την οποία δεν μπορώ να βγάλω άκρη με όσα έχω κάνει μέχρι στιγμής. Ζητώ βοήθεια από έναν προγραμματιστή που μπορεί να εξηγήσει βήμα βήμα πως θα προχωρήσω για να βγει σωστά ο κώδικας. 

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

  • Moderators

Τα προβλήματα που θα κληθείς να αντιμετωπίσεις, όπως αυτό εδώ, είναι πολύ μεγάλα για να τα λύσεις με τη μία. Αυτό που πρέπει να κάνεις είναι να σπάσει το μεγάλο πρόβλημα που έχεις σε μικρότερα και πιο βατά προβλήματα τα οποία μπορείς να λύσεις. Η εκφώνηση της άσκησης σε βοηθάει πάρα πολύ σε αυτό το σπάσιμο.

Πάρε, για παράδειγμα, το πρώτο bullet. Τα ζητούμενά του μπορούν να συνοψιστούν στα εξής:

  1. Πρέπει να εκτυπώσεις ένα μήνυμα για να ξέρει ο χρήστης τι να κάνει και τι επιλογές έχει.
  2. Πρέπει να διαβάσεις την επιλογή του χρήστη από το πληκτρολόγιο
  3. Πρέπει να ελέγξεις τι σου έδωσε ο πελάτης. Αν η επιλογή του δεν είναι αποδεκτή, πρέπει να τον ξαναρωτήσεις
  4. Το 3 θα γίνει μέχρι 3 φορές. Αν συνεχίσει να γράφει βλακείες, το πρόγραμμα τερματίζει

Ομοίως μπορείς να προσεγγίσεις και τα υπόλοιπα bullets, και στο τέλος να δεις πώς όλα αυτά θα δουλέψουν μαζί για να φτιάξεις το πρόγραμμά σου. Μην ξεκινήσεις κατευθείαν να γράφεις κώδικα. Πάρε ένα χαρτί και προσπάθησε να σχεδιάσεις τη ροή που θα έχει το πρόγραμμά σου. Στην αρχή θα είναι δύσκολο, αλλά όπως όλα τα πράγματα, αν δεν εξασκηθείς θα παραμείνει δύσκολο για πάντα.

Τέλος, πρέπει πάντα να θυμάσαι ότι δεν είσαι πια στο σχολείο. Τώρα πια δεν υπάρχει (ή έστω είναι πολύ σπάνιο και σίγουρα όχι ο κανόνας) ο καθηγητής που θα σε πάρει από το χέρι να πάτε μαζί βήμα-βήμα. Ο καθηγητής θα μπει, θα πει αυτά που είναι να πει και πολλές φορές δε θα πολυνοιάζεται κιόλας. Είναι δική σου δουλειά να ακούσεις ό,τι μπορείς και στη συνέχεια να το ψάξεις μόνη σου. Για παράδειγμα, θα μπει ο καθηγητής και θα σου πει ότι αν θες να τρέξεις κάτι πολλές φορές μπορείς να χρησιμοποιήσεις μια for και θα σου δώσει κι ένα χαζό παράδειγμα. Είναι δική σου δουλειά από κει και πέρα να ψάξεις παραπάνω πώς ακριβώς δουλεύει η for, να πειραματιστείς και να εξασκηθείς, ούτως ώστε να το μάθεις πραγματικά.

 ΥΓ.: Τώρα είδα ότι είναι μάθημα επιλογής, άρα δεν είσαι σε σχολή πληροφορικής. Τα παραπάνω που έγραψα ισχύουν, αλλά αν δεις ότι δε σε ενδιαφέρει ο προγραμματισμός, μπορείς να πάρεις άλλο μάθημα επιλογής για να μην ταλαιπωρείσαι με πράγματα που σου είναι αδιάφορα.

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

# Function to handle user input with limited attempts and valid options
def get_input_with_validation(prompt, error_message, valid_options):
    attempts = 3
    while attempts > 0:
        user_input = input(prompt).strip()
        if user_input in valid_options:
            return user_input
        else:
            print(error_message)
            attempts -= 1
    print("Sorry, we cannot serve you.")
    return None

# Available coffee types and extras
coffee_types = ["Greek", "Espresso", "Cappuccino", "Latte"]
extras = ["None", "Milk", "Sugar", "Cinnamon"]
takeaway_options = ["Yes", "No"]

# Initialize order counts
coffee_counts = {coffee_type: 0 for coffee_type in coffee_types}
invalid_orders = 0

while True:
    # Get customer's name
    customer_name = input("Enter customer name (leave empty to quit): ").strip()
    if not customer_name:
        break

    # Get coffee type
    coffee_type = get_input_with_validation(
        f"Choose your coffee type ({', '.join(coffee_types)}): ",
        "Invalid coffee type.",
        coffee_types
    )
    if not coffee_type:
        invalid_orders += 1
        continue

    # Get extras
    extra = get_input_with_validation(
        f"Choose your extra ({', '.join(extras)}): ",
        "Invalid extra option.",
        extras
    )
    if not extra:
        invalid_orders += 1
        continue

    # Get takeaway option
    takeaway = get_input_with_validation(
        "Would you like your order for takeaway? (Yes/No): ",
        "Invalid takeaway option.",
        takeaway_options
    )
    if not takeaway:
        invalid_orders += 1
        continue

    # Print the order
    print(f"\nOrder for {customer_name}:")
    print(f"- Coffee type: {coffee_type}")
    print(f"- Extra: {extra}")
    print(f"- Takeaway: {takeaway}\n")

    # Update the order counts
    coffee_counts[coffee_type] += 1

# Print the final order counts
print("\nOrder summary:")
for coffee_type, count in coffee_counts.items():
    print(f"- {coffee_type}: {count} orders")
print(f"- Invalid orders: {invalid_orders}")

 

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

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

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

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

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

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

Σύνδεση

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

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