Μάθημα 5 - Άσκηση

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

Μάθημα 5 - Άσκηση

Δημοσίευσηαπό sokoban4ever » 10 Αύγ 2009, 01:13

Για το μάθημα 5 θα έχουμε μια άσκηση η οποία
θα είναι απλή με σκοπό να καταλάβουμε την χρήση κλάσεων (classes)

Διαβάστε την εκφώνηση προσεχτικά πάνω ως κάτω


Άσκηση μαθήματος 5
Δημιουργήστε μια κλάση η οποία να έχει μία μεταβλητή κλάσης οι οποία θα μετράει το πλήθος των αντικειμένων που θα δημιουργούνται
από την κλάση.
Πρέπει όταν δημιουργείται ένα αντικείμενο να αυξάνεται κατα 1 και όταν διαγράφεται να μειώνεται κατά ένα.
Η κλάση θα περιγράφει τα ζώα θηλαστικά και μη τα οποία πρέπει να έχουν τουλάχιστον 4 χαρακτηριστικά
κατά την δημιουργία του αντικειμένου θέλουμε κάθε ζώο να είναι ένα αντικείμενο με ελαφρώς έως και πολύ διαφορετικά χαρακτιριστικά (ανάλογα τα ζώα που θα επιλέξετε)

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

Δώστε ένα χαρακτηριστικό σε ένα ήδη δημιουργημένο αντικείμενο ζώο
παρόλο που δεν υπάρχει μέθοδος
Π.χ
Κώδικας: Επιλογή όλων
elefantas.mitι = 'proboskida'

τι παρατηρείτε ;


Επαληθεύστε ότι φτιάξατε 4 ζώα από την μεταβλητή κλάσης και
τέλος εξαφανίστε ( με del ) και τα 4 αντικείμενα επαληθεύσετε πάλι πρίν τερματίσει το πρόγραμμα

Σας εύχομαι να την λύσετε τσάκ μπάμ
Σημείωση:
Αν βρετε κάποιο λάθος παρακαλώ προειδοποιήστε :D
Θέλουμε και μπορούμε να έχουμε μια καλύτερη ζωή και όσο θα ζούμε θα προσπαθούμε να την αποκτήσουμε ακόμα και αν πεθάνουμε προσπαθώντας, και αν κάποια στιγμή λιγίσουμε έχουμε το επίπεδο να πούμε κουράστηκα λίγο να ,να ξαποστάσουμε , ώστε να συνεχίσουμε πάλι δυνατοί ξανά.

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

Re: Μάθημα 5 - Άσκηση

Δημοσίευσηαπό Luke » 10 Αύγ 2009, 16:11

Μία προτεινόμενη "λύση" από εμένα:
Spoiler: show
Κώδικας: Επιλογή όλων
#! C:\Python30\python.exe
# Filename: Ex_5th_lesson.py

class Animal:
   population = 0
   
   def __init__(self, type, length, height, weight):
      self.type = type
      self.length = length
      self.height = height
      self.weight = weight
      Animal.population += 1
   
   def __del__(self):
      Animal.population -= 1
   
   def printInfo(self):
      print('Type: "{0}"  Length: "{1:g}"  Height: "{2:g}"  Weight: "{3:g}"'.format(self.type,
         self.length, self.height, self.weight), end="  ")
   
   @staticmethod
   def howMany():
      print('Totally {0} animals in the zoo'.format(Animal.population))
   #howMany = staticmethod(howMany)


class Mammal(Animal):
   def __init__(self, type, length, height, weight, feather):
      Animal.__init__(self, type, length, height, weight)
      self.feather = feather
   
   def __del__(self):
      Animal.__del__(self)
   
   def printInfo(self):
      Animal.printInfo(self)
      print('Feather: "{0}"'.format(self.feather))
   

class NonMammal(Animal):
   def __init__(self, type, length, height, weight, feeding):
      Animal.__init__(self, type, length, height, weight)
      self.feeding = feeding
   
   def __del__(self):
      Animal.__del__(self)
   
   def printInfo(self):
      Animal.printInfo(self)
      print('Feeding: "{0}"'.format(self.feeding))


elephant = Mammal('elephant', 5.0, 4.0, 1000.0, False)
dolphin = Mammal('dolphin', 4.0, 0.8, 70.0, False)
snake = NonMammal('snake', 3.0, 0.07, 2.0, 'other animals')
hawk = NonMammal('hawk', 70.0, 30.0, 15.8, 'predator')

Animal.howMany()

elephant.printInfo()
dolphin.printInfo()
snake.printInfo()
hawk.printInfo()

elephant.height = 6.0
elephant.printInfo()

del elephant
del dolphin
del snake
del hawk

Animal.howMany()


sokoban4ever έγραψε:Δώστε ένα χαρακτηριστικό σε ένα ήδη δημιουργημένο αντικείμενο ζώο
παρόλο που δεν υπάρχει μέθοδος
Π.χ
Κώδικας: Επιλογή όλων
elefantas.mitι = 'proboskida'

τι παρατηρείτε ;

Spoiler: show
Αλλάζει η τιμή της μεταβλητής. :)
Υποθέτω ότι αυτό συμβαίνει επειδή όλες οι μεταβλητές είναι public. Δοκίμασα και με μία private μεταβλητή (με διπλή κάτω παύλα) και δεν έγινε κάποια αλλαγή.
Το κακό που βρήκα είναι ότι όταν πας να κάνεις εκχώρηση με τον παραπάνω τρόπο είτε σε private είτε σε μεταβλητή που δεν υπάρχει ο interpreter της python δε βγάζει σφάλμα. :(
1 Γνώσεις ⇛ Linux: Χαμηλό προς Μέτριο ┃ Προγραμματισμός: Ναι ┃ Αγγλικά: Καλά
2 Λειτουργικά → Ubuntu 10.04 lucid 64bit (en_US.utf8), Windows 7
3 Προδιαγραφές → Intel Core i5-2500 CPU @ 3.30GHz ‖ RAM 7916 MiB ‖ MSI H67MA-E35 (MS-7680) - MSI MS-7680
4 Κάρτες γραφικών: Intel Sandy Bridge Integrated Graphics Controller [8086:0102] (rev 09)
5 Δίκτυα: eth0: Realtek RTL8111/8168B PCI Express Gigabit Ethernet controller [10ec:8168] (rev 06)
Άβαταρ μέλους
Luke
babeTUX
babeTUX
 
Δημοσιεύσεις: 91
Εγγραφή: 23 Μάιος 2009, 21:31
Εκτύπωση

Re: Μάθημα 5 - Άσκηση

Δημοσίευσηαπό da_perama1 » 16 Αύγ 2009, 18:47

Επιτέλους σας έφθασα αν και άρχισα καθυστερημένος.
Spoiler: show
Κώδικας: Επιλογή όλων
#!/usr/bin/python3
#Filename: askisi3_9.py

class Animal:

    population = 0

    def __init__(self,name, stype, podia, skin):
        self.name = name
        self.type = stype
        self.legs = podia
        self.skin = skin
        Animal.population += 1

    def print_data (self):
        print (' Όνομα : {0} Είδος : {1} Πόδια : {2} Κάλυμα : {3} '.format(self.name,self.type,self.legs,self.skin))

    def __del__(self):
        Animal.population -= 1   
        print ('Το ζώο {0} εγκαταλείπει το πρόγραμμα, εναπομείναντα ζώα {1} '.format(self.name, Animal.population))

    def print_pop():
        print (Animal.population)
    print_pop = staticmethod(print_pop)


el = Animal('Ελέφαντας','Θηλαστικό',4,'δέρμα')
el.print_data()
Animal.print_pop()
pa = Animal('Παγώνι','Πτηνό',2,'Φτερά')
pa.print_data()
Animal.print_pop()
sa = Animal('Σαρδέλα','Ψάρι',0,'Λέπια')
sa.print_data()
Animal.print_pop()
sc = Animal('Σκορπιός','Έντομο',6,'Κέλυφος')
sc.print_data()
Animal.print_pop()

el.miti = 'προβοσκίδα'
print (el.miti)


del el
del sc
del sa
del pa
Animal.print_pop()


Παρατήρηση :
Spoiler: show
Όταν δίνουμε στο αντικείμενο ελέφαντας μία μεταβλητή ( miti ) που δεν είχε δηλωθεί στην κλάση στην οποία ανήκει, η python την αποδέχεται και στη συνέχεια μπορεί να χρησιμοποιηθεί όπως και οι άλλες, χωρίς αυτό να τροποποιεί ούτε την κλάση στην οποία ανήκει το αντικείμενο ούτε τα άλλα αντικείμενα που ανήκουν στην ίδια κλάση. Πολύ χρήσιμη ιδιότητα της γλώσσας !


Επίσης αν τερματήσουμε το πρόγραμμα χωρίς να έχουμε διαγράψει όλα τα αντικείμενα που δημιουργήσαμε βγαίνει ένα Exception AttributeError: για το οποίο καλό είναι να συζητήσουμε όταν φθάσουμε στο σημείο να μελετάμε τα Exceptions.
Οφείλω εδώ να ομολογήσω ότι έχω γράψει μερικά προγράμματα σε python στο παρελθόν, αλλά χρησιμοποιώ αυτή τη σειρά των μαθημάτων για να συστηματοποιήσω τις όποιες γνώσεις μου.
1 Γνώσεις Linux: Ικανοποιητικό ┃ Προγραμματισμού: Πολύ καλό ┃ Αγγλικών: Πολύ καλό
2 Ubuntu 13.04 precise 64bit (el_GR.UTF-8), Ubuntu 3.0.0-17-generic
3 Intel Core i5 CPU 650 3.20GHz ‖ RAM 7783 MiB ‖ Intel DH55TC -
4 Intel Core Processor Integrated Graphics Controller [8086:0042] (rev 02)
5 eth0: Intel 82578DC Gigabit Network Connection [8086:10f0] (rev 06)
da_perama1
punkTUX
punkTUX
 
Δημοσιεύσεις: 289
Εγγραφή: 11 Νοέμ 2008, 20:35
Τοποθεσία: Κέρκυρα
Εκτύπωση

Re: Μάθημα 5 - Άσκηση

Δημοσίευσηαπό sokoban4ever » 17 Αύγ 2009, 02:30

Μία χαρά οι απαντήσεις ( με μια γρήγορη ματιά) οπότε πιστεύω μας είναι αρκετές .
( αν εν τω μεταξύ αντιληφθώ κάτι λάθος θα το αναφέρω)
Προσέξετε λιγάκι την δυνατότητα της Python να δημιουργεί μεθόδους
κατά το runtime στις classes
Δείτε εδώ:
http://www.google.gr/search?hl=el&q=pyt ... ic+methods
http://www.terminally-incoherent.com/bl ... in-python/
κλπ κλπ
προχωράμε :D
Θέλουμε και μπορούμε να έχουμε μια καλύτερη ζωή και όσο θα ζούμε θα προσπαθούμε να την αποκτήσουμε ακόμα και αν πεθάνουμε προσπαθώντας, και αν κάποια στιγμή λιγίσουμε έχουμε το επίπεδο να πούμε κουράστηκα λίγο να ,να ξαποστάσουμε , ώστε να συνεχίσουμε πάλι δυνατοί ξανά.

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

Re: Μάθημα 5 - Άσκηση

Δημοσίευσηαπό andreas_g » 13 Σεπ 2009, 14:44

Επειδη δουλευα το καλοκαιρι δεν προλαβα τις ασκησεις στην ωρα τους!!!!
Λιγο καθηστερημενα λοιπον βαζω και εγω την δικια μου λυση!!!!!! :roll: :)

Spoiler: show
Κώδικας: Επιλογή όλων
#!/usr/bin/python3
# -*- coding: utf-8 -*-

class zwa:
   
   plithos = 0

   def __init__(self, onoma, ilikia, eidos, fulo):
      self.onoma = onoma
      self.ilikia = ilikia
      self.eidos = eidos
      self.fulo = fulo

      print('Dimiourgithike to {0} zwo'.format(self.onoma))

      zwa.plithos += 1

   def __del__(self):
      print('\nTo {0} pswfise!!!! Ti krima!!! :(\n'.format(self.onoma))
 
      zwa.plithos -= 1


   def info(self):
      print('Gia to zwo {0}:\n'.format(self.onoma))
      print('To lene {0}, einai {1} xronwn, einai {2}, kai einai kai {3}.\n'.format(self.onoma, self.ilikia, self.eidos, self.fulo))

zwo1 = zwa('el', 15, 'Elefantas', 'arseniko')
zwo2 = zwa('hyp', 20, 'Ippopotamos', 'thuliko')
zwo3 = zwa('lio', 12, 'Liontari', 'arseniko')
zwo4 = zwa('ca', 5, 'Psipsina', 'thuliko')


print('\nTa zwakia theloun na mas poun diafora pragmata gia auta!!!!\n')

zwo1.info()
zwo2.info()
zwo3.info()
zwo4.info()

print('\n!!!\n!!!\n!!!\n!!!\n!!!\n!!!\n!!!')

del zwo1
del zwo2
del zwo3
del zwo4


if zwa.plithos == 0:
   print('\nTi krima pou pswfisan olla!!!! Ti na kanoume!!! Den peirazei!!!!\n')
Open your source, Open your mind.

Εικόνα


Γνώσεις ⇛ Linux: Μέτριο ┃ Προγραμματισμός: Ναι ┃ Αγγλικά: Καλά
Λειτουργικό ⇛ Slackware 13.0 32bit σε Dell Inspirion 1525
Προδιαγραφές ⇛ T4200 │ 2GB │ GM965 │ BCM4312 │ HD Audio │
Άβαταρ μέλους
andreas_g
babeTUX
babeTUX
 
Δημοσιεύσεις: 10
Εγγραφή: 02 Απρ 2009, 05:47
Εκτύπωση

Re: Μάθημα 5 - Άσκηση

Δημοσίευσηαπό sokoban4ever » 14 Σεπ 2009, 11:51

@andreas_g
Κώδικας: Επιλογή όλων
...if zwa.plithos == 0:
   print('\nTi krima pou pswfisan olla!!!! Ti na kanoume!!! Den peirazei!!!!\n')...

:lol: :lol: :lol: :lol: :lol: :lol: :lol: :lol: :lol: :lol: :lol: :lol:
ου να μου χαθείς με έκανες και ψόφησα στα γέλια :)

Η καλύτερη απάντηση από όλες :D και είναι και πιό κοντα στο ... Monty python πνεύμα http://www.python.org/doc/faq/general/# ... ing-circus :thumbup:
Θέλουμε και μπορούμε να έχουμε μια καλύτερη ζωή και όσο θα ζούμε θα προσπαθούμε να την αποκτήσουμε ακόμα και αν πεθάνουμε προσπαθώντας, και αν κάποια στιγμή λιγίσουμε έχουμε το επίπεδο να πούμε κουράστηκα λίγο να ,να ξαποστάσουμε , ώστε να συνεχίσουμε πάλι δυνατοί ξανά.

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

Re: Μάθημα 5 - Άσκηση

Δημοσίευσηαπό malos » 23 Οκτ 2009, 22:43

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

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

Σας παρακαλώ να βοηθήσετε, να ασχοληθείτε λίγο και, ... να βάλετε εσείς τα ζώα και τα χαρακτηριστικά τους !

Τελευταία χάρη που σας ζητώ είναι να έχετε :
1. Ανοιχτά τα ηχεία σας
2. Να έχετε εγκατεστημένο ένα "υγιές" :) πακέτο espeak. Στην 9.04 είχε κάποιο πρόβλημα λόγω του ότι η 9.04 χρησιμοποιεί κατευθείαν το pulseaudio. Δείτε εδώ για τη λύση του. Όπου εκτός από τη δική μου πρόταση
που είναι λίγο μπελαλίδικη, παραθέτει και ο κύριος logari81.
3. Να βάλετε σωστά τους τόνους στις λέξεις.
Ο κώδικας είναι μπάχαλο .... και η αξία του ίσως να φαίνεται μόνο αν τρέξει !


---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Ο κώδικας διανέμεται με την άδεια δημόσιας χρήσης malos .... όπου μεταξύ άλλων αναφέρει :

> Έχετε δικαίωμα να επεξεργαστείται και να αλλάξετε τον κώδικα ... με την προυπόθεση ότι θα τείνει προς το χειρότερο !
> Επιτρέπεται η αναδιανομή του κώδικα με την προυπόθεση ότι η αναφορά θα γίνεται μόνο στον τελευταίο συγγραφέα ! (Να παίρνει αυτός την ευθύνη !!!)
Απαγορεύεται να δημοσιευτεί το προηγούμενο πρόσωπο που συμετείχε στην ανάπτυξη του κώδικα ( για την προστασία του )
> Έχετε κάθε δικαίωμα να μπινελικώνεται και να κράζετε με οποιονδήποτε τρόπο τον δημιουργό του κώδικα, εκτός της αναφοράς στην καράφλα του η οποία είναι πατενταρισμένη και προστατεύεται με νόμο περί πνευματικών δικαιωμάτων !

Spoiler: show
Κώδικας: Επιλογή όλων
#!/usr/bin/python3

import os
import time
os.system('clear')




class zoa:
   def __init__(self,xar_1, xar_2, xar_3, xar_4):
      self.proto = xar_1
      self.deytero = xar_2
      self.trito = xar_3
      self.tetarto = xar_4
   
   
   def info1(self):
      print('{0}  {1} έχει ------ >\n{2} : {3}\n{4} : {5}\n{6} : {7}  και\n{8} : {9}'.format(arthro_protis_ptosis, lista_zoon[0], lista_xaraktiristikon[0], self.proto, lista_xaraktiristikon[1], self.deytero, lista_xaraktiristikon[2], self.trito, lista_xaraktiristikon[3], self.tetarto))
      
   
   
   def info2(self):
      print('{0}  {1} έχει ------ >\n{2} : {3}\n{4} : {5}\n{6} : {7}  και\n{8} : {9}'.format(arthro_protis_ptosis, lista_zoon[1], lista_xaraktiristikon[0], self.proto, lista_xaraktiristikon[1], self.deytero, lista_xaraktiristikon[2], self.trito, lista_xaraktiristikon[3], self.tetarto))
      
   
   
   
   def info3(self):
      print('{0}  {1} έχει ------ >\n {2}  {3}\n {4}  {5}\n {6}  {7}  και\n{8} {9}'.format(arthro_protis_ptosis, lista_zoon[2], lista_xaraktiristikon[0], self.proto, lista_xaraktiristikon[1], self.deytero, lista_xaraktiristikon[2], self.trito, lista_xaraktiristikon[3], self.tetarto))
      
   
   
   
   
   
   def info4(self):
      print('{0}  {1} έχει ------ >\n{2} : {3}\n{4} : {5}\n{6} : {7}  και\n{8} : {9}'.format(arthro_protis_ptosis, lista_zoon[3], lista_xaraktiristikon[0], self.proto, lista_xaraktiristikon[1], self.deytero, lista_xaraktiristikon[2], self.trito, lista_xaraktiristikon[3], self.tetarto))
      
            
def dilosi_zoon():
   os.system('clear')
   print('Ξεκινάμε λοιπόν;')
   time.sleep(3)
   os.system('clear')
   print('Θα σε ρωτήσω με τη μία  ... ΟΛΑ ΤΑ ΖΩΑ ....')
   time.sleep(4)
   print('και καπάκι όλα τα χαρακτηριστικά που θα έχει το κάθε ζώο !')
   time.sleep(2)
   print('                            Πάμε λοιπόν !')
   time.sleep(2)
   os.system('clear')
   
   global lista_zoon
   global arthro_protis_ptosis
   global arthro_tritis_ptosis
   lista_zoon = []
   voithitiki = ['πρώτο', 'δεύτερο', 'τρίτο', 'τέταρτο']
   for diktis in voithitiki:
      pes_zoo = input('Πες το {0} ζώο : '.format(diktis))
      lista_zoon.append(pes_zoo)
   
   
   
def sxolia_peri_dilosis_zoon():
   os.system('clear')
   print('Μια χαρά ! Είπες και τα 4 ζώα !!!')
   time.sleep(3)
   os.system('clear')
   print('Έχουμε λοιπόν : ')
   time.sleep(2)

   if (lista_zoon[0])[-1] == 'ς':
      arthro_protis_ptosis = 'Ο'
      arthro_tritis_ptosis = 'τον'
   elif (lista_zoon[0])[-2:] == 'βα' or (lista_zoon[0])[-2:] == 'βά' or (lista_zoon[0])[-1] == 'η' or (lista_zoon[0])[-1] == 'ή' or (lista_zoon[0])[-2:] == 'γα' or (lista_zoon[0])[-2:] == 'δα' or (lista_zoon[0])[-2:] == 'ζα' or (lista_zoon[0])[-2:] == 'θα' or (lista_zoon[0])[-2:] == 'ια' or (lista_zoon[0])[-2:] == 'κα' or (lista_zoon[0])[-3:] == 'έλα' or (lista_zoon[0])[-2:] == 'να' or (lista_zoon[0])[-2:] == 'ξα' or (lista_zoon[0])[-2:] == 'πα' or (lista_zoon[0])[-2:] == 'ρα' or (lista_zoon[0])[-2:] == 'σα' or (lista_zoon[0])[-3:] == 'ότα' or (lista_zoon[0])[-3:] == 'άτα' or (lista_zoon[0])[-3:] == 'οτα' or (lista_zoon[0])[-2:] == 'φα' or (lista_zoon[0])[-2:] == 'χα' or (lista_zoon[0])[-2:] == 'ψα' or (lista_zoon[0])[-2:] == 'ου' or (lista_zoon[0])[-2:] == 'ού':
      arthro_tritis_ptosis = 'την'
   else:
                arthro_tritis_ptosis = 'το'
   
   if (lista_zoon[0])[-1] == 'ς':
       print('{0} βρωμο{1}'.format(arthro_tritis_ptosis, (lista_zoon[0])[:-1]))
   else:
      print('{0} βρωμο{1}'.format(arthro_tritis_ptosis, (lista_zoon[0])))   
   
   
   
   if (lista_zoon[1])[-1] == 'ς':
      arthro_protis_ptosis = 'Ο'
      arthro_tritis_ptosis = 'τον'
   elif (lista_zoon[1])[-2:] == 'βα' or (lista_zoon[1])[-2:] == 'βά' or (lista_zoon[1])[-1] == 'η' or (lista_zoon[1])[-1] == 'ή' or (lista_zoon[1])[-2:] == 'γα' or (lista_zoon[1])[-2:] == 'δα' or (lista_zoon[1])[-2:] == 'ζα' or (lista_zoon[1])[-2:] == 'θα' or (lista_zoon[1])[-2:] == 'ια' or (lista_zoon[1])[-2:] == 'κα' or (lista_zoon[1])[-3:] == 'έλα' or (lista_zoon[1])[-2:] == 'να' or (lista_zoon[1])[-2:] == 'ξα' or (lista_zoon[1])[-2:] == 'πα' or (lista_zoon[1])[-2:] == 'ρα' or (lista_zoon[1])[-2:] == 'σα' or (lista_zoon[1])[-3:] == 'ότα' or (lista_zoon[1])[-3:] == 'άτα' or (lista_zoon[1])[-3:] == 'οτα' or (lista_zoon[1])[-2:] == 'φα' or (lista_zoon[1])[-2:] == 'χα' or (lista_zoon[1])[-2:] == 'ψα' or (lista_zoon[1])[-2:] == 'ου' or (lista_zoon[1])[-2:] == 'ού':
      arthro_protis_ptosis = 'Η'
      arthro_tritis_ptosis = 'την'
   else:
               arthro_protis_ptosis = 'Το'
               arthro_tritis_ptosis = 'το'
   if (lista_zoon[1])[-1] == 'ς':
       print('{0} βρωμο{1}'.format(arthro_tritis_ptosis, (lista_zoon[1])[:-1]))
   else:
      print('{0} βρωμο{1}'.format(arthro_tritis_ptosis, (lista_zoon[1])))
   
   
   if (lista_zoon[2])[-1] == 'ς':
      arthro_protis_ptosis = 'Ο'
      arthro_tritis_ptosis = 'τον'
   elif (lista_zoon[2])[-2:] == 'βα' or (lista_zoon[2])[-2:] == 'βά' or (lista_zoon[2])[-1] == 'η' or (lista_zoon[2])[-1] == 'ή' or (lista_zoon[2])[-2:] == 'γα' or (lista_zoon[2])[-2:] == 'δα' or (lista_zoon[2])[-2:] == 'ζα' or (lista_zoon[2])[-2:] == 'θα' or (lista_zoon[2])[-2:] == 'ια' or (lista_zoon[2])[-2:] == 'κα' or (lista_zoon[2])[-3:] == 'έλα' or (lista_zoon[2])[-2:] == 'να' or (lista_zoon[2])[-2:] == 'ξα' or (lista_zoon[2])[-2:] == 'πα' or (lista_zoon[2])[-2:] == 'ρα' or (lista_zoon[2])[-2:] == 'σα' or (lista_zoon[2])[-3:] == 'ότα' or (lista_zoon[2])[-3:] == 'άτα' or (lista_zoon[2])[-3:] == 'οτα' or (lista_zoon[2])[-2:] == 'φα' or (lista_zoon[2])[-2:] == 'χα' or (lista_zoon[2])[-2:] == 'ψα' or (lista_zoon[2])[-2:] == 'ου' or (lista_zoon[2])[-2:] == 'ού':
      arthro_protis_ptosis = 'Η'
      arthro_tritis_ptosis = 'την'
   else:
               arthro_protis_ptosis = 'Το'
               arthro_tritis_ptosis = 'το'
   
   if (lista_zoon[2])[-1] == 'ς':
       print('{0} βρωμο{1}'.format(arthro_tritis_ptosis, (lista_zoon[2])[:-1]))
   else:
      print('{0} βρωμο{1}'.format(arthro_tritis_ptosis, (lista_zoon[2])))
   
   if (lista_zoon[3])[-1] == 'ς':
      arthro_protis_ptosis = 'Ο'
      arthro_tritis_ptosis = 'τον'
   elif (lista_zoon[3])[-2:] == 'βα' or (lista_zoon[3])[-2:] == 'βά' or (lista_zoon[3])[-1] == 'η' or (lista_zoon[3])[-1] == 'ή' or (lista_zoon[3])[-2:] == 'γα' or (lista_zoon[3])[-2:] == 'δα' or (lista_zoon[3])[-2:] == 'ζα' or (lista_zoon[3])[-2:] == 'θα' or (lista_zoon[3])[-2:] == 'ια' or (lista_zoon[3])[-2:] == 'κα' or (lista_zoon[3])[-3:] == 'έλα' or (lista_zoon[3])[-2:] == 'να' or (lista_zoon[3])[-2:] == 'ξα' or (lista_zoon[3])[-2:] == 'πα' or (lista_zoon[3])[-2:] == 'ρα' or (lista_zoon[3])[-2:] == 'σα' or (lista_zoon[3])[-3:] == 'ότα' or (lista_zoon[3])[-3:] == 'άτα' or (lista_zoon[3])[-3:] == 'άτα'or (lista_zoon[3])[-3:] == 'οτα' or (lista_zoon[3])[-2:] == 'φα' or (lista_zoon[3])[-2:] == 'χα' or (lista_zoon[3])[-2:] == 'ψα' or (lista_zoon[3])[-2:] == 'ου' or (lista_zoon[3])[-2:] == 'ού':
      arthro_protis_ptosis = 'Η'
      arthro_tritis_ptosis = 'την'
   else:
               arthro_protis_ptosis = 'Το'
               arthro_tritis_ptosis = 'το'
      
   if (lista_zoon[3])[-1] == 'ς':
       print('{0} βρωμο{1}'.format(arthro_tritis_ptosis, (lista_zoon[3])[:-1]))
   else:
      print('{0} βρωμο{1}'.format(arthro_tritis_ptosis, (lista_zoon[3])))


def kati_allo():
   global ola_ta_zoa
   global koma
   global keno
   koma = ','
   keno = ' '
   ola_ta_zoa = (lista_zoon[0] + koma + keno + lista_zoon[1] + koma + keno + lista_zoon[2] + koma + keno + lista_zoon[3])   


def kai_kati_akoma():
   write_out = open('ta_zoa.txt', 'w')
   write_out.write(ola_ta_zoa)
   write_out.close()
   os.system('espeak -v el -p60 -s50 τα,βρωμόζωα,που,είπες,είναι')
   os.system('espeak -v el -p40 -k2 -s30 -f ta_zoa.txt')




def dilosi_xaraktiristikon():
   time.sleep(3)
   os.system('clear')
   print('Ωραία ! Πάμε τώρα να πούμε και τα χαρακτηριστικά ένα-ένα !')
   time.sleep(5)
   os.system('clear')
   global lista_xaraktiristikon
   lista_xaraktiristikon = []
   voithitiki = ['πρώτο', 'δεύτερο', 'τρίτο', 'τέταρτο']
   for diktis in voithitiki:
      pes_xaraktiristiko = input('Πες το {0} χαρακτηριστικό : '.format(diktis))
      lista_xaraktiristikon.append(pes_xaraktiristiko)





         
def prosdiorismos_xaraktiristikon():
   time.sleep(2)
   os.system('clear')
   print('Μωρέ μπράβο !!! Ξεμπερδέψαμε και με τα χαρακτηριστικά!')
   time.sleep(4)
   print('Ας τα προσδιορίσουμε κιόλας  ...')
   time.sleep(3)
   os.system('clear')
   global synolo
   synolo = []
   for zoaki in lista_zoon:
      for xaraktiristiko in lista_xaraktiristikon:
         
         
         animal = input('{0} {1} τι {2} έχει; '.format('Το ζώο', zoaki, xaraktiristiko))
         synolo.append(animal)
   print(synolo)      


   
   



dilosi_zoon()

sxolia_peri_dilosis_zoon()

kati_allo()

kai_kati_akoma()

dilosi_xaraktiristikon()

prosdiorismos_xaraktiristikon()

a = zoa(synolo[0], synolo[1], synolo[2], synolo[3])
b = zoa(synolo[4], synolo[5], synolo[6], synolo[7])   
c = zoa(synolo[8], synolo[9], synolo[10], synolo[11])
d = zoa(synolo[12], synolo[13], synolo[14], synolo[15])
if (lista_zoon[0])[-1] == 'ς':
         arthro1 = 'O'
         arthro_protis_ptosis = 'Ο'
      
elif (lista_zoon[0])[-2:] == 'βα' or (lista_zoon[0])[-2:] == 'βά' or (lista_zoon[0])[-1] == 'η' or (lista_zoon[0])[-1] == 'ή' or (lista_zoon[0])[-2:] == 'γα' or (lista_zoon[0])[-2:] == 'δα' or (lista_zoon[0])[-2:] == 'ζα' or (lista_zoon[0])[-2:] == 'θα' or (lista_zoon[0])[-2:] == 'ια' or (lista_zoon[0])[-2:] == 'κα' or (lista_zoon[0])[-3:] == 'έλα' or (lista_zoon[0])[-2:] == 'να' or (lista_zoon[0])[-2:] == 'ξα' or (lista_zoon[0])[-2:] == 'πα' or (lista_zoon[0])[-2:] == 'ρα' or (lista_zoon[0])[-2:] == 'σα' or (lista_zoon[0])[-3:] == 'ότα' or (lista_zoon[0])[-3:] == 'άτα' or (lista_zoon[0])[-3:] == 'οτα' or (lista_zoon[0])[-2:] == 'φα' or (lista_zoon[0])[-2:] == 'χα' or (lista_zoon[0])[-2:] == 'ψα' or (lista_zoon[0])[-2:] == 'ου' or (lista_zoon[0])[-2:] == 'ού':
         arthro1 = 'Η'
         arthro_protis_ptosis = 'Η'
      
else:
   arthro_protis_ptosis = 'Το'
   arthro_tritis_ptosis = 'το'
   arthro1 = 'Το'           
a.info1()


if (lista_zoon[1])[-1] == 'ς':
         arthro2 = 'Ο'
         arthro_protis_ptosis = 'Ο'
      
elif (lista_zoon[1])[-2:] == 'βα' or (lista_zoon[1])[-2:] == 'βά' or (lista_zoon[1])[-1] == 'η' or (lista_zoon[1])[-1] == 'ή' or (lista_zoon[1])[-2:] == 'γα' or (lista_zoon[1])[-2:] == 'δα' or (lista_zoon[1])[-2:] == 'ζα' or (lista_zoon[1])[-2:] == 'θα' or (lista_zoon[1])[-2:] == 'ια' or (lista_zoon[1])[-2:] == 'κα' or (lista_zoon[1])[-3:] == 'έλα' or (lista_zoon[1])[-2:] == 'να' or (lista_zoon[1])[-2:] == 'ξα' or (lista_zoon[1])[-2:] == 'πα' or (lista_zoon[1])[-2:] == 'ρα' or (lista_zoon[1])[-2:] == 'σα' or (lista_zoon[1])[-3:] == 'ότα' or (lista_zoon[1])[-3:] == 'άτα' or (lista_zoon[1])[-3:] == 'οτα' or (lista_zoon[1])[-2:] == 'φα' or (lista_zoon[1])[-2:] == 'χα' or (lista_zoon[1])[-2:] == 'ψα' or (lista_zoon[1])[-2:] == 'ου' or (lista_zoon[1])[-2:] == 'ού':
         arthro2= 'Η'
         arthro_protis_ptosis = 'Η'
      
else:
    arthro_protis_ptosis = 'Το'
    arthro_tritis_ptosis = 'το'
    arthro2 = 'Το'

b.info2()


if (lista_zoon[2])[-1] == 'ς':
         arthro3= 'Ο'
         arthro_protis_ptosis = 'Ο'
elif (lista_zoon[2])[-2:] == 'βα' or (lista_zoon[2])[-2:] == 'βά' or (lista_zoon[2])[-1] == 'η' or (lista_zoon[2])[-1] == 'ή' or (lista_zoon[2])[-2:] == 'γα' or (lista_zoon[2])[-2:] == 'δα' or (lista_zoon[2])[-2:] == 'ζα' or (lista_zoon[2])[-2:] == 'θα' or (lista_zoon[2])[-2:] == 'ια' or (lista_zoon[2])[-2:] == 'κα' or (lista_zoon[2])[-3:] == 'έλα' or (lista_zoon[2])[-2:] == 'να' or (lista_zoon[2])[-2:] == 'ξα' or (lista_zoon[2])[-2:] == 'πα' or (lista_zoon[2])[-2:] == 'ρα' or (lista_zoon[2])[-2:] == 'σα' or (lista_zoon[2])[-3:] == 'ότα' or (lista_zoon[2])[-3:] == 'άτα' or (lista_zoon[2])[-3:] == 'οτα' or (lista_zoon[2])[-2:] == 'φα' or (lista_zoon[2])[-2:] == 'χα' or (lista_zoon[2])[-2:] == 'ψα' or (lista_zoon[2])[-2:] == 'ου' or (lista_zoon[2])[-2:] == 'ού':
   arthro3 = 'Η'
   arthro_protis_ptosis = 'Η'
else:
   arthro_protis_ptosis = 'Το'
   arthro_tritis_ptosis = 'το'
   arthro3 = 'Το'   


c.info3()


if (lista_zoon[3])[-1] == 'ς':
         arthro4 = 'Ο'
         arthro_protis_ptosis = 'Ο'
elif (lista_zoon[3])[-2:] == 'βα' or (lista_zoon[3])[-2:] == 'βά' or (lista_zoon[3])[-1] == 'η' or (lista_zoon[3])[-1] == 'ή' or (lista_zoon[3])[-2:] == 'γα' or (lista_zoon[3])[-2:] == 'δα' or (lista_zoon[3])[-2:] == 'ζα' or (lista_zoon[3])[-2:] == 'θα' or (lista_zoon[3])[-2:] == 'ια' or (lista_zoon[3])[-2:] == 'κα' or (lista_zoon[3])[-3:] == 'έλα' or (lista_zoon[3])[-2:] == 'να' or (lista_zoon[3])[-2:] == 'ξα' or (lista_zoon[3])[-2:] == 'πα' or (lista_zoon[3])[-2:] == 'ρα' or (lista_zoon[3])[-2:] == 'σα' or (lista_zoon[3])[-3:] == 'ότα' or (lista_zoon[3])[-3:] == 'άτα' or (lista_zoon[3])[-3:] == 'άτα'or (lista_zoon[3])[-3:] == 'οτα' or (lista_zoon[3])[-2:] == 'φα' or (lista_zoon[3])[-2:] == 'χα' or (lista_zoon[3])[-2:] == 'ψα' or (lista_zoon[3])[-2:] == 'ου' or (lista_zoon[3])[-2:] == 'ού':
         arthro4 = 'Η'
         arthro_protis_ptosis = 'Η'
else:
    arthro_protis_ptosis = 'Το'
    arthro_tritis_ptosis = 'το'
    arthro4 = 'Το' 

d.info4()
def ki_allo_ki_allo():
   
   global ekfrasi1
   ekfrasi1 = ('{0}  {1} έχει {2}  {3}, {4} {5}, {6}  {7},  και {8},  {9},,  {10} {11} έχει {12} {13}, {14}, {15},, {16}, {17},,   και {18}, {19}. {20}  {21} έχει, {22} {23}, {24}, {25},, {26}, {27},, {28}, {29}. Και, τέλος,, {30}  {31}, έχει, {32} {33}, {34} {35}, {36}, {37},, και, {38}, {39} '.format(arthro1, lista_zoon[0], lista_xaraktiristikon[0], synolo[0], lista_xaraktiristikon[1], synolo[1], lista_xaraktiristikon[2], synolo[2], lista_xaraktiristikon[3], synolo[3], arthro2, lista_zoon[1], lista_xaraktiristikon[0], synolo[4], lista_xaraktiristikon[1], synolo[5], lista_xaraktiristikon[2], synolo[6], lista_xaraktiristikon[3], synolo[7], arthro3, lista_zoon[2], lista_xaraktiristikon[0], synolo[8], lista_xaraktiristikon[1], synolo[9], lista_xaraktiristikon[2], synolo[10], lista_xaraktiristikon[3], synolo[11], arthro4, lista_zoon[3], lista_xaraktiristikon[0], synolo[12], lista_xaraktiristikon[1], synolo[13], lista_xaraktiristikon[2], synolo[14], lista_xaraktiristikon[3], synolo[15]))
   
   
   
   
   
def kai_epidi_exo_presviopia():
   write_out = open('ta_zoa.txt', 'w')
   write_out.write(ekfrasi1)
   write_out.close()
   
   os.system('espeak -v el -p40 -s100  -f ta_zoa.txt')
   os.system('espeak -v el -p60 -s120 Τέλος,,αρνούμαι,να,βάλω.συνάρτηση,,που,σκοτώνει,τα,ζωάκια.')
ki_allo_ki_allo()
kai_epidi_exo_presviopia()
Τελευταία επεξεργασία από malos και 25 Οκτ 2009, 19:39, έχει επεξεργασθεί 1 φορά/ες συνολικά
Δεν θέλω να πω τι μηχανήματα έχω. Είναι προσωπικά δεδομένα ΕΝΤΑΞΕΙ ; !!!
Άβαταρ μέλους
malos
daemonTUX
daemonTUX
 
Δημοσιεύσεις: 1128
Εγγραφή: 02 Νοέμ 2008, 12:00
Εκτύπωση

Re: Μάθημα 5 - Άσκηση

Δημοσίευσηαπό sokoban4ever » 24 Οκτ 2009, 03:41

@malos
:think:
πρώτα από όλα να σε συγχαρώ για τον κόπο σου
και μιας και κάνω τον καθηγητή θα σου δώσω μια συμβουλή :
Η λιτότητα δεν είναι κάποιο στάδιο , αντιθέτως πρέπει μόνιμα να είναι ένας από τους κύριους στόχους
Σημείωση:
Και που την παραβιάζουμε καμιά φορά , επαληθεύουμε την ανάγκη ή και την αιτία ύπαρξης της
Εικόνα
Τέλος για ανταμοιβή δες αυτό
http://www.python.org/dev/peps/pep-0008/
Θέλουμε και μπορούμε να έχουμε μια καλύτερη ζωή και όσο θα ζούμε θα προσπαθούμε να την αποκτήσουμε ακόμα και αν πεθάνουμε προσπαθώντας, και αν κάποια στιγμή λιγίσουμε έχουμε το επίπεδο να πούμε κουράστηκα λίγο να ,να ξαποστάσουμε , ώστε να συνεχίσουμε πάλι δυνατοί ξανά.

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

Re: Μάθημα 5 - Άσκηση

Δημοσίευσηαπό malos » 24 Οκτ 2009, 10:10

Ευχαριστώ και για το link.
Θα το διαβάσω μετά τη δουλειά.
Ήθελα οπωσδήποτε να κάνω πλάκα ( το είχα ανάγκη :D ). Μέχρι να καταλάβω πως καλούμε τις κλάσεις και τι γίνεται γενικώς :eh:
Που να δεις πως ήταν ή πρώτη έκδοση :lol:
Το έβαλα στόχο να δουλέψει οπωσδήποτε και μετά να είναι όσο πιο απλό γίνεται ! Στην πορεία έμαθα διάφορα (Πχ η __init__ δεν μπορούσε να δεχτεί indexing μου έλεγε. Τα άρθρα δεν μπορούσα να τα κάνω global ή είχα κουραστεί απλά, γι αυτό και οι πολλές γραμμές. )
Ο χαβαλές στο τέλος του post μου πάντως ήταν ξέσπασμα από την κούραση ( 3 βδομάδες το πάλευα ----- Που να ήθελα να φτιάξω και κάτι σοβαρό ε ; :lol: )

Πάντως αυτό που με ικανοποιεί είναι ότι δουλεύουν καλά τα άρθρα πρώτης και τρίτης πτώσης στις προτάσεις και η ηχητική απόδοση με το espeak.

Δεν παρεξηγήθηκες για την πλάκα έτσι ; :)
Δεν θέλω να πω τι μηχανήματα έχω. Είναι προσωπικά δεδομένα ΕΝΤΑΞΕΙ ; !!!
Άβαταρ μέλους
malos
daemonTUX
daemonTUX
 
Δημοσιεύσεις: 1128
Εγγραφή: 02 Νοέμ 2008, 12:00
Εκτύπωση

Re: Μάθημα 5 - Άσκηση

Δημοσίευσηαπό sokoban4ever » 24 Οκτ 2009, 10:35

malos έγραψε:...Δεν παρεξηγήθηκες για την πλάκα έτσι ; :)

όχι όλα καλά :P
Εικόνα
Θέλουμε και μπορούμε να έχουμε μια καλύτερη ζωή και όσο θα ζούμε θα προσπαθούμε να την αποκτήσουμε ακόμα και αν πεθάνουμε προσπαθώντας, και αν κάποια στιγμή λιγίσουμε έχουμε το επίπεδο να πούμε κουράστηκα λίγο να ,να ξαποστάσουμε , ώστε να συνεχίσουμε πάλι δυνατοί ξανά.

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

Επόμενο

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

cron