Παράθεση από: sgsfak στις 12 Ιουν 2025, 09:01:49 ΠΜΗ for πραγματι στην Python δεν ορίζει νεο scope (εμβέλεια) για τις μεταβλητές, και το official documentation λεει ξέκαθαρα "Names in the target list are not deleted when the loop is finished" (οπου "names in target list" ειναι το i στα παραδειγματα που βαλατε πιο πανω).
Με δεδομένο όμως οτι στο συγκεκριμένο θεμα δεν χρησιμοποιείται πουθενα ο "μετρητής" i δεν βλεπω το λογο που θα έπρεπε να κοπούν μονάδες (αλλα ειμαι άσχετος με το μαθημα, και πώς θα έπρεπε να διορθώνονται τα γραπτα...) Π.χ. θα μπορουσε να χρησιμοποιήσει το underscore για δηλώσει οτι δεν μας ενδιαφέρει η τιμή του μετρητη:for _ in range(300): c = input("Κώδικος:") # ...
for _ in range(300):
c = input("Κώδικος:")
# ...
Παράθεση από: tpapo στις 12 Ιουν 2025, 08:19:30 ΠΜΚαταρχας θα παρακαλουσα να μιλας ποιο ευγενικα γιατι με προσβάλεις ,τους χαρακτηρισμους σου στους επιστρεφω ,το τμήμα κώδικα που παρεθεσα με εμφωλευμενες for κανει αυτο ακριβως που ανεφερα ,παρεθεσα και παραδειγμα που το αγνοεις και λες τα δικα σου ,αλλά και την ολοκληρωμενη λύση του θεματος Δ η οποια τρεχει τοσο σε Python 2.7.x όσο και σε Python 3.11.x .αναφερομαι σε αυτο ακριβως στις εμφωλευμενες for και πως αντιμετωπίζονται απο τη Python γεγονός που μου προκάλεσε και μενα εκπληξη αλλά συμβαινει και οχι σε αυτα που παραθετεις εσυ με εντελως ασχετα παραδειγματα,αν έχεις να προσθεσεις κατι σε αυτα που παρεθεσα καλωςΑυτά που έχεις γράψει με bold στο αρχικό σου μήνυμα, δεν ισχύουν, είναι λανθασμένα. Έγραψες
ΠαράθεσηΣτην Python, αν χρησιμοποιείς τον ίδιο δείκτη i σε δύο εμφωλευμένους βρόχους for, δεν θα υπάρξει πρόβλημα, επειδή κάθε βρόχος δημιουργεί το δικό του πεδίο (scope) για τη μεταβλητή i. Η τιμή του i στον εσωτερικό βρόχο δεν επηρεάζει την τιμή του i στον εξωτερικό βρόχο, καθώς η Python χειρίζεται σωστά την εναλλαγή των τιμών κατά την εκτέλεση.
Παράθεση από: evry στις 11 Ιουν 2025, 10:32:59 ΜΜΑς τα πάρουμε ένα ένα.Καταρχας θα παρακαλουσα να μιλας ποιο ευγενικα γιατι με προσβάλεις ,τους χαρακτηρισμους σου στους επιστρεφω ,το τμήμα κώδικα που παρεθεσα με εμφωλευμενες for κανει αυτο ακριβως που ανεφερα ,παρεθεσα και παραδειγμα που το αγνοεις και λες τα δικα σου ,αλλά και την ολοκληρωμενη λύση του θεματος Δ η οποια τρεχει τοσο σε Python 2.7.x όσο και σε Python 3.11.x .αναφερομαι σε αυτο ακριβως στις εμφωλευμενες for και πως αντιμετωπίζονται απο τη Python γεγονός που μου προκάλεσε και μενα εκπληξη αλλά συμβαινει και οχι σε αυτα που παραθετεις εσυ με εντελως ασχετα παραδειγματα,αν έχεις να προσθεσεις κατι σε αυτα που παρεθεσα καλως
Καταρχάς ελπίζω να παραπληροφορείς από άγνοια και όχι σκόπιμα. Όλα αυτά που λες δεν ισχύουν!
Ο μαθητής σου λόγω άγχους έκανε ένα λάθος. Πολλοί μαθητές λόγω άγχους κάνουν λάθος και χάνουν μονάδες.
Ο κώδικας που δίνεις, πέρα από το γεγονός ότι είναι σε Python 3, δεν ξέρω γιατί αφού κάνουμε Python 2, δεν έχει τη λειτουργία που εσύ λες ότι έχει.
Ο εσωτερικός βρόχος μια χαρά επηρεάζει το i του εξωτερικού, Για παράδειγμα το παρακάτω τμήμα κώδικα:Κώδικας: python j = 2025 k = 0 for j in range(10): k = k + j print("j = ", j)
θα εκτυπώσει 9 και όχι 2025 και στην Python 2 και στην Python 3 άρα ο μαθητής σου θα χάσει τις μονάδες που πρέπει να χάσει, γιατί έκανε λάθος.
Ωστόσο ακόμα και αν είχες δίκιο πάλι θα έπρεπε να κόψουν γιατί ο μαθητής δεν το έκανε συνειδητά. Άρα το να πάρει κάποιος μονάδες κατά τύχη είναι ένα θέμα. (Αφήνω στην άκρη το γεγονός ότι μπήκες εδώ για να επηρεάσεις τους βαθμολογητές και επίσης αναρωτήθηκες αν "ξέρουν" Python).
ΥΓ. Οι επαναλήψεις γίνονται κανονικά, και αυτό αξίζει να το διερευνήσει κάποιος γιατί συμβαίνει.
for i in [6,28,496]:
print("πριν ", i)
i = 2025
print("μετά ", i)
print("τελική ", i)
for i in range(5):
print i
i=3
t=iter(range(5))
print next(t)
print next(t)
print next(t)
print next(t)
print next(t)
j = 2025
k = 0
for j in range(10):
k = k + j
print("j = ", j)
Παράθεση από: tpapo στις 11 Ιουν 2025, 07:06:33 ΜΜΝα σχολιάσω κι εγω με τη σειρά μου στο ΘΕΜΑ Δ με αφορμή μαθητή μου .Μαθητής άριστος λοιπον 'έπεσε' να πεθανει γιατί λογω αγχους χρησιμοποιησε τον ιδιο δεικτη - i τόσο στον εξωτερικό όσο και στον εσωτερικό βροχο.Πρέπει να γνωρίζουμε ιδιως όσοι διδασκουν ή βαθμολογουν ότι :for i in range(5):
Στην Python, αν χρησιμοποιείς τον ίδιο δείκτη i σε δύο εμφωλευμένους βρόχους for, δεν θα υπάρξει πρόβλημα, επειδή κάθε βρόχος δημιουργεί το δικό του πεδίο (scope) για τη μεταβλητή i. Η τιμή του i στον εσωτερικό βρόχο δεν επηρεάζει την τιμή του i στον εξωτερικό βρόχο, καθώς η Python χειρίζεται σωστά την εναλλαγή των τιμών κατά την εκτέλεση.