Customize Consent Preferences

We use cookies to help you navigate efficiently and perform certain functions. You will find detailed information about all cookies under each consent category below.

The cookies that are categorized as "Necessary" are stored on your browser as they are essential for enabling the basic functionalities of the site. ... 

Always Active

Necessary cookies are required to enable the basic features of this site, such as providing secure log-in or adjusting your consent preferences. These cookies do not store any personally identifiable data.

No cookies to display.

Functional cookies help perform certain functionalities like sharing the content of the website on social media platforms, collecting feedback, and other third-party features.

No cookies to display.

Analytical cookies are used to understand how visitors interact with the website. These cookies help provide information on metrics such as the number of visitors, bounce rate, traffic source, etc.

No cookies to display.

Performance cookies are used to understand and analyze the key performance indexes of the website which helps in delivering a better user experience for the visitors.

No cookies to display.

Advertisement cookies are used to provide visitors with customized advertisements based on the pages you visited previously and to analyze the effectiveness of the ad campaigns.

No cookies to display.

3.4 Ελεγχόμενη επανάληψη ακολουθίας και μορφοποιημένες συμβολοσειρές

Ας εξετάσουμε ένα πρόβλημα μέσου όρου βαθμολογιών μιας τάξης, όπου οι βαθμολογίες είναι ακέραιοι αριθμοί μεταξύ 0 και 100. Για παράδειγμα, αν μια τάξη αποτελείται από δέκα μαθητές με βαθμολογίες 98, 76, 71, 87, 83, 90, 57, 79, 82, και 94, θα πρέπει να υπολογίσουμε τον μέσο όρο της τάξης.

Λύση με Σενάριο (Script)

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

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
# Οι βαθμολογίες των μαθητών
grades = [98, 76, 71, 87, 83, 90, 57, 79, 82, 94]
# Υπολογισμός του συνόλου των βαθμολογιών
total = sum(grades)
# Υπολογισμός του μέσου όρου
average = total / len(grades)
# Εμφάνιση του μέσου όρου
print(f"Ο μέσος όρος της τάξης είναι: {average:.2f}")
# Οι βαθμολογίες των μαθητών grades = [98, 76, 71, 87, 83, 90, 57, 79, 82, 94] # Υπολογισμός του συνόλου των βαθμολογιών total = sum(grades) # Υπολογισμός του μέσου όρου average = total / len(grades) # Εμφάνιση του μέσου όρου print(f"Ο μέσος όρος της τάξης είναι: {average:.2f}")
# Οι βαθμολογίες των μαθητών
grades = [98, 76, 71, 87, 83, 90, 57, 79, 82, 94]

# Υπολογισμός του συνόλου των βαθμολογιών
total = sum(grades)

# Υπολογισμός του μέσου όρου
average = total / len(grades)

# Εμφάνιση του μέσου όρου
print(f"Ο μέσος όρος της τάξης είναι: {average:.2f}")

Στο παράδειγμα αυτό, χρησιμοποιούμε τη συνάρτηση sum() για να πάρουμε το σύνολο των βαθμολογιών και την len() για να πάρουμε τον αριθμό των βαθμολογιών. Το αποτέλεσμα του μέσου όρου εμφανίζεται με δύο δεκαδικά ψηφία μετά την υποδιαστολή, χρησιμοποιώντας μορφοποιημένη συμβολοσειρά (formatted string).

Εισαγωγή στις Μορφοποιημένες Συμβολοσειρές (Formatted Strings) στην Python

Στην Python, οι μορφοποιημένες συμβολοσειρές (formatted strings) είναι ένας πολύ χρήσιμος τρόπος για να ενσωματώσετε μεταβλητές και λογικές εκφράσεις μέσα σε συμβολοσειρές, επιτρέποντας πιο ευέλικτη και ευανάγνωστη εμφάνιση των δεδομένων. Υπάρχουν διάφοροι τρόποι για να μορφοποιήσετε μια συμβολοσειρά στην Python, αλλά ένας από τους πιο δημοφιλείς και σύγχρονους είναι η χρήση των f-strings (από την έκδοση Python 3.6 και μετά).

Χρήση των f-strings

Μια f-string δημιουργείται προσθέτοντας το γράμμα f ή F αμέσως πριν από τα ανοιχτήρια εισαγωγικά. Μέσα στην f-string, μπορείτε να βάλετε εκφράσεις μέσα σε αγκύλες {} και αυτές θα αξιολογηθούν και θα αντικατασταθούν με τις τιμές τους.

Παράδειγμα:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
name = "Αλέξης"
age = 30
greeting = f"Γεια σου, το όνομά μου είναι {name} και είμαι {age} ετών."
print(greeting) # Εκτυπώνει: Γεια σου, το όνομά μου είναι Αλέξης και είμαι 30 ετών.
name = "Αλέξης" age = 30 greeting = f"Γεια σου, το όνομά μου είναι {name} και είμαι {age} ετών." print(greeting) # Εκτυπώνει: Γεια σου, το όνομά μου είναι Αλέξης και είμαι 30 ετών.
name = "Αλέξης"
age = 30

greeting = f"Γεια σου, το όνομά μου είναι {name} και είμαι {age} ετών."
print(greeting)  # Εκτυπώνει: Γεια σου, το όνομά μου είναι Αλέξης και είμαι 30 ετών.

Μορφοποίηση με f-strings

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

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
π = 3.14159265
formatted_π = f"Τιμή του π: {π:.2f}" # Κρατά μόνο δύο δεκαδικά ψηφία
print(formatted_π) # Εκτυπώνει: Τιμή του π: 3.14
π = 3.14159265 formatted_π = f"Τιμή του π: {π:.2f}" # Κρατά μόνο δύο δεκαδικά ψηφία print(formatted_π) # Εκτυπώνει: Τιμή του π: 3.14
π = 3.14159265
formatted_π = f"Τιμή του π: {π:.2f}"  # Κρατά μόνο δύο δεκαδικά ψηφία
print(formatted_π)  # Εκτυπώνει: Τιμή του π: 3.14

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

Επανάληψη Ελεγχόμενη από Φρουρό (Sentinel-Controlled Iteration) στην Python

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

Παράδειγμα Επίλυσης του Προβλήματος Μέσου Όρου Τάξης με Επανάληψη Ελεγχόμενη από Φρουρό

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

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
# Αρχικοποίηση μεταβλητών
total = 0
count = 0
grade = 0
print("Εισάγετε τους βαθμούς της τάξης (ή -1 για να σταματήσετε):")
# Επανάληψη μέχρι ο χρήστης να εισάγει την τιμή φρουρού (-1)
while grade != -1:
grade = int(input("Βαθμός: "))
if grade != -1:
total += grade
count += 1
# Έλεγχος για διαίρεση με το μηδέν
if count > 0:
average = total / count
print(f"Ο μέσος όρος της τάξης είναι: {average}")
else:
print("Δεν εισήχθησαν βαθμοί.")
# Αρχικοποίηση μεταβλητών total = 0 count = 0 grade = 0 print("Εισάγετε τους βαθμούς της τάξης (ή -1 για να σταματήσετε):") # Επανάληψη μέχρι ο χρήστης να εισάγει την τιμή φρουρού (-1) while grade != -1: grade = int(input("Βαθμός: ")) if grade != -1: total += grade count += 1 # Έλεγχος για διαίρεση με το μηδέν if count > 0: average = total / count print(f"Ο μέσος όρος της τάξης είναι: {average}") else: print("Δεν εισήχθησαν βαθμοί.")
# Αρχικοποίηση μεταβλητών
total = 0
count = 0
grade = 0

print("Εισάγετε τους βαθμούς της τάξης (ή -1 για να σταματήσετε):")

# Επανάληψη μέχρι ο χρήστης να εισάγει την τιμή φρουρού (-1)
while grade != -1:
    grade = int(input("Βαθμός: "))

    if grade != -1:
        total += grade
        count += 1

# Έλεγχος για διαίρεση με το μηδέν
if count > 0:
    average = total / count
    print(f"Ο μέσος όρος της τάξης είναι: {average}")
else:
    print("Δεν εισήχθησαν βαθμοί.")

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

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

Μορφοποίηση του Μέσου Όρου της Τάξης με Δύο Δεκαδικά Ψηφία

Στην Python, μπορείτε να μορφοποιήσετε τον μέσο όρο μιας τάξης ώστε να εμφανίζει δύο δεκαδικά ψηφία, χρησιμοποιώντας είτε τη συνάρτηση format() είτε τις f-strings.

Χρήση της συνάρτησης format()

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
average = 82.56789 # Έστω ότι αυτός είναι ο μέσος όρος
formatted_average = format(average, '.2f')
print("Ο μέσος όρος της τάξης είναι:", formatted_average)
average = 82.56789 # Έστω ότι αυτός είναι ο μέσος όρος formatted_average = format(average, '.2f') print("Ο μέσος όρος της τάξης είναι:", formatted_average)
average = 82.56789  # Έστω ότι αυτός είναι ο μέσος όρος
formatted_average = format(average, '.2f')
print("Ο μέσος όρος της τάξης είναι:", formatted_average)

Εδώ, η συνάρτηση format() μορφοποιεί τον μέσο όρο (average) σε μια συμβολοσειρά με δύο δεκαδικά ψηφία.

Χρήση των f-strings

Οι f-strings είναι ένας άλλος τρόπος για τη μορφοποίηση τιμών στην Python. Για τον μέσο όρο με δύο δεκαδικά ψηφία, μπορείτε να γράψετε:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
average = 82.56789 # Έστω ότι αυτός είναι ο μέσος όρος
print(f"Ο μέσος όρος της τάξης είναι: {average:.2f}")
average = 82.56789 # Έστω ότι αυτός είναι ο μέσος όρος print(f"Ο μέσος όρος της τάξης είναι: {average:.2f}")
average = 82.56789  # Έστω ότι αυτός είναι ο μέσος όρος
print(f"Ο μέσος όρος της τάξης είναι: {average:.2f}")

Η f-string {average:.2f} μορφοποιεί την τιμή του average σε μια συμβολοσειρά με δύο δεκαδικά ψηφία.

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

10 Ιανουαρίου, 2024
top
error: Content is protected !!
Μετάβαση σε γραμμή εργαλείων