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

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

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

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

Δημοσίευσηαπό medigeek » 13 Νοέμ 2010, 10:39

yodan000 έγραψε:επίσης είδα στον οδηγό όταν γράψω
range(1,2,5) θα μου εμφανιστούν το (1,3) γιατί δεν θα εμφανιστεί το 4;

Είναι σημαντικό να αναφέρεις πού γράφεις τον κώδικα. Στο IDLE; Στο python2 από τερματικό ή στο python3 από τερματικό; Ανάφερε την έκδοση python που χρησιμοποιείς.



Θα πρέπει να εμφανιστεί μόνο 1. Δεν ξέρω γιατί σου εμφανίζεται (1,3).
range(1,2,5) = Από τον αριθμό 1 μέχρι τον αριθμό 2 (χωρίς να συμπεριλάβει τον αριθμό 2), και κάθε φορά να "μεταπηδάει" 5 αριθμούς (+5).

Η μέθοδος range είναι μια από τις διαφορές python2 / python3: http://diveintopython3.org/porting-code ... tml#xrange
Τι σημαίνει αυτό για σένα; Χρησιμοποίησε το "for" για να μην προσέξεις καμία διαφορά.

Για python2 ή python3:
Από το 1 μέχρι το 2 (χωρίς το 2), 5 αριθμούς κάθε φορά:
Κώδικας: Επιλογή όλων
for x in range(1, 2, 5): print(x)

Επιστρέφει: 1

Από το 1 μέχρι το 21 (χωρίς το 21), 5 αριθμούς κάθε φορά:
Κώδικας: Επιλογή όλων
for x in range(1, 21, 5): print(x)

Επιστρέφει: 1 6 11 16
(Δηλαδή: 1 1+5 1+5+5 1+5+5+5)

Από το 1 μέχρι το 22 (χωρίς το 22), 5 αριθμούς κάθε φορά:
Κώδικας: Επιλογή όλων
for x in range(1, 22, 5): print(x)

Επιστρέφει: 1 6 11 16 21
(Δηλαδή: 1 1+5 1+5+5 1+5+5+5 1+5+5+5+5)

Από το 0 μέχρι το 20 (χωρίς το 20), 1 αριθμό κάθε φορά:
Κώδικας: Επιλογή όλων
for x in range(20): print(x)

Επιστρέφει: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19

Από το 0 μέχρι το 20 (χωρίς το 20), 5 αριθμούς κάθε φορά:
Κώδικας: Επιλογή όλων
for x in range(0, 20, 5): print(x)

Επιστρέφει: 0 5 10 15

Από το 4 μέχρι το 20 (χωρίς το 20), 3 αριθμούς κάθε φορά:
Κώδικας: Επιλογή όλων
for x in range(4, 20, 3): print(x)

Επιστρέφει: 4 7 10 13 16 19
Κύπριος; Κόπιασε στο 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

Δημοσίευσηαπό yodan000 » 13 Νοέμ 2010, 11:39

δεν το κατάλαβα δλδ αν εγώ βάλω
Κώδικας: Επιλογή όλων
for i in range(1,7,3):
θα μου εμφανίσει 3 αριθμούς από το 1 μέχρι το 7; πως διαλέγει ποιους αριθμούς θα επιλέξει;
1 Linux: Μέτριος ┃ Προγραμματισμός: Καθόλου ┃ Αγγλικά: Προχωρημένος
2 Ubuntu Gnome τελευταία έκδοση
3 Intel Core i3 CPU M 370 2.40GHz ‖ RAM 3819 MiB ‖ Acer Aspire 5742G
4 NVIDIA Corporation Device [10de:0df1] (rev a1)
5 eth0: Broadcom NetLink BCM57780 Gigabit Ethernet PCIe [14e4:1692] (rev 01) ⋮ wlan0: Atheros Inc. AR9287 Wireless Network Adapter (PCI-Express) [168c:002e] (rev 01)
yodan000
saintTUX
saintTUX
 
Δημοσιεύσεις: 1681
Εγγραφή: 12 Ιαν 2010, 00:32
Εκτύπωση

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

Δημοσίευσηαπό Nestor » 13 Νοέμ 2010, 12:45

Αν έχω καταλάβει καλά τη λογική που ακολουθεί θα σου εμφανίσει 2 αριθμούς και όχι 3.

Θα σου εμφανίσει το 1 και το 4. Γιατί αυτό που κάνει είναι να προσθέτει τον αριθμό στο τέλος στον πρώτο
(Χ,Υ,Ζ) εκτελεί Χ+Ζ=Α και μετά Α+Ζ=Β, και μετά Β+Ζ κοκ, εώς ότου φτάσει τον αριθμό Υ
Εάν ο αριθμός Υ προκύπτει απο πρόσθεση του προηγούμενου αριθμού στη σειρά τότε δεν θα τον εμφανίσει.
Δλδ για το παραπάνω θα έχεις:
1, (1+3)=4, (4+3)=7.
Όμως επειδή το 7 το εξαιρείς στην εντολή σου
Κώδικας: Επιλογή όλων
for i in range(1,7,3):
, τότε θα σου επιστρέψει μόνο το 1 και το 4
An Open Source ViewMy Facebook
Γνώσεις ⇛ Linux: Ελάχιστες ┃ Προγραμματισμός: Όχι ┃ Αγγλικά: Σχεδόν Άριστα
Λειτουργικό ⇛ Ubuntu 10.10 32 bit σε Αcer Aspire 5315
Προδιαγραφές ⇛ Celeron M530 │ 2GB │Intel X3100 │ Atheros WiFi │Realtek onboard Audio │ TFT 15.4"
Λειτουργικό ⇛ Ubuntu 10.10 64 bit σε Desktop PC
Προδιαγραφές ⇛ AMD Phenom 64Bit 9850 Quad Core │ 4GB │nVidia 9800GTX │ Asus Crosshair 1│Realtek onboard Audio │ LG W2442PA
Εικόνα
Άβαταρ μέλους
Nestor
babeTUX
babeTUX
 
Δημοσιεύσεις: 61
Εγγραφή: 04 Οκτ 2010, 17:31
Εκτύπωση

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

Δημοσίευσηαπό cyberpython » 13 Νοέμ 2010, 13:24

yodan000 έγραψε:δεν το κατάλαβα δλδ αν εγώ βάλω
Κώδικας: Επιλογή όλων
for i in range(1,7,3):
θα μου εμφανίσει 3 αριθμούς από το 1 μέχρι το 7; πως διαλέγει ποιους αριθμούς θα επιλέξει;


Θα ξεκινήσεις από το 1 (το i θα πάρει την τιμή 1) και θα εκτελέσει τις εντολές μέσα στο for.
Έπειτα θα προσθέσει 3 (i=4) και θα εκτελέσει πάλι τις εντολές στο for.
Θα κάνει το ίδιο (i = i+3 και εκτέλεση των εντολών του for) μέχρι το i να φθάσει ή να ξεπεράσει την τιμή 7 (στο συγκεκριμένο παράδειγμα θα κάνει συνολικά 2 επαναλήψεις).
Κοινότητα ΕΛ/ΛΑΚ Οικονομικού Πανεπιστημίου Αθηνών / Ubuntu-gr / My Web Log
Επίπεδο Γνώσεων Linux: Μέτριο, Προγραμματισμός: Ναι, Aγγλικά: Καλά
Λειτουργικό : Ubuntu 10.04 - 32bits
Η/Υ : Intel Core2 4400@2 GHz / 2GB DDR2 RAM / GeForce 8400 GS 512MB / Creative SB Audigy SE
Άβαταρ μέλους
cyberpython
seniorTUX
seniorTUX
 
Δημοσιεύσεις: 733
Εγγραφή: 14 Μάιος 2008, 13:22
Εκτύπωση

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

Δημοσίευσηαπό yodan000 » 13 Νοέμ 2010, 13:26

α τώρα κατάλαβα ευχαριστώ...
1 Linux: Μέτριος ┃ Προγραμματισμός: Καθόλου ┃ Αγγλικά: Προχωρημένος
2 Ubuntu Gnome τελευταία έκδοση
3 Intel Core i3 CPU M 370 2.40GHz ‖ RAM 3819 MiB ‖ Acer Aspire 5742G
4 NVIDIA Corporation Device [10de:0df1] (rev a1)
5 eth0: Broadcom NetLink BCM57780 Gigabit Ethernet PCIe [14e4:1692] (rev 01) ⋮ wlan0: Atheros Inc. AR9287 Wireless Network Adapter (PCI-Express) [168c:002e] (rev 01)
yodan000
saintTUX
saintTUX
 
Δημοσιεύσεις: 1681
Εγγραφή: 12 Ιαν 2010, 00:32
Εκτύπωση

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

Δημοσίευσηαπό medigeek » 13 Νοέμ 2010, 13:31

Σωστός ο Nestor και ο cyberpython, παίρνουν αστεράκι. :P Αν και άργησα, μιας και τα έγραψα, είπα να τα επεξηγήσω ακόμη μια φορά.

@yodan000:
- Το range παίρνει το πολύ 3 τιμές: αρχική, τελική και το "βήμα" (κάθε πόσα να μετράει).
Το range δίνει ακέραιους αριθμούς θετικούς(1,2,3,4,5..) ή/και αρνητικούς (-10,-9,-8,-7...).

1. Με την αρχική τιμή λες στο πρόγραμμα που να αρχίσει να μετράει.
2. Με την τελική τιμή λες στο πρόγραμμα που να σταματήσει να μετράει. Στα μαθηματικά όταν δίνουμε όρια πάντα ορίζουμε αν συμπεριλαμβάνεται η αρχική και η τελική τιμή ή όχι. Το πρόγραμμα python με την εντολή range() ΔΕΝ συμπεριλαμβάνει αυτή την τελική τιμή, μόνο ακέραιους λιγότερους από την τελική τιμή που έθεσες.
3. Με το "βήμα" θέτεις πόσους αριθμούς να μετράει κάθε φορά. Π.χ. αν η αρχική τιμή είναι 1 και το βήμα είναι 3, το πρόγραμμα θα μετράει: 1, 1+3=4, 4+3=7, 7+3=10, ... μέχρι να φτάσει στην τελική τιμή.

Παραδείγματα
Με παραδείγματα πίστεψα πως θα καταλάβεις. Ορίστε μερικά ακόμη:
Για το "βήμα":
- Αν δεν θέσεις το "βήμα", εννοείται πως θα πάει ένα-ένα (+1) ακέραιο αριθμό κάθε φορά.

Αυτό:
Κώδικας: Επιλογή όλων
for x in range(1, 5): print(x)

και αυτό:
Κώδικας: Επιλογή όλων
for x in range(1, 5, 1): print(x)

είναι το ίδιο πράγμα.

- Αν θέλεις ακέραιους από το 1 μέχρι το 10 (χωρίς να συμπεριλάβεις τον ακέραιο 10) και μεταπηδάς 1 ακέραιο αριθμό κάθε φορά:
Κώδικας: Επιλογή όλων
for x in range(1, 10, 1): print(x)

1, 2, 3, 4, 5, 6, 7, 8, 9
Η λογική πίσω από την εντολή - από το 1 μέχρι το 10, +1 κάθε φορά:
(1, 1+1, 2+1, 3+1, 4+1, 5+1, 6+1, 7+1, 8+1) - STOP! - η τιμή να είναι κάτω από 10

- Αν θέλεις ακέραιους από το 1 μέχρι το 10 (χωρίς να συμπεριλάβεις τον ακέραιο 10) και μεταπηδάς 2 ακέραιους αριθμούς κάθε φορά:
Κώδικας: Επιλογή όλων
for x in range(1, 10): print(x)

1, 3, 5, 7, 9

Η λογική πίσω από την εντολή - από το 1 μέχρι το 10, +2 κάθε φορά:
(1, 1+2, 3+2, 5+2, 7+2) - STOP! - η τιμή να είναι κάτω από 10

Με ή χωρίς την τελική τιμή;
- Αν θέλεις ακέραιους από το 1 μέχρι το 5 (συμπεριλαμβανομένου τον ακέραιο 5) πρέπει να θέσεις τελική τιμή το 6:
Κώδικας: Επιλογή όλων
for x in range(1, 6, 1): print(x)

1, 2, 3, 4, 5

- Αν θέλεις ακέραιους από το 1 μέχρι το 5 (μη συμπεριλαμβανομένου τον ακέραιο 5) πρέπει να θέσεις τελική τιμή το 5:
Κώδικας: Επιλογή όλων
for x in range(1, 5, 1): print(x)

1, 2, 3, 4
Κύπριος; Κόπιασε στο 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

Δημοσίευσηαπό yodan000 » 13 Νοέμ 2010, 13:33

κοίτα το πιο πάνω ποστ ;)
1 Linux: Μέτριος ┃ Προγραμματισμός: Καθόλου ┃ Αγγλικά: Προχωρημένος
2 Ubuntu Gnome τελευταία έκδοση
3 Intel Core i3 CPU M 370 2.40GHz ‖ RAM 3819 MiB ‖ Acer Aspire 5742G
4 NVIDIA Corporation Device [10de:0df1] (rev a1)
5 eth0: Broadcom NetLink BCM57780 Gigabit Ethernet PCIe [14e4:1692] (rev 01) ⋮ wlan0: Atheros Inc. AR9287 Wireless Network Adapter (PCI-Express) [168c:002e] (rev 01)
yodan000
saintTUX
saintTUX
 
Δημοσιεύσεις: 1681
Εγγραφή: 12 Ιαν 2010, 00:32
Εκτύπωση

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

Δημοσίευσηαπό medigeek » 13 Νοέμ 2010, 13:37

Ναι, άδικος κόπος, αργά το κατάλαβα :Ρ
Κύπριος; Κόπιασε στο 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

Δημοσίευσηαπό kamar » 13 Νοέμ 2010, 13:58

medigeek έγραψε:

Μια χαρά είναι εδώ πιστεύω. :)

Το θέμα λέει:
έγραψε:
Εδώ θα βάζουμε των κώδικα προγραμμάτων που
θα φτιάχνουμε (ή έχουμε φτιάξει ) σε Python,
καθώς και προβλήματα, ερωτήσεις, απαντήσεις και ότι σχετικό.




Μάλλον ζαλισμένος ήμουν! Sorry.
1 Γνώσεις Linux: Πολύ καλό ┃ Προγραμματισμού: Ικανοποιητικό ┃ Αγγλικών: Ικανοποιητικό
2 Ubuntu 14.04 trusty 3.13.0-91-generic 64bit (el_GR.UTF-8, Unity ubuntu)
3 AMD A6-5400K APU with Radeon HD Graphics ‖ RAM 3347 MiB ‖ ASUS F2A55-M LK2 PLUS
4 Advanced Micro Devices, Inc. [AMD/ATI] Trinity [Radeon HD 7540D] [1002:9991] {radeon}
5 eth0: Realtek RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller [10ec:8168] (rev 09)
Άβαταρ μέλους
kamar
punkTUX
punkTUX
 
Δημοσιεύσεις: 166
Εγγραφή: 10 Μάιος 2008, 20:24
Τοποθεσία: Χανιά
Εκτύπωση

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

Δημοσίευσηαπό yodan000 » 14 Νοέμ 2010, 12:57

Κώδικας: Επιλογή όλων
#!/usr/bin/env python3
# Filename: Hi
def Max(a,b,c):
if b>a and b>c:
print('To μέγιστο είναι το'b)
if a>b and a>c:
print('Το μέγιστο είναι το'a)
if c>a and c>b:
print('Το μέγιστο είναι το'c)
print('Αντίο')

τι λάθος έχω εδώ;
1 Linux: Μέτριος ┃ Προγραμματισμός: Καθόλου ┃ Αγγλικά: Προχωρημένος
2 Ubuntu Gnome τελευταία έκδοση
3 Intel Core i3 CPU M 370 2.40GHz ‖ RAM 3819 MiB ‖ Acer Aspire 5742G
4 NVIDIA Corporation Device [10de:0df1] (rev a1)
5 eth0: Broadcom NetLink BCM57780 Gigabit Ethernet PCIe [14e4:1692] (rev 01) ⋮ wlan0: Atheros Inc. AR9287 Wireless Network Adapter (PCI-Express) [168c:002e] (rev 01)
yodan000
saintTUX
saintTUX
 
Δημοσιεύσεις: 1681
Εγγραφή: 12 Ιαν 2010, 00:32
Εκτύπωση

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

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