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

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

Δημοσ.

Φτιάχνω ένα απλό πρόγραμμα με Python. Μετά την πρώτη εντολή print η εντολή elif πατώντας το enter μπαίνει κάτω απο το print και όχι κάτω απο το elif.

Αυτό συνεχίζεται και στην συνέχεια με αποτέλεσμα το πρόγραμμα να έχει την εξής δομή που το καθιστά μη εκτελέσιμο:

x=int(input('Δώστε την τιμή του x :'))
y=int(input('Δώστε την τιμή του y :'))
if x>y:
    print(x,'>',y)
    elif x<y:
        print(x,'<',y)
        else:
            print(x,'=',y)

Πρέπει να το "φέρω" στη παρακάτω μορφή επεμβαίνοντας για να γίνει εκτελέσιμο ξεπερνώντας την λάθος γραφή που οστώσο γίνεται αυτόματα (ενώ δεν θα έπρεπε):

x=int(input('Δώστε την τιμή του x :'))
y=int(input('Δώστε την τιμή του y :'))
if x>y:
    print(x,'>',y)
elif x<y:
    print(x,'<',y)
else:
    print(x,'=',y)

Μπορεί να μου πει κανείς τι συμβαίνει, μπορεί να είναι κάτι πολύ απλό, αλλά είμαι νεος στον προγραμματισμό και δεν βγαζω άκρη.

Ευχαριστώ.

 

Δημοσ.

Όταν πατάς enter ο editor σου μεταφέρει την επόμενη εντολή κάτω από αυτήν που γράφεις εκτός αν ανιχνεύσει σύμβολο όπως το : που του λέει να πάει την επόμενη εντολή ένα tab δεξιά.
Αυτό σωστά στο κάνει μετά την if και την print και την elif αλλά για δώσεις την elif ένα tab πίσω θα πρέπει να πατήσεις backspace για να πας αριστερά γιατί δεν ξέρει μετά το enter τι έχεις σκοπό να γράψεις.

Δημοσ.

Φανταζόμουν σαν default την στοίχιση του elif κατω απο το if, ειδάλλως το πρόγραμμα δεν θα ήταν εκτελέσιμο. Τι θα μπορούσα να γράψω κάτω απο το print?...αφού με αυτό ολοκληρώνω το μπλόκ ενεργειων που αφορούν την αλήθεια του πρώτου if. Ελπίζω η απειρία να μην δυσκολεύει την επικοινωνία  και να λέω πράγματα που σου φαίνονται ως και χαζά. 

Ευχαριστώ για την απάντηση, αν έχεις να προσθέσεις κάτι μετά το σχόλιο μου, ευχαριστώ διπλά!

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

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

21 λεπτά πριν, ilias978 είπε

Τι θα μπορούσα να γράψω κάτω απο το print?

Θα μπορούσες να μηδενίζεις τις x και y ή να βγάζεις άλλο ένα μήνυμα του τύπου... "Ώστε σου αρέσει η x να είναι μεγαλύτερη τις y, έτσι;" ή να στέλνεις την εκτέλεση σε άλλο σημείο του προγράμματος. Επίσης θα έπρεπε να ελέγχεις αν η χ και η y περιέχουν νούμερο ή γράμμα ή τίποτα, ένας απαραίτητος έλεγχος που θα έπρεπε να κάνεις στην αρχή γιατί αν πατήσεις enter χωρίς τιμή τότε τερματίζει το πρόγραμμα με σφάλμα. ;)

Επεξ/σία από micos000
Δημοσ.

Ηλία η python έχει το λεγόμενο indentation (= στοίχιση) που σημαίνει ότι αλλιώς ερμηνεύεται ο κώδικας όταν έχεις μια στοίχιση Α και αλλιώς όταν μια στοίχιση Β. 

Αυτό δε συμβαίνει στις άλλες γλώσσες. 

 

 

Δημοσ.

Βασικά, το indentation χρησιμοποιείται για να κάνει group τις γραμμές του κώδικα στο script. 

Υπολογίζεται ως η απόσταση που έχει ο πρώτος χαρακτήρας από την αρχή της γραμμής και χρησιμοποιούνται indentations που είναι πολλαπλάσια του 8. 

Συμβαίνει σε αρκετές άλλες γλώσσες προγραμματισμού. Π.χ.:

CoffeeScript, Haskell (e.g. where, case), Occam, YAML. 

Παραπάνω πληροφορίες εδώ

56 λεπτά πριν, becoming_I είπε

Ηλία η python έχει το λεγόμενο indentation (= στοίχιση) που σημαίνει ότι αλλιώς ερμηνεύεται ο κώδικας όταν έχεις μια στοίχιση Α και αλλιώς όταν μια στοίχιση Β. 

Αυτό δε συμβαίνει στις άλλες γλώσσες. 

 

Αποκλειστικά για Python, πληροφορίες για το indentation υπάρχουν εδώ για Python 2 και εδώ για Python 3.

Δημοσ.

οταν πατησεις 

if mplampla:  τοτε αυτοματα η παηθον αφηνειθ ενα tab  γιατι παιζει με  αυτο και οχι με αγκυλες. ουσιαστικα για να βγεις εξω απο το if to while ktl  θα πρεπει να σβησεις το tab και να φτιαξεις την στοίχιση.οταν εισαι στο print  δεν καταλαβαινει οτι θελεις να βγεις απο το if  και να πας   στο  elif  αυτο πρεπει να το κανεις εσυ,ειναι ευθυνη δικια σου.

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

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

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

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

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

Σύνδεση

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

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