Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ### TEMA 1 ###
- class Tema1(object):
- text = 'Text pentru calcularea, determinarea si rezolvarea cerintelor din exercitiile propuse.'
- def __init__(self):
- print('#' * 30)
- print('\tTEMA 1')
- print('#' * 30, '\n')
- self.ex_1()
- self.ex_2()
- self.ex_3()
- self.ex_4()
- self.ex_5()
- @property
- def ex_1_doc(self):
- return (""
- "Ex1. Sa se determine de cate ori apare un anumit caracter intr-un sir de caractere dat."
- "")
- def ex_1(self):
- print("#" * 30)
- print(self.ex_1_doc)
- char = input("Introdu caracterul dorit pentru a fi cautat: ")
- text = input("Introdu sirul de caractere pentru cautare(None pentru default): ")
- if not text:
- text = self.text
- aparitii = len([_char for _char in text if _char == char])
- result_text = f'Caracterul {char} a fost gasit de {aparitii} ori in textul: \t`{text}`'
- print(result_text)
- print('#' * 30, '\n')
- @property
- def ex_2_doc(self):
- return (""
- "Ex2. Sa se determine daca un sir de caractere este un numar intreg sau real"
- "")
- def ex_2(self):
- print("#" * 30)
- print(self.ex_2_doc)
- text = input("Introdu sirul de caractere: ")
- while not text:
- text = input('Sirul de caractere este obligatoriu: ')
- nr_puncte, nan = 0, False
- for char in text:
- if char == '.':
- nr_puncte += 1
- else:
- try:
- int(char)
- except ValueError:
- nan = True
- break
- if nan or nr_puncte > 1:
- _type = 'nu este numar'
- else:
- if not nr_puncte: # bool(0) -> False
- _type = 'reprezinta un numar intreg'
- else:
- _type = 'reprezinta un numar real'
- print(f'Sirul de caractere {text} - {_type}.')
- print('#' * 30, '\n')
- @property
- def ex_3_doc(self):
- return (""
- "Ex3. Avand un cuvant x si un alfabet V sa se verifice daca x este cuvant peste V(adica toate literele din x se regasesc in V)"
- "")
- def ex_3(self):
- print("#" * 30)
- print(self.ex_3_doc)
- cuvant = input("Introdu cuvantul dorit: ")
- vocabular = input("Introdu vocabularul dorit: ")
- # algoritmul de mai jos asigura
- # forma vocabularului in formatul:
- # a b c d e f g h i j k l m
- index = 0
- while True:
- try:
- char = vocabular[index]
- if char != ' ':
- if vocabular[index + 1] != ' ':
- vocabular = input("Caracterele nu au fost delimitate. Te rog foloseste caracterul `space`(' ') pentru a le delimita: ")
- continue
- index += 1
- except IndexError:
- break
- vocabular = set(vocabular.split(' '))
- rezultat = 'se regaseste ' \
- if len([char for char in cuvant if char in vocabular]) == len(cuvant) \
- else 'nu se regaseste'
- print(f'Cuvantul `{cuvant}` {rezultat} in vocabularul `{vocabular}`')
- print('#' * 30, '\n')
- @property
- def ex_4_doc(self):
- return (""
- "Ex4. Sa se inlocuiasca intr-un sir cuvant prima aparitie a subsirului dat s1 cu un alt subsir dat s2."
- "")
- def ex_4(self):
- print("#" * 30)
- print(self.ex_4_doc)
- cuvant = input("Introdu cuvantul dorit: ")
- s1 = input("Introdu subsirul s1: ")
- s2 = input("Introdu subsirul s2: ")
- try:
- index_s1 = cuvant.index(s1)
- # transformarea cuvantului in lista
- # pentru a avea posibilitatea de manipulare
- # a acestuia
- cuvant = list(cuvant)
- cuvant[index_s1:index_s1 + len(s1)] = s2
- cuvant = ''.join(cuvant)
- rezultat = f'Sirul rezultat: `{cuvant}`'
- except ValueError:
- # s1 nu exista in cuvant
- rezultat = f'Subsirul s1 `{s1}` nu exista in cuvantul `{cuvant}`'
- print(rezultat)
- print("#" * 30, '\n')
- @property
- def ex_5_doc(self):
- return (""
- "Ex5. Determinați numarul de cuvinte dintr-o frază introdusă de la tastatură, precum și ce cuvinte sunt în fraza respectivă, sub forma: "
- "\n\tex: Ce cuvinte sunt in fraza? Determina!!"
- "\n\tt1. Ce"
- "\n\t2. cuvinte"
- "\n\t3. sunt"
- "\n\t4. in"
- "\n\t5. fraza"
- "\n\t6. Determina"
- "\n\tIgnorați , . ? ! ..."
- "")
- def ex_5(self):
- print("#" * 30)
- print(self.ex_5_doc)
- ignore = {',', '\'', '\\', '?', '!', '.', '...', '`', '#', '@', '$', ' '}
- fraza = f'{input("Introdu fraza dorita: ")} '
- cuvinte = []
- cuvant = ''
- for char in fraza:
- if char not in ignore:
- cuvant += char
- else:
- if cuvant != '':
- cuvinte.append(cuvant)
- cuvant = ''
- rezultat = {index: value for index, value in enumerate(cuvinte)}
- print('Am gasit: ')
- for index, value in rezultat.items():
- print(f'{index}. {value}')
- print("#" * 30, '\n')
- if __name__ == '__main__':
- Tema1()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement