Μάθημα 1 - Τα βασικά

...ασύγχρονα μαθήματα python

Re: Μάθημα 1 - Τα βασικά

Δημοσίευσηαπό malos » 18 Ιουν 2009, 04:53

sokoban4ever έγραψε:@malos

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




Ας πούμε πχ .... το menu.lst ή οι ντιρεκτίβες (λέξη κι αυτή ε ; :D ) στο vsftpd.conf είναι ψευδοκώδικας ; Το σκέφτηκα έτσι με τη λογική ότι τα εν λόγω αρχεία ρυθμίσεων είναι .... '"προγράμματα " . Δεν είναι ; Αφού ορίζουν μία προγραμματισμένη διαδικασία και από πίσω βρίσκεται ο κώδικας μιας γλώσσας.

title τάδε
timeout τόσο
splashimage ετούτη

.. ότι τα πράσινα είναι μεταβλητές που έχουν δοθεί-οριστεί από πίσω σε C ή σε python ή ότι θέλεις.

Ε ;

Υ.Γ. Με έχουν σκίσει τα κωλοκούνουπα :lol:
Επεξεργαστής: AMD Ryzen 9 5900x
Μνήμη Gskill 16gb (2X8gb), 3200 mh, CL 14
Μητρική: Asrock X570 phantom gaming X
Τροφοδοτικό: Corsair 850 platinum
Δίσκος: SSD Corsair MP600 (1 TB)
Άβαταρ μέλους
malos
saintTUX
saintTUX
 
Δημοσιεύσεις: 1230
Εγγραφή: 02 Νοέμ 2008, 12:00
Εκτύπωση

Re: Μάθημα 1 - Τα βασικά

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

malos έγραψε:
Ας πούμε πχ .... το menu.lst ή οι ντιρεκτίβες (λέξη κι αυτή ε ; :D ) στο vsftpd.conf είναι ψευδοκώδικας ;

Όχι, ο ψευδοκώδικας είναι κώδικας σε λογική μορφή, σε μορφή που σχεδόν οποιοσδηποτε μπορει να κατανοησει τι γραφεις. Μπορεις και σε ελληνικά π.χ.
Κώδικας: Επιλογή όλων
ΘΕΣΕ ΠΑΡΑΔΕΙΓΜΑ = 1
ΑΝ ΠΑΡΑΔΕΙΓΜΑ ΙΣΟΥΤΑΙ 1:
    ΕΚΤΥΠΩΣΕ "Η ΤΙΜΗ ΤΟΥ ΠΑΡΑΔΕΙΓΜΑΤΟΣ: " + ΠΑΡΑΔΕΙΓΜΑ


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

Κώδικας: Επιλογή όλων
#!/usr/bin/python3
paradeigma = 1
if paradeigma == 1:
    print("Η ΤΙΜΗ ΤΟΥ ΠΑΡΑΔΕΙΓΜΑΤΟΣ: " + paradeigma)


malos έγραψε:title τάδε
timeout τόσο
splashimage ετούτη

.. ότι τα πράσινα είναι μεταβλητές που έχουν δοθεί-οριστεί από πίσω σε C ή σε python ή ότι θέλεις.

Ναι ειναι μεταβλητες, αλλα αυτά τα αρχεία λέγονται "configuration files" (αρχεία ρυθμίσεων, αρχεία που περιέχουν ρυθμίσεις για κάτι).
Κύπριος; Κόπιασε στο 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: Μάθημα 1 - Τα βασικά

Δημοσίευσηαπό malos » 18 Ιουν 2009, 10:57

γηράσκω αεί διδασκόμενος ;)

Σ' ευχαριστώ !
Επεξεργαστής: AMD Ryzen 9 5900x
Μνήμη Gskill 16gb (2X8gb), 3200 mh, CL 14
Μητρική: Asrock X570 phantom gaming X
Τροφοδοτικό: Corsair 850 platinum
Δίσκος: SSD Corsair MP600 (1 TB)
Άβαταρ μέλους
malos
saintTUX
saintTUX
 
Δημοσιεύσεις: 1230
Εγγραφή: 02 Νοέμ 2008, 12:00
Εκτύπωση

Re: Μάθημα 1 - Τα βασικά (Μια ερωτησούλα καλέ !!!!)

Δημοσίευσηαπό malos » 30 Ιουν 2009, 22:20

Παιδιά με σχωρνάτε που το φέρνω πάνω πάνω αυτό το τόπικ αλλά ......
θυμίστε μου λίγο πως γίνεται η μέθοδος print() να μου δώσει στην έξοδο , τα περιεχόμενα χωρίς κενό ;

Κώδικας: Επιλογή όλων
>>>a=8
>>>q=9
print ('(a=', a, ') +', '(q=', q,')= ', a+q)


ή έξοδος είναι :

Κώδικας: Επιλογή όλων
(a= 8 ) + (q= 9 )=  17


βλέπετε που έγραψε το 8, το 9 και το 17 ;
Επεξεργαστής: AMD Ryzen 9 5900x
Μνήμη Gskill 16gb (2X8gb), 3200 mh, CL 14
Μητρική: Asrock X570 phantom gaming X
Τροφοδοτικό: Corsair 850 platinum
Δίσκος: SSD Corsair MP600 (1 TB)
Άβαταρ μέλους
malos
saintTUX
saintTUX
 
Δημοσιεύσεις: 1230
Εγγραφή: 02 Νοέμ 2008, 12:00
Εκτύπωση

Re: Μάθημα 1 - Τα βασικά

Δημοσίευσηαπό medigeek » 30 Ιουν 2009, 22:34

Δεν ενοχλείς, τα θέματα δεν κλειδώθηκαν γι' αυτό το σκοπό, όποιος θέλει ρωτάει :mrgreen:

Όμως δεν κατάλαβα καλά τι ζητάς.. "χωρίς κενό" :(

Μήπως αυτό:
Κώδικας: Επιλογή όλων
print("(a={0}) + (q={1}) = {2}".format(a, q, a+q))
print("(a=%s) + (q=%s) = %s" % (a, q, a+q))

#Είτε ως digits (%d) μιας τα a, q, a+q είναι αριθμοί
print("(a=%d) + (q=%d) = %d" % (a, q, a+q))


(Αναφέρεται στις απαντήσεις των ασκήσεων του μαθήματος 1: http://files.ubuntu-gr.org/learning/pyt ... s.html#id8 - Ερώτηση 3 ;) )

Ανανέωση:
Yπάρχει ακόμη ένας τρόπος, αλλά χρειάζεσαι str() για τους αριθμούς:

Κώδικας: Επιλογή όλων
>>> a=8
>>> q=9
>>> print ('(a=' + a + ') +', '(q=' + q + ')= ' + int(a+q))
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: Can't convert 'int' object to str implicitly
>>> print ('(a=' + a + ') +', '(q=' + q + ')= ' + str(a+q))
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: Can't convert 'int' object to str implicitly
>>> print ('(a=' + str(a) + ') +', '(q=' + str(q) + ')= ' + str(a+q))
(a=8) + (q=9)= 17
Κύπριος; Κόπιασε στο 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: Μάθημα 1 - Τα βασικά

Δημοσίευσηαπό malos » 30 Ιουν 2009, 22:56

Τέλεια ! Τρεις διαφορετικοί τρόποι! Βρίσκω πως με τα %s είναι ότι πιο απλό ! :thumbup:

"Χωρίς κενό" εννοώ αυτά τα αποτελέσματα που έδωσαν οι δικές σου γραμμές. Ενώ οι δικές μου έδωσαν (a=[κενό] 8) .

Το δικό μου δεν διορθώνεται με καμιά πλάγια κάθετο ; :D
Επεξεργαστής: AMD Ryzen 9 5900x
Μνήμη Gskill 16gb (2X8gb), 3200 mh, CL 14
Μητρική: Asrock X570 phantom gaming X
Τροφοδοτικό: Corsair 850 platinum
Δίσκος: SSD Corsair MP600 (1 TB)
Άβαταρ μέλους
malos
saintTUX
saintTUX
 
Δημοσιεύσεις: 1230
Εγγραφή: 02 Νοέμ 2008, 12:00
Εκτύπωση

Re: Μάθημα 1 - Τα βασικά

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

@malos
Κοίταξε εδώ
http://docs.python.org/3.1/library/functions.html#print
η συνάρτηση print παίρνει μερικούς keyword arguements όπως το end και το sep (seperator)
print([object, ...], *, sep=' ', end='\n', file=sys.stdout)

αν βάλεις sep='' είσαι ok
οπότε :
Κώδικας: Επιλογή όλων
>>> a=8
>>> q=9
print ('(a=', a, ') + ', '(q=', q,')= ', a+q,sep='')

και θα σου βγάλει
(a=8) + (q=9)= 17
Θέλουμε και μπορούμε να έχουμε μια καλύτερη ζωή και όσο θα ζούμε θα προσπαθούμε να την αποκτήσουμε ακόμα και αν πεθάνουμε προσπαθώντας, και αν κάποια στιγμή λιγίσουμε έχουμε το επίπεδο να πούμε κουράστηκα λίγο να ,να ξαποστάσουμε , ώστε να συνεχίσουμε πάλι δυνατοί ξανά.

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

Re: Μάθημα 1 - Τα βασικά

Δημοσίευσηαπό medigeek » 01 Ιούλ 2009, 00:48

sokoban4ever έγραψε:αν βάλεις sep='' είσαι ok


Εδώ μια μικρή σημείωση :)

to sep="" (και το end="") δεν υποστηρίζεται σε python 2.x!! Οι τρόποι που ανέφερα προηγουμένως είναι συμβατοί με python3.0 και python2.6



Κώδικας: Επιλογή όλων
$ python
Python 2.6.2 (release26-maint, Apr 19 2009, 01:58:18)
[GCC 4.3.3] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> a=8
>>> q=9
>>> print ('(a=', a, ') + ', '(q=', q,')= ', a+q,sep='')
  File "<stdin>", line 1
    print ('(a=', a, ') + ', '(q=', q,')= ', a+q,sep='')
                                                    ^
SyntaxError: invalid syntax

>>> print("(a={0}) + (q={1}) = {2}".format(a, q, a+q))
(a=8) + (q=9) = 17
>>> print("(a=%s) + (q=%s) = %s" % (a, q, a+q))
(a=8) + (q=9) = 17
>>> print("(a=%d) + (q=%d) = %d" % (a, q, a+q))
(a=8) + (q=9) = 17



Ανανέωση:

Για python 2.6, υπάρχει τρόπος να χρησιμοποιήσετε το print που ανέφερε ο sokoban4ever χρησιμοποιώντας ένα module: from __future__ import print_function



Κώδικας: Επιλογή όλων
    Python 2.6.2 (release26-maint, Apr 19 2009, 01:56:41)
    [GCC 4.3.3] on linux2
    Type "help", "copyright", "credits" or "license" for more information.
    >>> from __future__ import print_function
    >>> a=8
    >>> q=9
    >>> print ('(a=', a, ') + ', '(q=', q,')= ', a+q,sep='')
    (a=8) + (q=9)= 17


Ευχαριστώ sokoban :mrgreen:
Κύπριος; Κόπιασε στο 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: Μάθημα 1 - Τα βασικά

Δημοσίευσηαπό gilux » 17 Ιούλ 2009, 13:09

Σε περίπτωση που θέλουμε να αλλάξουμε το σημείο αποθήκευσης, τί αλλαγές πρέπει να κάνουμε στον κώδικα ώστε να λειτουργεί? Προσπάθησα να το αποθηκεύσω πχ στο desktop και μου έβγαλε σφάλμα ότι δε βρέθηκε η διαδρομή.
Γνώσεις ⇛ Linux: Χαμηλό ┃ Προγραμματισμός: Όχι ┃ Αγγλικά: Καλά
Λειτουργικό ⇛ Ubuntu 10.10 64bit σε hp pavilion dv6500(laptop)
Προδιαγραφές ⇛ AMD turion 64x2 │ 2GB ram │ NVIDIA GeForce 8400M GS
gilux
babeTUX
babeTUX
 
Δημοσιεύσεις: 100
Εγγραφή: 28 Ιουν 2009, 22:50
Εκτύπωση

Re: Μάθημα 1 - Τα βασικά

Δημοσίευσηαπό medigeek » 17 Ιούλ 2009, 17:15

@gilux
Μπορείς να είσαι πιο αναλυτικός;
Έχεις διαβάσει το Μάθημα 0; http://files.ubuntu-gr.org/learning/pyt ... intro.html

Σε ποιο πράγμα/θέμα αναφέρεσαι; Να αποθηκεύσεις τί, πού και πώς;
Και τί έχεις κάνει μέχρι τώρα, τί μήνυμα σου βγάζει (copy-paste). Παραθέσε και τον κώδικα (αν υπάρχει).
Κύπριος; Κόπιασε στο 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
Εκτύπωση

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

Επιστροφή στο Μαθήματα python