Prelucrări în şir

Limbajul PYTHON are funcţii extrem de interesante de a prelucra un şir.
Dacă vrem să înlocuim un caracter din şir cu un altul vom folosi replace( )
Dacă vrem să înlocuim literele mici cu litere mari folosim upper( )
Dacă vrem să înlocuim literele mari cu litere mici folosim lower( )
Dacă vrem să numărăm apariţiile unui subşir folosim count( )
Dacă vrem să aliniem la stânga conţinutul şi restul să-l umplem cu un caracter folosim ljust( )
Dacă vrem să aliniem la dreapta conţinutul şi restul să-l umplem cu un caracter folosim rjust( )
Există funcţii care verifică dacă şirul conţine:
- numai cifre isdigit( )
- numai litere isalpha( )
- cifreşi litereisalnum( )
- numai litere mici islower( )
- numai litere mari isupper( )
- intercalează între cuvinte un sir merge( )
- un subşir find( )
Voi exemplifica utilizarea acestor funcţii în realizarea unui cuprins de carte şi în construirea unei bibliografii omogene.
Programul pentru construirea cuprinsului este:



#
# Prelucrari in sirul de caractere
# Creare cuprins de carte
#
Titul_cuprins = "Cuprins"
Nr_capitol = [ " I", " II", " III", " IV", " V", " VI", " VII",
               " VIII", " IX", " X", " XI", " XII", " XIII",
               " XIV", " XV", " XVI", " XVII"]
Denumire_capitol = [ " Introducere",
                     " Variabile elementare ",
                     " Vectori",
                     " Matrice",
                     " Pointeri",
                     " Liste simple",
                     " Liste duble",
                     " Grafuri",
                     " Obiecte",
                     " Agregari",
                     " Indicatori de eficienta",
                     " Functii uzuale",
                     " Recursivitatea",
                     " Biblioteci",
                     " Concluzii",
                     " Bibliografie",
                     " Anexe"]
Nr_pagini = [ " 1", " 3", " 3", " 3", " 4", " 5", " 5",
              " 5", " 7", " 8", " 5", " 4", " 10",
              " 7", " 3", " 2", " 10"]
Alpha = [ ]
# ********( Tiparire cuprins definire bruta
for i in range(len(Denumire_capitol)):
   print(Nr_capitol[i], Denumire_capitol[i], Nr_pagini[i])
# ******** Pune puncte dupa denumirea capitolului
for i in range(len(Denumire_capitol)):
   Alpha.append(Denumire_capitol[i].ljust(50, "."))
for i in range(len(Denumire_capitol)):
   print(Nr_capitol[i], Alpha[i], Nr_pagini[i].rjust(3," "))



Rezultatele afişate sunt:

I Introducere 1
II Variabile elementare 3
III Vectori 3
IV Matrice 3
V Pointeri 4
VI Liste simple 5
VII Liste duble 5
VIII Grafuri 5
IX Obiecte 7
X Agregari 8
XI Indicatori de eficienta 5
XII Functii uzuale 4
XIII Recursivitatea 10
XIV Biblioteci 7
XV Concluzii 3
XVI Bibliografie 2
XVII Anexe 10
I Introducere...................................... 1
II Variabile elementare ............................ 3
III Vectori.......................................... 3
IV Matrice.......................................... 3
V Pointeri......................................... 4
VI Liste simple..................................... 5
VII Liste duble...................................... 5
VIII Grafuri.......................................... 5
IX Obiecte.......................................... 7
X Agregari......................................... 8
XI Indicatori de eficienta.......................... 5
XII Functii uzuale................................... 4
XIII Recursivitatea................................... 10
XIV Biblioteci....................................... 7
XV Concluzii........................................ 3
XVI Bibliografie..................................... 2
XVII Anexe............................................ 10


Programul pentru omogenizarea bibliografiei este:
Să nu uităm că diferiţi editori sau coordonatori sau organizatori de concursuri vor scrierea cuprinsului într-un anume fel. Cu funcţiile PYTHON le satisfacem doleanţele rapid.
#
# Omogenizarea biblilografiei
#
Nume_autor = [ "Popescu", "IONESCU", "Marinescu",
               "Georgescu", "Teodorescu", "Vladimirescu",
               "Andreescu", "Pavelescu", "Dumitrescu"]
Prenume_autor = [ "Marian", "Andrei", "George",
                  "Radu", "Paul", "Ion",
                  "Alexandru", "Dumitru", "Toma"]
Titlu_lucrare = ["Limbaje de programare",
                  "STRUCTURI de DATE",
                  "Introducere in Mecanica Cuantică",
                  "Tratat de Economie Politica",
                  "Contabilitatea intreprinderii",
                  "Istoria Economiei nationale",
                  "Matematici superioare",
                  "FINANTE PUBLICE",
                  "Managemenet de Proiecte"]
Editua = ["Ed. Economica", "Editura Facla",
          "Ed. Astra", "Editura Teora",
          "Editura Q.E.D.", "Ed. Scrisul Banatului",
          "Matrix Edit.", "Editura Poligrafica",
          "Ed. Timisoara"]
Orasul = ["Ploiesti", "Pitesti", "Bucuresti",
          "Suceava", "CLUJ", "IASI",
          "ARAD", "BACAU", "CRAIOVA"]
Nr_pagini = ["Pagini: 150", "Pg. 200", "Pag: 340",
             "p: 250", "PP: 230", "Pg - 200",
             "Pp. 300", "Pag. 170", "PAG: 290"]
Pagini = ["Pagini:", "Pg.","Pag.", "Pg -", "PAG:",
          "Pp.", "PP:", "p:"]
Edit = ["Ed.", "Editura-","Editura:", "Ed:", "Edit."]
#
# Numele de familie al autorului se scie cu litere mari
# Prenumele are numai primaliteră mare, celelalte sunt litere mici
# Titlul are numai prima literă scrisă cu litere mari
# La editura se scrie complet cuvantul Editura
# orasul are numai prima litera mare
# La pagini se scre pg: XXX
# Toate se separă prin virgulă
for i in range(len(Nume_autor)):
   Nume_autor[i] = Nume_autor[i].upper()
   Titlu_lucrare[i].lower()
   Titlu_lucrare[i].capitalize()
   Prenume_autor[i] = Prenume_autor[i].lower()
   Prenume_autor[i] = Prenume_autor[i].capitalize()
   Orasul[i] = Orasul[i].lower()
   Orasul[i] = Orasul[i].capitalize()
   Titlu_lucrare[i] = Titlu_lucrare[i].lower()
   Titlu_lucrare[i] = Titlu_lucrare[i].capitalize()
   for j in range(len(Pagini)):
      Nr_pagini[i] = Nr_pagini[i].replace(Pagini[j], "pg: ")
   for j in range(len(Edit)):
      Editua[i] = Editua[i].replace(Edit[j], "Editura ")
for i in range(len(Nume_autor)):
   print(Nume_autor[i],Prenume_autor[i]\
        , " - ", Titlu_lucrare[i], ", ", Editua[i],", ", \
         Orasul[i], ", ", Nr_pagini[i])


Rezultatul afișeat este:
POPESCU Marian - Limbaje de programare , Editura Economica , Ploiesti , pg: 150
IONESCU Andrei - Structuri de date , Editura Facla , Pitesti , pg: 200
MARINESCU George - Introducere in mecanica cuantică , Editura Astra , Bucuresti , Pag: 340
GEORGESCU Radu - Tratat de economie politica , Editura Teora , Suceava , pg: 250
TEODORESCU Paul - Contabilitatea intreprinderii , Editura Q.E.D. , Cluj , pg: 230
VLADIMIRESCU Ion - Istoria economiei nationale , Editura Scrisul Banatului , Iasi , pg: 200
ANDREESCU Alexandru - Matematici superioare , Matrix Editura , Arad , pg: 300
PAVELESCU Dumitru - Finante publice , Editura Poligrafica , Bacau , pg: 170
DUMITRESCU Toma - Managemenet de proiecte , Editura Timisoara , Craiova , pg: 290


Şi în cazul bibliografiei lucrurile stau la fel. Autorii trebuie să respecte standardele ce li se cer şi fac acest lucru foarte uşor dacă-şi organizează munca pentru a folosi lejer funcţiile PYTHON.

Text pus azi 13 mai 2022




revenire