Python! Λίγη βοήθεια για τα πρώτα βήματα!

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

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

Python! Λίγη βοήθεια για τα πρώτα βήματα!

Δημοσίευσηαπό saviolidis » 29 Απρ 2012, 20:32

Καλησπέρα! Ανοίγω μεγάλο θέμα, με όνομα Python!
Λοιπόν...Είμαι ένας αρχάριος προγραμματιστής, γνώστης Pascal, HTML και ελάχιστη javascript...Στην Pascal αυτά που με έκαναν και έμαθα εύκολα την γλώσσα (τα οποία στο βιβλίο της Python δεν με βοηθάνε να τα κατανοήσω) είναι ότι:
---------------------------------------------------------------------------------

Ο βασικός κώδικας που έγραφα ώστε να ξεκινήσω το πρόγραμμα μου ήταν:

program όνομα;
uses crt;
var
begin
end.

Ερώτηση: Στην Python πως είναι;
---------------------------------------------------------------------------------

Οι μεταβλητές που έμαθα ήταν οι εξής:
Ακέραιος (Integer)
Πραγματικός (Real)
Λογικός (Boolean)
Συμβολοσειρά (String)
Χαρακτήρας (Char)

και ήξερα ότι τις δήλωνα μετά το var και πριν το begin...
Ερώτηση: Στην Python ποιες είναι και που και πως δηλώνονται;
---------------------------------------------------------------------------------

Στην Pascal ήξερα ότι η if, η case of, η Repeat, η While και η for είχαν κάποιες βασικές μορφές (εύκολες) και είχαν (ανάλογα τις εντολές) ένα begin και ένα end...

Ερώτηση: Στην Python πως συντάζεται ο κώδικας;
---------------------------------------------------------------------------------
Γενικά έχω μπερδευτεί με την σύνταξη και δεν βγάζω εύκολα άκρη...Χρειάζομαι μία βοήθεια ίσα για να ξεκινήσω από απλά προγράμματα του τύπου: "Υπολογισμός μέσου όρου" κλπ...Μπορεί κανείς να με βοηθήσει; Θα του είμαι υπόχρεως! Ευχαριστώ για το όποιο χρόνο σας!
Το email μου είναι: saviolidis.m.sfn@gmail.com
1 Γνώσεις → Linux: Μέτριος ┃ Προγραμματισμός: Pascal ┃ Αγγλικά: Προχωρημένος
2 Λειτουργικό → Ubuntu 11.10 Oneiric Ocelot (Gnome Shell) 32-bit (en_US.utf8)
3 Προδιαγραφές → CPU: 2x Intel Atom CPU N450 1.66GHz ‖ RAM 965 MiB ‖ Hewlett-Packard 3660 - Hewlett-Packard HP Mini 210-1000
4 Κάρτες γραφικών: Intel N10 Family Integrated Graphics Controller ⎨8086:a011⎬
Η ιστοσελίδα μου: http://www.hiphopistas.weebly.com
Άβαταρ μέλους
saviolidis
punkTUX
punkTUX
 
Δημοσιεύσεις: 225
Εγγραφή: 16 Μαρ 2011, 00:11
Τοποθεσία: Σίφνος
IRC: Savio
Εκτύπωση

Re: Python! Λίγη βοήθεια για τα πρώτα βήματα!

Δημοσίευσηαπό evolgen » 29 Απρ 2012, 20:36

Μεταφέρθηκε στην κατάλληλη ενότητα

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

Γνώσεις Linux: Μέτριο++ ┃ Προγραμματισμός: Perl, R, Python, SQL, C, Common Lisp, BashΑγγλικά: Άριστα

1. Ubuntu 14.04 trusty
2. Intel Core i7-3520M CPU @ 2.90GHz ‖ RAM 7892 MiB
3. Intel 3rd Gen Core processor Graphics Controller [8086:0166] {i915}
4. eth0: Broadcom NetXtreme BCM57765 Gigabit Ethernet PCIe [14e4:16b4] (rev 10) ⋮ eth1: Broadcom BCM4331 802.11a/b/g/n [14e4:4331] (rev 02)
Άβαταρ μέλους
evolgen
daemonTUX
daemonTUX
 
Δημοσιεύσεις: 1031
Εγγραφή: 28 Ιούλ 2010, 14:22
Τοποθεσία: UK
IRC: bioevolgenec
Εκτύπωση

Re: Python! Λίγη βοήθεια για τα πρώτα βήματα!

Δημοσίευσηαπό Ilias95 » 29 Απρ 2012, 20:57

Η python σου δίνει περισσότερη ελευθερία.
Δεν χρειάζεται να έχεις κάποια συγκεκριμένη δομή όπως αυτή που περιέγραψες παραπάνω.
Ούτε χρειάζεται να δηλώνεις τον τύπο κάθε μεταβλητής όταν την αρχικοποιείς.

Επίσης χρησιμοποιείς την κατάλληλη στοίχιση για να δείξεις που αρχίζει και που τελειώνει ένα statement.
Δεν χρειάζεσαι κάποια εντολή (πχ. end), braces ή κάτι άλλο.
Πχ. ένα παράδειγμα:

Μορφοποιημένος Κώδικας: Επιλογή όλων
a = 5

if a > 3:
print("Wow! a is greater than 5")
else:
print("a is less than 5")


Γιατί δεν ξεκινάς με κάποιο βιβλίο;
Δες στα μαθήματα που υπάρχουν στο forum.
Το βιβλίο είναι καλό για κάποιον αρχάριο. (Αν και βλέπω ότι αυτή τη στιγμή έχει πέσει η σελίδα).

Ακόμα, για οποιαδήποτε απορία σχετικά με την python μπορείς να ρωτήσεις εδώ: viewtopic.php?f=6&t=5094#p49124
Ilias95
saintTUX
saintTUX
 
Δημοσιεύσεις: 1548
Εγγραφή: 29 Απρ 2011, 23:26
Εκτύπωση

Re: Python! Λίγη βοήθεια για τα πρώτα βήματα!

Δημοσίευσηαπό Ilias95 » 29 Απρ 2012, 21:17

saviolidis έγραψε:Χρειάζομαι μία βοήθεια ίσα για να ξεκινήσω από απλά προγράμματα του τύπου: "Υπολογισμός μέσου όρου"

Ορίστε ένα πρόγραμμα σε python3 που υπολογίζει τον μέσο όρο όσων ακεραίων του δώσεις:

Μορφοποιημένος Κώδικας: Επιλογή όλων
#!/usr/bin/python3

def average(_list):
"""Returns the average number of a list of integers"""
return sum(_list) / len(_list)

int_list = []

while True:
num = input("Give me an integer (0 to exit): ")
try:
num = int(num)
except ValueError:
# if num is not an integer
print("{0} is not an integer".format(num))
continue

if not num:
if int_list:
print("\nThe average is: {0}".format(average(int_list)))
else:
print("\nYou didn't enter any numbers.")
break

int_list.append(num)
Ilias95
saintTUX
saintTUX
 
Δημοσιεύσεις: 1548
Εγγραφή: 29 Απρ 2011, 23:26
Εκτύπωση

Re: Python! Λίγη βοήθεια για τα πρώτα βήματα!

Δημοσίευσηαπό saviolidis » 30 Απρ 2012, 09:48

Οκ αρχίζω να πιάνω κάτι. Απλά κάτι που με μπερδεύει επίσης είναι οι εντολές...
Στην Pascal ξέρω την write, writeln, read, readln. Στην Python ξέρω μόνο την print. Επίσης στην Pascal όταν ήθελα να εμφανίσω κάποια μεταβλητή έγραφα:
Κώδικας: Επιλογή όλων

var a : String;
begin
a:=Something;
writeln(something);
end.

ενώ στο βιβλίο της Python η εμφάνιση κάποιας μεταβλητής είναι τελείος διαφορετική...π.χ.
Κώδικας: Επιλογή όλων

a = 5
print('I am {0} years old'.format(a))

Ή κάπως έτσι τέλος πάντων...Πφφ...Τα μπερδεύω...
1 Γνώσεις → Linux: Μέτριος ┃ Προγραμματισμός: Pascal ┃ Αγγλικά: Προχωρημένος
2 Λειτουργικό → Ubuntu 11.10 Oneiric Ocelot (Gnome Shell) 32-bit (en_US.utf8)
3 Προδιαγραφές → CPU: 2x Intel Atom CPU N450 1.66GHz ‖ RAM 965 MiB ‖ Hewlett-Packard 3660 - Hewlett-Packard HP Mini 210-1000
4 Κάρτες γραφικών: Intel N10 Family Integrated Graphics Controller ⎨8086:a011⎬
Η ιστοσελίδα μου: http://www.hiphopistas.weebly.com
Άβαταρ μέλους
saviolidis
punkTUX
punkTUX
 
Δημοσιεύσεις: 225
Εγγραφή: 16 Μαρ 2011, 00:11
Τοποθεσία: Σίφνος
IRC: Savio
Εκτύπωση

Re: Python! Λίγη βοήθεια για τα πρώτα βήματα!

Δημοσίευσηαπό Ilias95 » 30 Απρ 2012, 14:34

Μπορείς να το κάνεις με παραπάνω από έναν τρόπους:
Κώδικας: Επιλογή όλων
ilias@ilias-pc:~$ python3
Python 3.2.2 (default, Sep 5 2011, 22:09:30)
[GCC 4.6.1] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> _str = "love"
>>> print("I {0} python".format(_str))
I love python
>>> print("I %s python" % _str)
I love python
>>> print("I " + _str + " python")
I love python
>>> print("I", _str, "python")
I love python
>>>

Επαναλαμβάνω την προτροπή μου. Ξεκίνα με κάποιο βιβλίο/tutorial για να μάθεις τα βασικά της γλώσσας.
Πως αλλιώς θα μάθεις τις εντολές, την σύνταξη και τα σχετικά;

Edit: Ξαναδιάβασα προσεκτικά το πρώτο σου post και είδα ότι όντως ξεκίνησες με κάποιο βιβλίο (μου είχε ξεφύγει).
Οπότε μπορείς να δεις από εκεί τις εντολές και πως να τις χρησιμοποιήσεις.
Ilias95
saintTUX
saintTUX
 
Δημοσιεύσεις: 1548
Εγγραφή: 29 Απρ 2011, 23:26
Εκτύπωση

Re: Python! Λίγη βοήθεια για τα πρώτα βήματα!

Δημοσίευσηαπό saviolidis » 01 Μάιος 2012, 18:51

Μάλλον δεν μπορώ να την μάθω εύκολα διότι είναι διαφορετική από την Pascal...θα προσπαθώ όμως μέχρι να την μάθω τέλεια.
1 Γνώσεις → Linux: Μέτριος ┃ Προγραμματισμός: Pascal ┃ Αγγλικά: Προχωρημένος
2 Λειτουργικό → Ubuntu 11.10 Oneiric Ocelot (Gnome Shell) 32-bit (en_US.utf8)
3 Προδιαγραφές → CPU: 2x Intel Atom CPU N450 1.66GHz ‖ RAM 965 MiB ‖ Hewlett-Packard 3660 - Hewlett-Packard HP Mini 210-1000
4 Κάρτες γραφικών: Intel N10 Family Integrated Graphics Controller ⎨8086:a011⎬
Η ιστοσελίδα μου: http://www.hiphopistas.weebly.com
Άβαταρ μέλους
saviolidis
punkTUX
punkTUX
 
Δημοσιεύσεις: 225
Εγγραφή: 16 Μαρ 2011, 00:11
Τοποθεσία: Σίφνος
IRC: Savio
Εκτύπωση

Re: Python! Λίγη βοήθεια για τα πρώτα βήματα!

Δημοσίευσηαπό saviolidis » 01 Μάιος 2012, 21:49

Παιδιά λόγω βοήθειας από τον φίλο μου τον Δήμο και συντονιστή μας κατάφερα να καταλάβω τα πολύ βασικά της γλώσσας και έτσι έφτιαξα το πρώτο μου πλήρες πρόγραμμα υπολογισμού μέσου όρου με έλεγχο εγκυρότητας! Δείτε το:
Κώδικας: Επιλογή όλων
#!/usr/bin/python3
# Made by Saviolidis
sum = 0
b = int(input('Δώσε αριθμό μαθημάτων: '))
while b<=0:
b = int(input('Λάθος! Δώσε αριθμό μαθημάτων: '))
for i in range(1, b+1):
a = int(input('Δώσε βαθμό: '))
while a<=0 or a>20:
a = int(input('Λάθος! Δώσε βαθμό: '))
sum = sum+a
mo = sum/b
print('Ο μέσος όρος των μαθημάτων είναι: ',mo)
print('Τέλος')
1 Γνώσεις → Linux: Μέτριος ┃ Προγραμματισμός: Pascal ┃ Αγγλικά: Προχωρημένος
2 Λειτουργικό → Ubuntu 11.10 Oneiric Ocelot (Gnome Shell) 32-bit (en_US.utf8)
3 Προδιαγραφές → CPU: 2x Intel Atom CPU N450 1.66GHz ‖ RAM 965 MiB ‖ Hewlett-Packard 3660 - Hewlett-Packard HP Mini 210-1000
4 Κάρτες γραφικών: Intel N10 Family Integrated Graphics Controller ⎨8086:a011⎬
Η ιστοσελίδα μου: http://www.hiphopistas.weebly.com
Άβαταρ μέλους
saviolidis
punkTUX
punkTUX
 
Δημοσιεύσεις: 225
Εγγραφή: 16 Μαρ 2011, 00:11
Τοποθεσία: Σίφνος
IRC: Savio
Εκτύπωση

Re: Python! Λίγη βοήθεια για τα πρώτα βήματα!

Δημοσίευσηαπό Ilias95 » 01 Μάιος 2012, 22:08

Έχε υπόψιν σου ότι εκεί που ζητάς αριθμό μαθημάτων ή τον βαθμό αν ο χρήστης δεν δώσει κάποιον αριθμό το πρόγραμμα θα κρασάρει.

Κώδικας: Επιλογή όλων
>>> b = int(input('Δώσε αριθμό μαθημάτων: '))
Δώσε αριθμό μαθημάτων: δεν σου δίνω
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ValueError: invalid literal for int() with base 10: 'δεν σου δίνω'
>>>

Αυτό συμβαίνει γιατί προσπαθείς να μετατρέψεις ένα string σε integer πράγμα που δεν είναι δυνατό όλες τις φορές (ανάλογα με την είσοδο).
Αν δεν μπορεί να μετατραπέι το string σε integer θα πάρεις ValueError.

Για να το αντιμετωπίσεις αυτό χρειάζεται να κάνεις exceptions handling (χειρισμό εξαιρέσεων).
Ένα παράδειγμα:

Κώδικας: Επιλογή όλων
try:
a = int(input("Give me an integer: "))
print("Your integer is:", a)
except ValueError:
print("Invalid input")
Ilias95
saintTUX
saintTUX
 
Δημοσιεύσεις: 1548
Εγγραφή: 29 Απρ 2011, 23:26
Εκτύπωση

Re: Python! Λίγη βοήθεια για τα πρώτα βήματα!

Δημοσίευσηαπό saviolidis » 02 Μάιος 2012, 09:22

Ilias95 έγραψε:Έχε υπόψιν σου ότι εκεί που ζητάς αριθμό μαθημάτων ή τον βαθμό αν ο χρήστης δεν δώσει κάποιον αριθμό το πρόγραμμα θα κρασάρει.

Κώδικας: Επιλογή όλων
>>> b = int(input('Δώσε αριθμό μαθημάτων: '))
Δώσε αριθμό μαθημάτων: δεν σου δίνω
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ValueError: invalid literal for int() with base 10: 'δεν σου δίνω'
>>>

Αυτό συμβαίνει γιατί προσπαθείς να μετατρέψεις ένα string σε integer πράγμα που δεν είναι δυνατό όλες τις φορές (ανάλογα με την είσοδο).
Αν δεν μπορεί να μετατραπέι το string σε integer θα πάρεις ValueError.

Για να το αντιμετωπίσεις αυτό χρειάζεται να κάνεις exceptions handling (χειρισμό εξαιρέσεων).
Ένα παράδειγμα:

Κώδικας: Επιλογή όλων
try:
a = int(input("Give me an integer: "))
print("Your integer is:", a)
except ValueError:
print("Invalid input")


Οκ και έψαχνα κάτι τέτοιο! Ευχαριστώ!
1 Γνώσεις → Linux: Μέτριος ┃ Προγραμματισμός: Pascal ┃ Αγγλικά: Προχωρημένος
2 Λειτουργικό → Ubuntu 11.10 Oneiric Ocelot (Gnome Shell) 32-bit (en_US.utf8)
3 Προδιαγραφές → CPU: 2x Intel Atom CPU N450 1.66GHz ‖ RAM 965 MiB ‖ Hewlett-Packard 3660 - Hewlett-Packard HP Mini 210-1000
4 Κάρτες γραφικών: Intel N10 Family Integrated Graphics Controller ⎨8086:a011⎬
Η ιστοσελίδα μου: http://www.hiphopistas.weebly.com
Άβαταρ μέλους
saviolidis
punkTUX
punkTUX
 
Δημοσιεύσεις: 225
Εγγραφή: 16 Μαρ 2011, 00:11
Τοποθεσία: Σίφνος
IRC: Savio
Εκτύπωση

Επόμενο

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