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

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

Δημοσ.

Καλησπέρα παιδιά είμαι νέος στην  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 κτλπ αλλά δεν κατέληξα πουθενά

 

Δημοσ.

Στην αρχή θα βάλεις αυτό:

#!/usr/bin/env python
# -*- coding: utf-8 -*-

Για δοκίμασε raw_input αντί για input ώστε να σου διαβάσει τα γράμματα.

  • Like 1
Δημοσ.

μου μιλησες κινεζικα αυτη τη στιγμή χαχα. Και αναφέρομαι στο ότι δεν κατάλαβα ούτε την πρώτη παράθεση ούτε το raw_input.
Δεν το ανεφερε  πουθενα το βιβλιο αυτο. Ισως ηταν και λαθος μου που αντι να ανοιξω το IDLE ανοιξα το τερματικο των ubuntu.

 

Παρεμπιπτόντως, έβαλα αυτό στην αρχή, αλλά δεν άλλαξε. Δοκίμασα και το raw_input και "εστιαξε" το πράγμα. Ποια η διαφορά input και raw_input ;

 

editάκυρο, δούλεψε και αυτό που έβαλα στην αρχή, ώστε να μου εμφανίσει τα ελληνικά!!! Θα ήθελα περίπου να καταλάβω τη χρήση του...

Δημοσ.

Ποιο βιβλίο διαβάζεις;

 

Το πρώτο είναι για να μπορέσεις να γράφεις ελληνικά, σε ένα pdf που είχα διαβάσει κάποτε το ανέφερε σαν hack-ια αλλά δεν νομίζω. :P

Το input είναι για αριθμούς, integers.

 

 

Python 2 μαθαίνεις;

Δημοσ.

Ξεκινώντας με την python, λέγεται το βιβλίο!

python3 μαθαίνω, αλλά για integers το εγραφε καπως ετσι: x = int(input("whats your age" )

  • Like 1
Δημοσ.

Μου κάνει εντύπωση διότι όπου έψαξα βρίσκω το input να λειτουργεί με γράμματα, το raw_input δεν υπάρχει πλέον.

 

Να σου πω, το τρέχεις μέσω τερματικού;

Το λέω επειδή συνήθως τα linux έχουν και python 2.x και python 3.x οπότε μήπως το τρέχεις με την λάθος έκδοση.

Δημοσ.

το έτρεχα μέσω τερματικού, ναι. Οπότε μπορεί να οφείλετε εκεί το σφάλμα.
Το έτρεξα μέσω τερματικού, γιατί δεν ήξερα πως να τρέξω το script στο IDLE.

 

ΥΓ: για μια στιγμή με φόβησες, γιατί λέω... όπα.. κακό βιβλίο δανείστικα χαχα

Δημοσ.

Νομίζω εκεί που γράφεις τον κώδικα στο IDLE (βασικά όχι στο IDLE ακριβώς) σου έχει να το τρέξει.

 

Μάλλον με το F5 το τρέχει απ'όσο είδα.

Δημοσ.

Αν σου ανοιξει το shell πρωτα, δινεις την καθε εντολη και πατας εντερ, μετα πας στην επομενη.

Αν σου ανοιξει τον editor, γραφεις ολο τον κωδικα μαζι και πατας F5 οπως λεει και ο grim.

  • Like 1
Δημοσ.

Το θέμα ειναι οτι με τον shell δεν μπορεις να φτιάξεις προγράμματακι, θα δοκιμάσω να πατήσω F5. Ευχαριστω για τις απαντήσεις μια τη βοήθεια σας παιδιά!!

Δημοσ.

Απ' ότι φάινεται το εκτελείς με 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).

  • Like 1
Δημοσ.

Παιδιά έχω ένα θεματάκι στο να κατανοήσω τη μορφοποίηση αριθμών σε εκθετική μορφή. Γενικά, είμαι "καλός" στα μαθηματικά αλλά δεν μπορώ να καταλάβω πως προκύπτουν τα εξής:

>>>print(format(12345.6789, 'e'))
1.234568e+04
>>>print(format(12345.6789, '.2e'))
1.23e+04

Πιστεύω πως το παράδειγμα του βιβλίου πρέπει να είναι αισχρό. 

Δημοσ.

Γειά χαρά

κατ' αρχήν για να είμαστε σίγουροι ότι το έχεις το μαθηματικό κομμάτι

 

Scientific Notation
A positive number x is said to be written in scientific notation if it is expressed
as 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

  • Like 1

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

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

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

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

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

Σύνδεση

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

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