Τα πάντα για την Python

...του ubuntu και έργων ΕΛ/ΛΑΚ (Έργα-Οδηγοί-Προτάσεις)

Συντονιστής: konnn

Re: Τα πάντα για την Python

Δημοσίευσηαπό greatst » 03 Ιουν 2009, 21:12

simosx έγραψε:
DarkLord έγραψε:άρα με την return αποθηκεύουμε μια τιμή στην def hello()


Η εντολή return επιτρέπει σε μια συνάρτηση να επιστρέψει μια τιμή, την οποία δέχετε αυτός που κάλεσε τη συνάρτηση. Δεν είναι υποχρεωτικό να επιτρέφει μια συνάρτηση τιμές.

Οπότε τα παρακάτω είναι ίδια

Κώδικας: Επιλογή όλων
print "Γεια σου κόσμε"

και

def helloworld():
     return "Γεια σου κόσμε"

print helloworld()


Off topic:
Μια φιλική διόρθωση: δέχεται

Ειδικά όσοι ασχολούμαστε με μεταφράσεις πρέπει να προσέχουμε ακόμη περισσότερο την ορθογραφία μας. ;)

ΥΓ: στο έστειλα και με pm χθες αλλά...
προσωπική ιστοσελίδαgreatst in Launchpad

Γνώσεις ⇛ Linux: Όσο ζω μαθαίνω ┃ Προγραμματισμός: Μια χαρά ┃ Αγγλικά: Εξαιρετικά

Mac mini (late 2009) (8GB RAM) με OS X 10.11.6 [και Ubuntu 16.04 Server amd64 και άλλες GNU/Linux εικονικές μηχανές με 2GB RAM, 128MB VRAM+3D_acceleration η κάθε μία].
Άβαταρ μέλους
greatst
seniorTUX
seniorTUX
 
Δημοσιεύσεις: 639
Εγγραφή: 14 Δεκ 2008, 00:41
Τοποθεσία: Κατερίνη
Launchpad: greatst
IRC: greatst
Εκτύπωση

Re: Τα πάντα για την Python

Δημοσίευσηαπό sokoban4ever » 03 Ιουν 2009, 23:02

Off topic:
greatst
Σωστά απλά καμιά φορά συμβαίνουν και λαθάκια .
Ήντα να κάνουμε δηλαδή να σιοτροζαθούμενε οι κουζουλοί ; :lol: :lol:
Σημείωση :
πάντως το addon του firefox για spell checking βοηθάει πολύ ;)
Θέλουμε και μπορούμε να έχουμε μια καλύτερη ζωή και όσο θα ζούμε θα προσπαθούμε να την αποκτήσουμε ακόμα και αν πεθάνουμε προσπαθώντας, και αν κάποια στιγμή λιγίσουμε έχουμε το επίπεδο να πούμε κουράστηκα λίγο να ,να ξαποστάσουμε , ώστε να συνεχίσουμε πάλι δυνατοί ξανά.

Μήνυμα με αγάπη και αληλλεγγύη σε όλους τους ανθρώπους από όλους τους λαούς , ιδίως του Ελληνικού.
Άβαταρ μέλους
sokoban4ever
Επίτιμο μέλος
Επίτιμο μέλος
 
Δημοσιεύσεις: 2331
Εγγραφή: 13 Φεβ 2009, 02:22
Εκτύπωση

Re: Τα πάντα για την Python

Δημοσίευσηαπό simosx » 04 Ιουν 2009, 00:37

Off topic:
Είναι συντακτικό λάθος, οπότε δεν το πιάνει ο έλεγχος ορθογραφίας. Θέλουμε πρόσθετο στο firefox για έλεγχο συντακτικών σφαλμάτων. Πάντα είχα πρόβλημα με την ελληνική γλώσσα :oops:
προσωπικό ιστολόγιο ϗ πλανήτης Ubuntu-gr
Συμβάλετε και εσείς στο ελληνικό βιβλίο Ubuntu!
1 Γνώσεις Linux: Πολύ καλό ┃ Προγραμματισμού: Πολύ καλό ┃ Αγγλικών: Πολύ καλό
2 Ubuntu 13.10 saucy 3.11.0-031100rc1-generic 64bit (el_GR.UTF-8, Unity ubuntu)
3 AMD E-450 APU with Radeon HD Graphics ‖ RAM 3555 MiB ‖ Sony Corporation VAIO
4 AMD nee ATI Wrestler [Radeon HD 6320] [1002:9806] {fglrx_pci}
5 eth0: Atheros Inc. AR8151 v2.0 Gigabit Ethernet [1969:1083] (rev c0) ⋮ wlan0: Atheros Inc. AR9285 [168c:002b] (rev 01)
Φτιάξτε και εσείς τη δική σας υπογραφή (παραπάνω κείμενο) αυτόματα με κλικ εδώ!
simosx
Επίτιμο μέλος
Επίτιμο μέλος
 
Δημοσιεύσεις: 10334
Εγγραφή: 11 Μάιος 2008, 18:52
Launchpad: simosx
IRC: simosx
Εκτύπωση

Re: Τα πάντα για την Python

Δημοσίευσηαπό greatst » 04 Ιουν 2009, 10:09

simosx έγραψε:Off topic:
... Πάντα είχα πρόβλημα με την ελληνική γλώσσα :oops:


Off topic:
Θα το εκλάβω ως αστείο :lol:
προσωπική ιστοσελίδαgreatst in Launchpad

Γνώσεις ⇛ Linux: Όσο ζω μαθαίνω ┃ Προγραμματισμός: Μια χαρά ┃ Αγγλικά: Εξαιρετικά

Mac mini (late 2009) (8GB RAM) με OS X 10.11.6 [και Ubuntu 16.04 Server amd64 και άλλες GNU/Linux εικονικές μηχανές με 2GB RAM, 128MB VRAM+3D_acceleration η κάθε μία].
Άβαταρ μέλους
greatst
seniorTUX
seniorTUX
 
Δημοσιεύσεις: 639
Εγγραφή: 14 Δεκ 2008, 00:41
Τοποθεσία: Κατερίνη
Launchpad: greatst
IRC: greatst
Εκτύπωση

Re: Τα πάντα για την Python

Δημοσίευσηαπό greatst » 06 Ιουν 2009, 13:51

simosx έγραψε:
DarkLord έγραψε:άρα με την return αποθηκεύουμε μια τιμή στην def hello()


Η εντολή return επιτρέπει σε μια συνάρτηση να επιστρέψει μια τιμή, την οποία δέχετε αυτός που κάλεσε τη συνάρτηση. Δεν είναι υποχρεωτικό να επιτρέφει μια συνάρτηση τιμές.

Οπότε τα παρακάτω είναι ίδια

Κώδικας: Επιλογή όλων
print "Γεια σου κόσμε"

και

def helloworld():
     return "Γεια σου κόσμε"

print helloworld()


Off topic:
Με εντυπωσιάζει ότι το λάθος ΔΕΝ διορθώθηκε ακόμα!!! :!:

Άσε που το συγκεκριμένο είναι ΚΑΙ ορθογραφικό λάθος άρα πρέπει να το πιάνει ΚΑΙ ο έλεγχος ορθογραφίας! :!:
προσωπική ιστοσελίδαgreatst in Launchpad

Γνώσεις ⇛ Linux: Όσο ζω μαθαίνω ┃ Προγραμματισμός: Μια χαρά ┃ Αγγλικά: Εξαιρετικά

Mac mini (late 2009) (8GB RAM) με OS X 10.11.6 [και Ubuntu 16.04 Server amd64 και άλλες GNU/Linux εικονικές μηχανές με 2GB RAM, 128MB VRAM+3D_acceleration η κάθε μία].
Άβαταρ μέλους
greatst
seniorTUX
seniorTUX
 
Δημοσιεύσεις: 639
Εγγραφή: 14 Δεκ 2008, 00:41
Τοποθεσία: Κατερίνη
Launchpad: greatst
IRC: greatst
Εκτύπωση

Re: Τα πάντα για την Python

Δημοσίευσηαπό DarkLord » 07 Ιουν 2009, 18:50

Κώδικας: Επιλογή όλων
def menu():
    #print what options you have
    print "Welcome to calculator.py"
    print "your options are:"
    print " "
    print "1) Addition"
    print "2) Subtraction"
    print "3) Multiplication"
    print "4) Division"
    print "5) Quit calculator.py"
    print " "
    return input("Choose your option: ")


το παραπάνω menu είναι απο ένα πρόγραμμα calculator
όπου επιλέγεις μια απο τις παραπάνω πράξεις,
σε περίπτωση που κάποιος δώσει στο input ένα string
δηλαδή μια λέξη, μου βγάζει λάθος γιατί το input δέχεται μόνο
αριθμούς
το ερώτημα είναι πως μπορώ να κάνω την input ώστε να δέχεται
string και μετά να ελέγχο την είσοδο με την εντολή if ??

με την raw_input βλέπει τον αριθμό που του δίνω σαν string
DarkLord
babeTUX
babeTUX
 
Δημοσιεύσεις: 81
Εγγραφή: 24 Ιαν 2009, 15:26
Τοποθεσία: Karvasaras
Εκτύπωση

Re: Τα πάντα για την Python

Δημοσίευσηαπό medigeek » 07 Ιουν 2009, 20:37

το ερώτημα είναι πως μπορώ να κάνω την input ώστε να δέχεται
string και μετά να ελέγχο την είσοδο με την εντολή if ??

Μπορείς να μετατρέψεις αυτό που σου δίνει σε αριθμό με int() ή σε text string με str():

int()
Κώδικας: Επιλογή όλων
$ python3
Python 3.0.1+ (r301:69556, Apr 15 2009, 17:25:52)
[GCC 4.3.3] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> int('1')
1
>>> int(1)
1
>>> int(1.1)
1
>>> int(1.1001)
1
>>> int(1000.002)
1000
>>> int(1000.50)
1000
>>> int(1000.51)
1000


str()
Κώδικας: Επιλογή όλων
>>> str(1)
'1'
>>> str(1.002)
'1.002'
>>> str(10000.502)
'10000.502'
>>> str('mooo')
'mooo'


(ισχύει και για python2.6)
Κύπριος; Κόπιασε στο ubuntu-cy! ┃ Launchpad Debian Github
Οδηγός για νεοεισερχόμενους -- Αρχικές οδηγίες για αρχάριους χρήστες του Ubuntu

1 Γνώσεις Linux: Πολύ καλό ┃ Προγραμματισμού: Πολύ καλό ┃ Αγγλικών: Πολύ καλό
2 Ubuntu 12.10 quantal 3.5.0-21-generic 64bit (en_US.UTF-8, GNOME cinnamon2d), Ubuntu 3.5.0-19-generic, Windows 7
3 Intel Core2 Duo CPU E6550 2.33GHz ‖ RAM 5970 MiB ‖ MSI MS-7235
4 nVidia G73 [GeForce 7300 GT] [10de:0393] {nvidia}
5 eth0: Realtek RTL-8110SC/8169SC Gigabit Ethernet [10ec:8167] (rev 10)
Άβαταρ μέλους
medigeek
Freedom
Freedom
 
Δημοσιεύσεις: 5023
Εγγραφή: 24 Μάιος 2008, 14:49
Τοποθεσία: Σερβία/Κύπρος
Launchpad: medigeek
IRC: savvas
Εκτύπωση

Re: Τα πάντα για την Python

Δημοσίευσηαπό alefteris » 07 Ιουν 2009, 20:43

DarkLord έγραψε:το παραπάνω menu είναι απο ένα πρόγραμμα calculator
όπου επιλέγεις μια απο τις παραπάνω πράξεις,
σε περίπτωση που κάποιος δώσει στο input ένα string
δηλαδή μια λέξη, μου βγάζει λάθος γιατί το input δέχεται μόνο
αριθμούς
το ερώτημα είναι πως μπορώ να κάνω την input ώστε να δέχεται
string και μετά να ελέγχο την είσοδο με την εντολή if ??

με την raw_input βλέπει τον αριθμό που του δίνω σαν string


Ανάλογα με την έκδοση της python που χρησιμοποιείς:

Για python 2.6:

To input() είναι το ίδιο με το eval(raw_input(..)). Δες περισσότερα γράφοντας στον python interpreter: help(input). Αυτό σημαίνει ότι αν ο χρήσης εισάγει ένα string θα χτυπήσει με exception. Οπότε θα ήταν καλύτερα πιστεύω να χρησιμοποιήσεις το raw_input() για το μενού νομίζω. Πχ

Κώδικας: Επιλογή όλων
try:
    selection = raw_input("Choose your option: ").strip()[0]
except (EOFError, KeyboardInterrupt):
    selection = '5'

return selection


Αν θες να επιστρέφεις int αντι για string, μπορείς να το κάνεις ως εξής:

Κώδικας: Επιλογή όλων
try:
    int(selection)
except ValueError:
    print '%s is not a number' % selection


Για python 3:

Το input() έχει αντικαταστήσει το raw_input() και έχει πλέον την ίδια λειτουργία με το τελευταίο, αν δεν κάνω λάθος (από ότι διαβάζω καθώς δεν χρησιμοποιώ python v3).

BTW ο οδηγός που διαβάζεις (http://www.sthurlow.com/python/lesson05/) και αναφέρει το calculator.py έχει γραφεί για python 2.4, οπότε αρκετά πράγματα αλλάζουν σε νεότερες εκδόσεις.

Ίσως κάποιος άλλος να έχει καλύτερη λύση; Πολλές φορές με την python από 5 γραμμές κώδικα καταλήγεις να χρειάζεσαι μόνο 1 τελικά :)
alefteris
babeTUX
babeTUX
 
Δημοσιεύσεις: 99
Εγγραφή: 14 Μάιος 2008, 20:14
Εκτύπωση

Re: Τα πάντα για την Python

Δημοσίευσηαπό DarkLord » 07 Ιουν 2009, 20:53

Ευχαριστώ παιδιά
με βοηθήσατε αρκετά
δεν ήξερα ότι στη v3 έχει αντικατασταθεί το
raw_input


alefteris έγραψε:BTW ο οδηγός που διαβάζεις (http://www.sthurlow.com/python/lesson05/) και αναφέρει το calculator.py έχει γραφεί για python 2.4, οπότε αρκετά πράγματα αλλάζουν σε νεότερες εκδόσεις.


χαχα το κατάλαβες αμέσως
ο οδηγός ήταν αρκετά καλός για έναν νέο χρήστη της python
και γιαυτό είχα ασχοληθεί λίγο
Τελευταία επεξεργασία από DarkLord και 07 Ιουν 2009, 20:59, έχει επεξεργασθεί 1 φορά/ες συνολικά
DarkLord
babeTUX
babeTUX
 
Δημοσιεύσεις: 81
Εγγραφή: 24 Ιαν 2009, 15:26
Τοποθεσία: Karvasaras
Εκτύπωση

Re: Τα πάντα για την Python

Δημοσίευσηαπό medigeek » 07 Ιουν 2009, 20:58

Edit:
Το raw_input στην python2.6 αντικαταστάθηκε από το input στην python3:

python2.6:
Κώδικας: Επιλογή όλων
#!/usr/bin/python2.6
try:
    a = int(raw_input("Enter a number: "))
    print("Number: %s" % (a))
except ValueError:
    print("OOPS: Not a number")


python3:
Κώδικας: Επιλογή όλων
#!/usr/bin/python3
try:
    a = int(input("Enter a number: "))
    print("Number: %s" % (a))
except ValueError:
    print("OOPS: Not a number")


Παράδειγμα:
Κώδικας: Επιλογή όλων
$ python3 moo.py
Enter a number: a
OOPS: Not a number

$ python3 moo.py
Enter a number: 1
Number: 1
Κύπριος; Κόπιασε στο ubuntu-cy! ┃ Launchpad Debian Github
Οδηγός για νεοεισερχόμενους -- Αρχικές οδηγίες για αρχάριους χρήστες του Ubuntu

1 Γνώσεις Linux: Πολύ καλό ┃ Προγραμματισμού: Πολύ καλό ┃ Αγγλικών: Πολύ καλό
2 Ubuntu 12.10 quantal 3.5.0-21-generic 64bit (en_US.UTF-8, GNOME cinnamon2d), Ubuntu 3.5.0-19-generic, Windows 7
3 Intel Core2 Duo CPU E6550 2.33GHz ‖ RAM 5970 MiB ‖ MSI MS-7235
4 nVidia G73 [GeForce 7300 GT] [10de:0393] {nvidia}
5 eth0: Realtek RTL-8110SC/8169SC Gigabit Ethernet [10ec:8167] (rev 10)
Άβαταρ μέλους
medigeek
Freedom
Freedom
 
Δημοσιεύσεις: 5023
Εγγραφή: 24 Μάιος 2008, 14:49
Τοποθεσία: Σερβία/Κύπρος
Launchpad: medigeek
IRC: savvas
Εκτύπωση

ΠροηγούμενηΕπόμενο

  • ΣΧΕΤΙΚΑ ΘΕΜΑΤΑ
    ΑΠΑΝΤΗΣΕΙΣ
    ΠΡΟΒΟΛΕΣ
    ΣΥΓΓΡΑΦΕΑΣ

Επιστροφή στο Ανάπτυξη Λογισμικού / Αλγόριθμοι