costgial Δημοσ. 22 Νοεμβρίου 2017 Δημοσ. 22 Νοεμβρίου 2017 Καλησπέρα παιδιά είμαι νέος στην python. Έχω αρχίσει να διαβάζω ένα βιβλιαράκι για αυτή τη γλώσσα. Επί του θέματος όμως: Αρχικά έγραψα αυτόν τον κώδικα name = input('Πώς σε λένε; ') print('Χάρηκα για τη γνωριμία', name) και μου έβγαλε το εξής σφάλμα: SyntaxError: Non-ASCII character '\xce' in file test.py on line 1, but no encoding declared; see http://python.org/dev/peps/pep-0263/ for details Οκ σύμφωνα με αυτά που έχω διαβάσει μεχρι τώρα αυτό συναίβει, διότι μάλλον δεν υποστηρίζετε unicode. όμως όταν πήγα να γράψω αυτόν τον κώδικα: name = input('pws se lene: ') print('xarika gia ti gnorimia', name) με αφήνει κανονικά η κονσόλα να βάλω τιμή στη μεταβλητή name, αλλά διαπίστωσα ότι αν δε βάλω ως τιμή κάποιο νούμερο, αλλά βάλω κάποια συμβολοσειρά.. μου βγάζει το εξής σφάλμα: Traceback (most recent call last): File "test.py", line 1, in <module> name = input('pws se lene: ') File "<string>", line 1, in <module> NameError: name 'kosta' is not defined Έπαιξα λίγο με τα str κτλπ αλλά δεν κατέληξα πουθενά
Grim Ripper Δημοσ. 22 Νοεμβρίου 2017 Δημοσ. 22 Νοεμβρίου 2017 Στην αρχή θα βάλεις αυτό: #!/usr/bin/env python # -*- coding: utf-8 -*- Για δοκίμασε raw_input αντί για input ώστε να σου διαβάσει τα γράμματα. 1
costgial Δημοσ. 22 Νοεμβρίου 2017 Μέλος Δημοσ. 22 Νοεμβρίου 2017 μου μιλησες κινεζικα αυτη τη στιγμή χαχα. Και αναφέρομαι στο ότι δεν κατάλαβα ούτε την πρώτη παράθεση ούτε το raw_input.Δεν το ανεφερε πουθενα το βιβλιο αυτο. Ισως ηταν και λαθος μου που αντι να ανοιξω το IDLE ανοιξα το τερματικο των ubuntu. Παρεμπιπτόντως, έβαλα αυτό στην αρχή, αλλά δεν άλλαξε. Δοκίμασα και το raw_input και "εστιαξε" το πράγμα. Ποια η διαφορά input και raw_input ; edit: άκυρο, δούλεψε και αυτό που έβαλα στην αρχή, ώστε να μου εμφανίσει τα ελληνικά!!! Θα ήθελα περίπου να καταλάβω τη χρήση του...
Grim Ripper Δημοσ. 22 Νοεμβρίου 2017 Δημοσ. 22 Νοεμβρίου 2017 Ποιο βιβλίο διαβάζεις; Το πρώτο είναι για να μπορέσεις να γράφεις ελληνικά, σε ένα pdf που είχα διαβάσει κάποτε το ανέφερε σαν hack-ια αλλά δεν νομίζω. Το input είναι για αριθμούς, integers. Python 2 μαθαίνεις;
costgial Δημοσ. 22 Νοεμβρίου 2017 Μέλος Δημοσ. 22 Νοεμβρίου 2017 Ξεκινώντας με την python, λέγεται το βιβλίο! python3 μαθαίνω, αλλά για integers το εγραφε καπως ετσι: x = int(input("whats your age" ) 1
Grim Ripper Δημοσ. 22 Νοεμβρίου 2017 Δημοσ. 22 Νοεμβρίου 2017 Μου κάνει εντύπωση διότι όπου έψαξα βρίσκω το input να λειτουργεί με γράμματα, το raw_input δεν υπάρχει πλέον. Να σου πω, το τρέχεις μέσω τερματικού; Το λέω επειδή συνήθως τα linux έχουν και python 2.x και python 3.x οπότε μήπως το τρέχεις με την λάθος έκδοση.
costgial Δημοσ. 22 Νοεμβρίου 2017 Μέλος Δημοσ. 22 Νοεμβρίου 2017 το έτρεχα μέσω τερματικού, ναι. Οπότε μπορεί να οφείλετε εκεί το σφάλμα.Το έτρεξα μέσω τερματικού, γιατί δεν ήξερα πως να τρέξω το script στο IDLE. ΥΓ: για μια στιγμή με φόβησες, γιατί λέω... όπα.. κακό βιβλίο δανείστικα χαχα
Grim Ripper Δημοσ. 22 Νοεμβρίου 2017 Δημοσ. 22 Νοεμβρίου 2017 Νομίζω εκεί που γράφεις τον κώδικα στο IDLE (βασικά όχι στο IDLE ακριβώς) σου έχει να το τρέξει. Μάλλον με το F5 το τρέχει απ'όσο είδα.
SOADNICK Δημοσ. 22 Νοεμβρίου 2017 Δημοσ. 22 Νοεμβρίου 2017 Αν σου ανοιξει το shell πρωτα, δινεις την καθε εντολη και πατας εντερ, μετα πας στην επομενη. Αν σου ανοιξει τον editor, γραφεις ολο τον κωδικα μαζι και πατας F5 οπως λεει και ο grim. 1
costgial Δημοσ. 22 Νοεμβρίου 2017 Μέλος Δημοσ. 22 Νοεμβρίου 2017 Το θέμα ειναι οτι με τον shell δεν μπορεις να φτιάξεις προγράμματακι, θα δοκιμάσω να πατήσω F5. Ευχαριστω για τις απαντήσεις μια τη βοήθεια σας παιδιά!!
Ilias95 Δημοσ. 22 Νοεμβρίου 2017 Δημοσ. 22 Νοεμβρίου 2017 Απ' ότι φάινεται το εκτελείς με python2 και όχι με python3.Στην python2 χρησιμοποιείς raw_input() για να πάρεις input και είναι το αντίστοιχο της input() στην python3.Στην python2 η input() κάνει αυτόματα eval αυτό που θα της δώσεις, οπότε μην την χρησιμοποιείς ποτέ! Η eval όπως θα διαβάσεις παίρνει σαν input ένα string και το κάνει evaluate σαν python expression.Π.χ. >>> eval("4+2") 6 >>> x = 1 >>> eval("x+5") 6 >>> eval("kwstas") Traceback (most recent call last): File "<stdin>", line 1, in <module> File "<string>", line 1, in <module> NameError: name 'kwstas' is not defined >>> Οπότε τώρα μπορείς να καταλάβεις γιατί παίρνεις το παραπάνω σφάλμα.PS.Το # -*- coding: utf-8 -*- μετά το shebang δεν χρειάζεται σε python3 μιας και το default encoding είναι UTF-8 (χρειάζεται όμως σε python2). 1
costgial Δημοσ. 22 Νοεμβρίου 2017 Μέλος Δημοσ. 22 Νοεμβρίου 2017 Ευχαριστώ για τον σύνδεσμο και για την απάντηση!!
Πρέμιουμ Μέλος Δημοσ. 23 Νοεμβρίου 2017 Δημοσ. 23 Νοεμβρίου 2017 python 3 δεν υπάρχει raw_input. μήπως κατέβασες λάθος έκδοση;
costgial Δημοσ. 23 Νοεμβρίου 2017 Μέλος Δημοσ. 23 Νοεμβρίου 2017 Παιδιά έχω ένα θεματάκι στο να κατανοήσω τη μορφοποίηση αριθμών σε εκθετική μορφή. Γενικά, είμαι "καλός" στα μαθηματικά αλλά δεν μπορώ να καταλάβω πως προκύπτουν τα εξής: >>>print(format(12345.6789, 'e')) 1.234568e+04 >>>print(format(12345.6789, '.2e')) 1.23e+04 Πιστεύω πως το παράδειγμα του βιβλίου πρέπει να είναι αισχρό.
k33theod Δημοσ. 23 Νοεμβρίου 2017 Δημοσ. 23 Νοεμβρίου 2017 Γειά χαρά κατ' αρχήν για να είμαστε σίγουροι ότι το έχεις το μαθηματικό κομμάτι Scientific NotationA positive number x is said to be written in scientific notation if it is expressedas follows:x = a * 10^n where 1<= a< 10 and n is an integer Μετά δες το https://docs.python.org/3/library/string.html#formatspec 'e' Exponent notation. Prints the number in scientific notation using the letter ‘e’ to indicate the exponent. The default precision is 6. Έχει δηλαδή default precision 6 όταν δεν του λες κάτι άλλο οπότε στην 1η περίπτωση σου έχει 6 δεκαδικά ενώ στην δεύτερη που ζητάς 2 δίνει 2 αν ζητήσεις 10 δίνει 10 15 15 >>> format(12345.6789, '.10e') '1.2345678900e+04' >>> format(12345.6789, '.15e') '1.234567890000000e+04' και μεταφράζεται 1.234567890000000*10^4 1
Προτεινόμενες αναρτήσεις
Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε
Πρέπει να είστε μέλος για να αφήσετε σχόλιο
Δημιουργία λογαριασμού
Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!
Δημιουργία νέου λογαριασμούΣύνδεση
Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.
Συνδεθείτε τώρα