ilias978 Δημοσ. 3 Αυγούστου 2018 Δημοσ. 3 Αυγούστου 2018 Φτιάχνω ένα απλό πρόγραμμα με 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) Μπορεί να μου πει κανείς τι συμβαίνει, μπορεί να είναι κάτι πολύ απλό, αλλά είμαι νεος στον προγραμματισμό και δεν βγαζω άκρη. Ευχαριστώ.
micos000 Δημοσ. 3 Αυγούστου 2018 Δημοσ. 3 Αυγούστου 2018 Όταν πατάς enter ο editor σου μεταφέρει την επόμενη εντολή κάτω από αυτήν που γράφεις εκτός αν ανιχνεύσει σύμβολο όπως το : που του λέει να πάει την επόμενη εντολή ένα tab δεξιά. Αυτό σωστά στο κάνει μετά την if και την print και την elif αλλά για δώσεις την elif ένα tab πίσω θα πρέπει να πατήσεις backspace για να πας αριστερά γιατί δεν ξέρει μετά το enter τι έχεις σκοπό να γράψεις.
ilias978 Δημοσ. 3 Αυγούστου 2018 Μέλος Δημοσ. 3 Αυγούστου 2018 Φανταζόμουν σαν default την στοίχιση του elif κατω απο το if, ειδάλλως το πρόγραμμα δεν θα ήταν εκτελέσιμο. Τι θα μπορούσα να γράψω κάτω απο το print?...αφού με αυτό ολοκληρώνω το μπλόκ ενεργειων που αφορούν την αλήθεια του πρώτου if. Ελπίζω η απειρία να μην δυσκολεύει την επικοινωνία και να λέω πράγματα που σου φαίνονται ως και χαζά. Ευχαριστώ για την απάντηση, αν έχεις να προσθέσεις κάτι μετά το σχόλιο μου, ευχαριστώ διπλά!
micos000 Δημοσ. 3 Αυγούστου 2018 Δημοσ. 3 Αυγούστου 2018 (επεξεργασμένο) Δεν είμαι κανένας έμπειρος προγραμματιστής, απλά έχω ασχοληθεί λίγο με διάφορες γλώσσες και το σύστημα αυτό ήταν το ίδιο απ' ότι θυμάμαι. 21 λεπτά πριν, ilias978 είπε Τι θα μπορούσα να γράψω κάτω απο το print? Θα μπορούσες να μηδενίζεις τις x και y ή να βγάζεις άλλο ένα μήνυμα του τύπου... "Ώστε σου αρέσει η x να είναι μεγαλύτερη τις y, έτσι;" ή να στέλνεις την εκτέλεση σε άλλο σημείο του προγράμματος. Επίσης θα έπρεπε να ελέγχεις αν η χ και η y περιέχουν νούμερο ή γράμμα ή τίποτα, ένας απαραίτητος έλεγχος που θα έπρεπε να κάνεις στην αρχή γιατί αν πατήσεις enter χωρίς τιμή τότε τερματίζει το πρόγραμμα με σφάλμα. Επεξ/σία 3 Αυγούστου 2018 από micos000
Fortistis Δημοσ. 3 Αυγούστου 2018 Δημοσ. 3 Αυγούστου 2018 Είναι "πρόβλημα" του editor σου. Βάλε τις σωστές εσοχές χειροκίνητα.
becoming_I Δημοσ. 3 Αυγούστου 2018 Δημοσ. 3 Αυγούστου 2018 Ηλία η python έχει το λεγόμενο indentation (= στοίχιση) που σημαίνει ότι αλλιώς ερμηνεύεται ο κώδικας όταν έχεις μια στοίχιση Α και αλλιώς όταν μια στοίχιση Β. Αυτό δε συμβαίνει στις άλλες γλώσσες.
Fortistis Δημοσ. 3 Αυγούστου 2018 Δημοσ. 3 Αυγούστου 2018 Βασικά, το indentation χρησιμοποιείται για να κάνει group τις γραμμές του κώδικα στο script. Υπολογίζεται ως η απόσταση που έχει ο πρώτος χαρακτήρας από την αρχή της γραμμής και χρησιμοποιούνται indentations που είναι πολλαπλάσια του 8. Συμβαίνει σε αρκετές άλλες γλώσσες προγραμματισμού. Π.χ.: CoffeeScript, Haskell (e.g. where, case), Occam, YAML. Παραπάνω πληροφορίες εδώ. 56 λεπτά πριν, becoming_I είπε Ηλία η python έχει το λεγόμενο indentation (= στοίχιση) που σημαίνει ότι αλλιώς ερμηνεύεται ο κώδικας όταν έχεις μια στοίχιση Α και αλλιώς όταν μια στοίχιση Β. Αυτό δε συμβαίνει στις άλλες γλώσσες. Αποκλειστικά για Python, πληροφορίες για το indentation υπάρχουν εδώ για Python 2 και εδώ για Python 3.
k33theod Δημοσ. 3 Αυγούστου 2018 Δημοσ. 3 Αυγούστου 2018 (επεξεργασμένο) Ωπς τώρα είδα ότι παρόμοια απάντησε και ο micos000 Επεξ/σία 3 Αυγούστου 2018 από k33theod
MitsarasAth Δημοσ. 3 Αυγούστου 2018 Δημοσ. 3 Αυγούστου 2018 οταν πατησεις if mplampla: τοτε αυτοματα η παηθον αφηνειθ ενα tab γιατι παιζει με αυτο και οχι με αγκυλες. ουσιαστικα για να βγεις εξω απο το if to while ktl θα πρεπει να σβησεις το tab και να φτιαξεις την στοίχιση.οταν εισαι στο print δεν καταλαβαινει οτι θελεις να βγεις απο το if και να πας στο elif αυτο πρεπει να το κανεις εσυ,ειναι ευθυνη δικια σου.
Προτεινόμενες αναρτήσεις
Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε
Πρέπει να είστε μέλος για να αφήσετε σχόλιο
Δημιουργία λογαριασμού
Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!
Δημιουργία νέου λογαριασμούΣύνδεση
Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.
Συνδεθείτε τώρα