Συζητήσεις για το μάθημα και ανακοινώσεις

prog1:Ασκηση 20

 
Picture of MARINA CHATZIANTONIOU
prog1:Ασκηση 20
by MARINA CHATZIANTONIOU - Monday, 6 November 2017, 1:46 PM
 

f=open("numbers.txt")

L=f.readlines()

result=0

if 1<=N<=len(L):

  for x in L[0:N-1]:

      result += x

else:

  for x in L:

      result += x

f.close()

 

ποιο είναι το λάθος και μου βγάζει σφάλμα;

Picture of Μιχάλης Κολουντζάκης
Re: prog1:Ασκηση 20
by Μιχάλης Κολουντζάκης - Monday, 6 November 2017, 3:17 PM
 

f=open("numbers.txt")

L=f.readlines()

result=0

if 1<=N<=len(L):

  for x in L[0:N-1]:

      result += x

else:

  for x in L:

      result += x

f.close()

Picture of MARINA CHATZIANTONIOU
Re: prog1:Ασκηση 20
by MARINA CHATZIANTONIOU - Monday, 6 November 2017, 4:01 PM
 

Συγγνώμη δεν κατάλαβα ακόμα το λάθος μου. Νομίζω πως το λάθος είναι ότι διαβάζει τα στοιχεία της λίστας ως strings και για αυτό δεν υπολογίζει το άθροισμα. Όμως δεν καταλαβαίνω πως μπορώ να το διορθώσω.

Picture of Μιχάλης Κολουντζάκης
Re: prog1:Ασκηση 20
by Μιχάλης Κολουντζάκης - Monday, 6 November 2017, 4:21 PM
 

Ναι, και αυτό είναι λάθος, αλλά δεν το είδα πριν. Αν έχεις ένα string, το "123.4" για να το κάνεις πραγματικό αριθμό (float) λες απλά:

x = float("123.4")

και η μεταβλητή σου x έχει πάρει τιμή 123.4 (αριθμός, όχι string).

Το λάθος που σου σημείωσα είναι ότι αφήνεις την τελευταία θέση της λίστας χωρίς να την επεξεργαστείς.

Picture of MARINA CHATZIANTONIOU
Re: prog1:Ασκηση 20
by MARINA CHATZIANTONIOU - Monday, 6 November 2017, 4:33 PM
 

ευχαριστώ πολύ!