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

απορία ασκ 25

 
Picture of STEFANOS KOKOTSAKIS
απορία ασκ 25
by STEFANOS KOKOTSAKIS - Monday, 6 November 2017, 9:38 AM
 

Καλημέρα.

Γιατί ο εξής κώδικας βγαίνει σωστός:

def TheSum(n):  ####
 s=0
 for k in range(1,n+1):
   s+=1/k
 return s

ενώ το όταν το return s είναι μέσα στο for loop βγαίνει λάθος;

Ευχαριστώ

Picture of Stauros Komineas
Re: απορία ασκ 25
by Stauros Komineas - Monday, 6 November 2017, 10:00 AM
 

 

Και στις δύο περιπτώσεις ο κώδικας τρέχει, αλλά βγάζει διαφορετικά αποτελέσματα.

Η συνάρτηση τερματίζεται την πρώτη φορά που θα εκτελεστεί η εντολή return. Αν η return είναι μέσα στο for loop τότε το return εκτελείται για k=1 και το αποτέλεσμα της συνάρτησης είναι 1 (ανεξαρτήτως του n).