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

Άσκηση Python


rs16206

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

Δημοσ. (επεξεργασμένο)
Στις 6/4/2020 στις 11:12 ΠΜ, Lanike71 είπε

Η ίδια άσκηση σε 2 θέματα. Εντάξει, αυτό δεν το ξαναείδα στο insomnia.

Ε βέβαια. Η μία έγινε μέλος τη Δευτέρα 12.41, ο άλλος έγινε μέλος τη Δευτέρα 12.50. Πιστεύω ήταν εντελώς συμπτωματικό, δεν εξηγείται αλλιώς !😅

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

  • Απαντ. 38
  • Δημ.
  • Τελ. απάντηση

Συχνή συμμετοχή στο θέμα

Καλησπέρα σ' όλους σας. Μιας και μιλάτε για αρχεία στην python, έχω να ρωτήσω το εξής:

Στην παρακάτω άσκηση:

L =[ ]
for i in range(1,11):
    num = i**2
    L.append(num)

F = open('numbers.txt', 'w')
for item in L:
    F.write(str(item) + ',')
F.close()

F = open('numbers.txt', 'r')
for line in F:
    print(line)

Εκτυπώνονται τα τετράγωνα των αριθμών από 1 έως 10 ως εξής: 1,4,9,16,25,36,49,64,81,100, 

Πως μπορούμε να εκτυπώσουμε σε σειρά, αλλά χωρίς την τελευταία κόμμα μετά το 100?

Ευχαριστώ!

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

Δημοσ. (επεξεργασμένο)
2 ώρες πριν, lektikos είπε

Καλησπέρα σ' όλους σας. Μιας και μιλάτε για αρχεία στην python, έχω να ρωτήσω το εξής:

Στην παρακάτω άσκηση:

L =[ ]
for i in range(1,11):
    num = i**2
    L.append(num)

F = open('numbers.txt', 'w')
for item in L:
    F.write(str(item) + ',')
F.close()

F = open('numbers.txt', 'r')
for line in F:
    print(line)

Εκτυπώνονται τα τετράγωνα των αριθμών από 1 έως 10 ως εξής: 1,4,9,16,25,36,49,64,81,100, 

Πως μπορούμε να εκτυπώσουμε σε σειρά, αλλά χωρίς την τελευταία κόμμα μετά το 100?

Ευχαριστώ!

Λύσ' το πρώτα με τη λογική σου...Ποιό το πρόβλημα; Όλα τα στοιχεία του πίνακα είναι ΟΚ, εκτός του τελευταίου...Άρα;

Επίσης, αν δεν το δεις το πρόβλημα ως ένα-ένα στοιχείο, μπορείς να το δεις συνολικά ως ένα string και αφού ξέρεις ότι έτσι κι αλλιώς θα εμφανιστεί το κόμμα στο τέλος του τελικού string, απλά απάλειψέ το με κάποια μέθοδο substring στην python.

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

2 ώρες πριν, Lanike71 είπε

Λύσ' το πρώτα με τη λογική σου...Ποιό το πρόβλημα; Όλα τα στοιχεία του πίνακα είναι ΟΚ, εκτός του τελευταίου...Άρα;

Επίσης, αν δεν το δεις το πρόβλημα ως ένα-ένα στοιχείο, μπορείς να το δεις συνολικά ως ένα string και αφού ξέρεις ότι έτσι κι αλλιώς θα εμφανιστεί το κόμμα στο τέλος του τελικού string, απλά απάλειψέ το με κάποια μέθοδο substring στην python.

Δεν μπόρεσα να το βρω, τεσπα...

Στις 15/3/2017 στις 10:21 ΜΜ, NikosKallithea είπε

 

 

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

Δημοσ. (επεξεργασμένο)
6 λεπτά πριν, lektikos είπε

Δεν μπόρεσα να το βρω, τεσπα...

Τι να βρεις ακριβώς; Λογική σκέψη θέλει.

1.Πάρε ένα αλφαριθμητικό και διέγραψε τον τελευταίο χαρακτήρα.

2.Έχεις ένα μετρητή για τον πίνακα. Όταν ο μετρητής είναι στο τελευταίο στοιχείο, μη βάζεις κόμμα, αλλιώς βάλε και το κόμμα.

Αν όλο αυτό το έγραψες μόνος σου, δε θα σε δυσκολέψει αυτό που λέω.

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

14 λεπτά πριν, dovecotDev είπε

Είναι μια απλή περίπτωση implode. Σε γλώσσα πύθωνα, είναι η str.join(iterable).


",".join(L)

https://docs.python.org/3/library/stdtypes.html#str.join

Εντάξει, μία μέθοδος της python που δε νομίζω να την έβρισκε (ούτε εγώ την ήξερα, δεν ξέρω python).

Εδώ μιλάμε να μάθει να σκέφτεται κάποιος λογικά και όχι να μάθει απ'  έξω τις μεθόδους-συναρτήσεις.

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

11 λεπτά πριν, Lanike71 είπε

Εντάξει, μία μέθοδος της python που δε νομίζω να την έβρισκε (ούτε εγώ την ήξερα, δεν ξέρω python).

Εδώ μιλάμε να μάθει να σκέφτεται κάποιος λογικά και όχι να μάθει απ'  έξω τις μεθόδους-συναρτήσεις.

Ευχαριστώ και τους δύο σας! Εναλλακτικά, χωρίς τη χρήση της join, υπάρχει άλλος τρόπος?

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

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

Βάλε μια απλή if αμέσως μετά τη for όταν προσπελάζεται το τελευταίο στοιχείο 

if i==L[-1]:

 F.write(str(item))

 

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

2 ώρες πριν, becoming_I είπε

Βάλε μια απλή if αμέσως μετά τη for όταν προσπελάζεται το τελευταίο στοιχείο 


if i==L[-1]:

 F.write(str(item))

Να 'σαι καλά φίλε!! Αυτό ήθελα, σ' ευχαριστώ!

L =[]
for i in range(1,11):
    num = i**2
    L.append(num)
#print(L)

F = open('noumera.txt', 'w')
for item in L:
    if i == L[-1]:
        F.write(str(item)+' , ')
F.close()

F = open('noumera.txt', 'r')
for line in F:
    print(line)
F.close()

Έβαλα την if, αλλά δεν τυπώνει τίποτα...κάνω κάτι λάθος?

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

Δημοσ. (επεξεργασμένο)
24 λεπτά πριν, pmav99 είπε

for item in L:
    if i == L[-1]:

To i τι τιμή έχει; Από ποιο loop την παίρνει;

Κανονικά, η μεταβλητή num, στην οποία εκχωρείται το αποτέλεσμα των τετραγώνων των αριθμών, δεν είναι αυτή που πρέπει να μπει στον έλεγχο της if?

Δηλαδή if num == L[-1]:

                  F.write(str(item)+ ' ')

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

Δημοσ. (επεξεργασμένο)
21 λεπτά πριν, becoming_I είπε

Το i τυχαία το έβαλα εγώ, έπρεπε να βάλω item

Σ' ευχαριστώ. Το είχα δοκιμάσει και 'γω με item == L[-1] αλλά έτσι τυπώνει μόνο ----> 100,

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

1 ώρα πριν, lektikos είπε

Σ' ευχαριστώ. Το είχα δοκιμάσει και 'γω με item == L[-1] αλλά έτσι τυπώνει μόνο ----> 100,

ΟΚ, το βρήκα. Ακολούθησα αυτό που πρότεινε ο Lanike71. Έβαλα τo εξής: 

if  item != L[len-(L)-1]:

   F.write(str(item) +',')   

else:
        F.write(str(item))
F.close()

  και έτρεξε μια χαρά!

 

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

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

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

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

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

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

Σύνδεση

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

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