-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathex021ref.py
More file actions
155 lines (141 loc) · 4.73 KB
/
ex021ref.py
File metadata and controls
155 lines (141 loc) · 4.73 KB
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
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
from time import sleep as wait
from os import system as cmd
clientes = []
def verificacao():
'''
verifica se há clientes, caso não haja o parametro ira receber falso e diz que não é possivel.
'''
if not clientes:
cmd('cls'), print('Não é possivel pois não há clientes cadastrados'), wait(3), cmd('cls')
a = False
else:
a = True
return a
def create() -> list[str]:
'''
Adiciona clientes na lista.
'''
try:
nome = input('Insira o nome do cliente: ').capitalize()
telefone = input('insira o telefone do cliente: ')
email = input('insira o email do cliente: ')
idade = None
try:
idade = int(input('insira a idade do cliente: '))
except ValueError:
print('Insira apenas valores válidos')
except KeyboardInterrupt:
print('Insira apenas valores válidos')
return [nome, telefone, email, idade]
def read() -> None:
for i in range(0,len(clientes)):
print(f'Cliente {i + 1}\n nome: {clientes[i][0]}, telefone: {clientes[i][1]}, email: {clientes[i][2]}, idade: {clientes[i][3]} .')
def update():
'''
Altera os dados do cliente (que é passado pelo index)
'''
read()
index = receive('menu1')
try:
index = int(index) - 1
clientes[index][0] = input('Digite o novo nome: ')
clientes[index][1] = input('Digite o novo telefone: ')
clientes[index][2] = input('Digite o novo email: ')
try:
clientes[index][3] = int(input('Digite a nova idade: '))
except ValueError :
print('Digite apenas valores validos.')
except KeyboardInterrupt:
print('Digite apenas valores validos.')
cmd('cls'), print('Atualizado com sucesso !'), wait(2), cmd('cls')
def setDelete():
'''
Recebe o index do cliente que sera deletado e o deleta conforme o index
'''
read()
index = receive('menu1')
if index.isdigit():
del clientes[int(index) - 1]
cmd('cls'), print('Cliente deletado com sucesso !'), wait(2), cmd('cls')
else:
print('Digite apenas números que correspondem ao menu.'), wait(3)
def receive(a: str) -> str :
'''
Recebe os inputs e já trata casos de Keyboard Interrupt.
'''
if a == 'menu1':
try:
a = input('Digite o numero que corresponde a opção desejada: ')
cmd('cls')
except KeyboardInterrupt:
cmd("cls")
pass
if a == 'menu2':
try: #menu2
a = input('Se deseja realizar esta ação novamente digite 1, caso não deseja aperte qualquer tecla.')
except KeyboardInterrupt:
cmd('cls')
pass
return a
def search() -> None :
'''
recebe um nome como string, verifica se ele esta na lista e imprime todas as informações do respectivo nome
'''
name = None
try:
name = input('Digite o nome do cliente que gostaria de buscar os dados: ').capitalize()
p = 0
for i in clientes:
cliente = clientes[p]
if name.strip() in cliente:
print(f'Cliente {p + 1}\n nome: {cliente[0]}, telefone: {cliente[1]}, email: {cliente[2]}, idade: {cliente[3]} .')
else:
print('Cliente não encontrado, pois não foi cadastrado.')
break
p += 1
except KeyboardInterrupt:
print('Não foi possivel realizar essa ação !')
def menu() -> None:
'''
Exibe o menu.
'''
cmd('cls'), print(f'Você tem {len(clientes)} cadastrados\n1 - Cadastrar cliente\n2 - Ver clientes cadastrados\n3 - Buscar cliente\n4 - Alterar cadastros\n5 - Deletar algum cadastro\n6 - Encerrar programa')
a = receive('menu1')
return a
def main():
op = menu()
match op :
case '1':
cliente = create()
clientes.append(cliente)
del cliente
main()
case '2':
a = verificacao()
if a :
read()
cmd('pause')
main()
case '3':
a = verificacao()
if a :
search()
cmd('pause')
main()
case '4':
a = verificacao()
if a:
update()
main()
case '5':
a = verificacao()
if a :
setDelete()
main()
case '6':
print('Encerrando . . .')
case _:
cmd('cls'),print('Opção invalida'),wait(3),cmd('cls')
main()
if __name__ == '__main__':
main()