Συμβολοσειρές
Άσκηση με συμβολοσειρές
print 'Γράψε τις απαντήσεις στα ΕΛΛΗΝΙΚΑ με ΚΕΦΑΛΑΙΑ' #Δοκιμάστε στον Η/Υ
hellas=''
ap1='___________'
while (ap1[4]!='Σ' or ap1[0]!='Μ')or len(ap1)!=6:
ap1=raw_input('Το σχολειο και η ίδια η ζωή δίνουν τη : _ _ Θ _ _ Η :')
if len(ap1)<6:
ap1=ap1+(10-len(ap1)) * '_' #Πρόσθετει κενά για να γίνει ο έλεγχος while
hellas+=ap1[0]+ ' ' # κρατά το πρώτο γράμμα
ap2='___________'
while (ap2[2]!='Δ' or ap2[4]!='Ε' or ap2[6]!='Α')or len(ap2)!=7:
ap2=raw_input('Τόλμη γενναιοψυχία: _ _ Δ _ Ε _ Α :')
if len(ap2)<7:
ap2=ap2+(10-len(ap2)) * '_'
hellas+=ap2[0]+ ' '
ap3='___________'
while (ap3[4]!='Σ' or ap3[2]!='Λ' or ap3[7]!='Η') or len(ap3)!=8:
ap3=raw_input('Ευγενική πράξη: _ Α _ Ο _ _ _ Η :')
if len(ap3)<8:
ap3=ap3+(10-len(ap3)) * '_'
hellas+=ap3[0] + ' '
ap4='___________'
while ap4[2]!='Λ' or len(ap4)!=6:
ap4=raw_input('Η χώρα του πολιτισμού και της τεχνολογίας: _ Λ _ _ _ _ :')
if len(ap4)<6:
ap4=ap4+(10-len(ap4)) * '_'
hellas+=ap4[0] + ' '
ap5='___________'
while (ap5[3]!='Α' or ap5[4]!='Μ')or len(ap5)!=6:
ap5=raw_input('Η συμπόνια έχει αξία όπως και η μυϊκή: _ Υ _ _ Μ _ :')
if len(ap5)<6:
ap5=ap5+(10-len(ap5)) * '_'
hellas+=ap5[0]+' '
ap6='___________'
while (ap6[1]!='Ρ'or ap6[3]!='Μ') or len(ap6)!=5:
ap6=raw_input('Η παγκόσμια ειρήνη είναι: _ Ρ _ Μ _ :')
if len(ap6)<5:
ap6=ap6+(10-len(ap6))*'_'
hellas+=ap6[0]+' '
ap7='___________'
while ap7[1]!='Ι' or len(ap7)!=4:
ap7=raw_input('Σαρωτική: _ Ι _ _ :')
if len(ap7)<4:
ap7=ap7+(10-len(ap7))*'_'
hellas+=ap7[0]+ ' '
ap8='___________'
while (ap8[2]!='Ο' or ap8[3]!='Ρ') or len(ap8)!=9:
ap8=raw_input('Αν βάλεσαι από μεγάλες δυνάμεις, κράτα την: _ Σ _ _ Ρ _ _ _ _ :')
if len(ap8)<9:
ap8=ap8+(10-len(ap8)) * '_'
hellas+=ap8[0] + ' '
ap9='___________'
while ap9[3]!='Τ' or len(ap9)!=5:
ap9=raw_input('Ο δρόμος του καλού οδηγει στην: _ Ρ _ _ _ :')
if len(ap9)<5:
ap9=ap9+(10-len(ap9)) * '_'
hellas+=ap9[0]+' '
print'================='
print hellas #(c)Dieman
print'================='
#Δοκίμασε τον παρακάτω κώδικα σε Python 2.7
Οπως διαπιστώνεις, επαναλαμβάνεται 9 φορές ίδιος κώδικας.
Μπορεί να μπει η αντίστοιχη σκέψη μέσα σε for, με κάποιες αλλαγές, όπως παρακάτω...
print 'Γράψε τις απαντήσεις στα ΕΛΛΗΝΙΚΑ με ΚΕΦΑΛΑΙΑ' #Δοκιμάστε στον Η/Υ
quest='Το σχολειο και η ίδια η ζωή δίνουν τη : Μ _ Θ _ _ Η :'+ \
'Τόλμη γενναιοψυχία : _ _ Δ _ Ε _ Α :'+ \
'Ευγενική πράξη :_ Α _ Ο _ _ _ Η :'+ \
'Η χώρα του πολιτισμού και της τεχνολογίας : _ Λ _ _ _ _ :'+ \
'Η συμπόνια έχει αξία όπως και η μυϊκή :_ Υ _ _ Μ _ :'+ \
'Η παγκόσμια ειρήνη είναι :_ Ρ _ Μ _ :'+ \
'Σαρωτική :_ Ι _ _ :'+ \
'Αν βάλεσαι από μεγάλες δυνάμεις, κράτα την : _ Σ _ _ Ρ _ _ _ _ :'+ \
'Ο δρόμος του καλού οδηγει στην : _ Ρ _ _ _ :'#len(καθε ερωτησης) =65
apantiseis='_ΑΘΗΣ_&'+\
'_ΝΔΡΕΙ_&'+\
'_ΑΛΟΣΥΝ_&'+\
'_ΛΛΑΔ_&'+\
'_ΥΝΑΜ_&'+\
'_ΡΑΜ_&'+\
'_ΙΚ_&'+\
'_ΣΟΡΡΟΠΙ_&'+\
'_ΡΕΤ_&'#η κάθε απαντηση έχι στο τελος το '&' και ειναι λίγο... κρυφές
hellas=''
start_letter=0 #πρώτο γράμμα της σωστης απάντησης, στη θέση 0
for i in range(9): #για 9 ερωτήσεις
found=False
while not found: #όσο δε βρίσκεις την απάντηση
apantisi=''
ap=raw_input(quest[65*i:65*(i+1)]) #Δώσε την απάντηση
for letter in apantiseis[start_letter:]: #για κάθε γράμμα, στις apantiseis
if letter=='&': # όταν το γράμμα είναι το &, σταμάτα
break #εκτός ύλης, απλά για την εναλλακτική for σε κάτι πιο δύσκολο. Δες για την break
if letter!='_': #όσα γράμματα δεν έχουν κενό, κόλλησέ τα
apantisi=apantisi+letter #Δημιούργησε από τα γράμματα την απάντηση
if apantisi==ap[1:len(ap)-1]: #Αν η απάντησή είναι σωστή - βγάλε τις κάτω παύλες
found=True #το βρήκες
start_letter+=len(apantisi)+3 #ξεκίνα την επόμενη απάντηση, μετά από 3 γράμματα (μετά απο τα _&)
hellas+=ap[0]+ ' '
print'================='
print hellas #(c)Dieman
print'================='
Λίγο μπέρδεμα; Εύχομαι να βρεις την άκρη