├── aula1.2 ├── introdução_a_collections.py └── Introdução_a_Collections.ipynb ├── aula1.3 ├── introdução_a_collections (1).py └── Introdução_a_Collections (1).ipynb ├── aula1.4 ├── introdução_a_collections.py └── Introdução_a_Collections.ipynb ├── aula2.1 └── introdução_a_collections.py ├── aula2.2 └── introdução_a_collections.py ├── aula2.3 └── introdução_a_collections.py ├── aula3.1 └── introdução_a_collections.py ├── aula3.3 └── introdução_a_collections.py ├── aula4.1 └── introdução_a_collections.py ├── aula5.1 └── introdução_a_collections.py ├── aula6.1 └── introdução_a_collections.py ├── aula7.1 └── introdução_a_collections.py ├── aula7.2 └── introdução_a_collections.py └── aula8.1 └── introdução_a_collections.py /aula1.2/introdução_a_collections.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | """Introdução a Collections 3 | 4 | Automatically generated by Colaboratory. 5 | 6 | Original file is located at 7 | https://colab.research.google.com/drive/1Xajf8Uy5Mm_1ZfpSHj5JaHtw9TiSgV0u 8 | """ 9 | 10 | idade1 = 39 11 | idade2 = 30 12 | idade3 = 27 13 | idade4 = 18 14 | 15 | print(idade1) 16 | print(idade2) 17 | print(idade3) 18 | print(idade4) 19 | 20 | idades = [39, 30, 27, 18] 21 | 22 | type(idades) 23 | 24 | len(idades) 25 | 26 | idades[0] 27 | 28 | idades 29 | 30 | print(idades[1]) 31 | print(idades[2]) 32 | print(idades[3]) 33 | 34 | idades.append(15) 35 | 36 | idades 37 | 38 | idades[4] 39 | 40 | idades[5] 41 | 42 | for idade in idades: 43 | print(idade) 44 | 45 | idades.remove(30) 46 | 47 | idades 48 | 49 | idades.remove(30) 50 | 51 | idades.append(15) 52 | 53 | idades 54 | 55 | idades.remove(15) 56 | 57 | idades 58 | 59 | idades.append(27) 60 | idades.remove(27) 61 | idades 62 | 63 | -------------------------------------------------------------------------------- /aula1.3/introdução_a_collections (1).py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | """Introdução a Collections 3 | 4 | Automatically generated by Colaboratory. 5 | 6 | Original file is located at 7 | https://colab.research.google.com/drive/1Xajf8Uy5Mm_1ZfpSHj5JaHtw9TiSgV0u 8 | """ 9 | 10 | idade1 = 39 11 | idade2 = 30 12 | idade3 = 27 13 | idade4 = 18 14 | 15 | print(idade1) 16 | print(idade2) 17 | print(idade3) 18 | print(idade4) 19 | 20 | idades = [39, 30, 27, 18] 21 | 22 | type(idades) 23 | 24 | len(idades) 25 | 26 | idades[0] 27 | 28 | idades 29 | 30 | print(idades[1]) 31 | print(idades[2]) 32 | print(idades[3]) 33 | 34 | idades.append(15) 35 | 36 | idades 37 | 38 | idades[4] 39 | 40 | idades[5] 41 | 42 | for idade in idades: 43 | print(idade) 44 | 45 | idades.remove(30) 46 | 47 | idades 48 | 49 | idades.remove(30) 50 | 51 | idades.append(15) 52 | 53 | idades 54 | 55 | idades.remove(15) 56 | 57 | idades 58 | 59 | idades.append(27) 60 | idades.remove(27) 61 | idades 62 | 63 | 28 in idades 64 | 65 | 15 in idades 66 | 67 | if 15 in idades: 68 | idades.remove(15) 69 | 70 | idades 71 | 72 | if 28 in idades: 73 | idades.remove(28) 74 | 75 | idades 76 | 77 | idades.append(19) 78 | idades 79 | 80 | idades.insert(0, 20) 81 | idades 82 | 83 | idades = [20, 39, 18] 84 | idades 85 | 86 | idades.append([27, 19]) 87 | 88 | idades 89 | 90 | for elemento in idades: 91 | print("Recebi o elemento", elemento) 92 | 93 | idades = [20, 39, 18] 94 | idades.extend([27, 19]) 95 | idades 96 | 97 | for idade in idades: 98 | print(idade + 1) 99 | 100 | idades_no_ano_que_vem = [] 101 | for idade in idades: 102 | idades_no_ano_que_vem.append(idade+1) 103 | idades_no_ano_que_vem 104 | 105 | idades_no_ano_que_vem = [idade+1 for idade in idades] 106 | idades_no_ano_que_vem 107 | 108 | [idade for idade in idades if idade > 21] 109 | 110 | idades 111 | 112 | def proximo_ano(idade): 113 | return idade+1 114 | 115 | [proximo_ano(idade) for idade in idades if idade > 21] 116 | 117 | -------------------------------------------------------------------------------- /aula1.4/introdução_a_collections.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | """Introdução a Collections 3 | 4 | Automatically generated by Colaboratory. 5 | 6 | Original file is located at 7 | https://colab.research.google.com/drive/1Xajf8Uy5Mm_1ZfpSHj5JaHtw9TiSgV0u 8 | """ 9 | 10 | idade1 = 39 11 | idade2 = 30 12 | idade3 = 27 13 | idade4 = 18 14 | 15 | print(idade1) 16 | print(idade2) 17 | print(idade3) 18 | print(idade4) 19 | 20 | idades = [39, 30, 27, 18] 21 | 22 | type(idades) 23 | 24 | len(idades) 25 | 26 | idades[0] 27 | 28 | idades 29 | 30 | print(idades[1]) 31 | print(idades[2]) 32 | print(idades[3]) 33 | 34 | idades.append(15) 35 | 36 | idades 37 | 38 | idades[4] 39 | 40 | idades[5] 41 | 42 | for idade in idades: 43 | print(idade) 44 | 45 | idades.remove(30) 46 | 47 | idades 48 | 49 | idades.remove(30) 50 | 51 | idades.append(15) 52 | 53 | idades 54 | 55 | idades.remove(15) 56 | 57 | idades 58 | 59 | idades.append(27) 60 | idades.remove(27) 61 | idades 62 | 63 | 28 in idades 64 | 65 | 15 in idades 66 | 67 | if 15 in idades: 68 | idades.remove(15) 69 | 70 | idades 71 | 72 | if 28 in idades: 73 | idades.remove(28) 74 | 75 | idades 76 | 77 | idades.append(19) 78 | idades 79 | 80 | idades.insert(0, 20) 81 | idades 82 | 83 | idades = [20, 39, 18] 84 | idades 85 | 86 | idades.append([27, 19]) 87 | 88 | idades 89 | 90 | for elemento in idades: 91 | print("Recebi o elemento", elemento) 92 | 93 | idades = [20, 39, 18] 94 | idades.extend([27, 19]) 95 | idades 96 | 97 | for idade in idades: 98 | print(idade + 1) 99 | 100 | idades_no_ano_que_vem = [] 101 | for idade in idades: 102 | idades_no_ano_que_vem.append(idade+1) 103 | idades_no_ano_que_vem 104 | 105 | idades_no_ano_que_vem = [idade+1 for idade in idades] 106 | idades_no_ano_que_vem 107 | 108 | [idade for idade in idades if idade > 21] 109 | 110 | idades 111 | 112 | def proximo_ano(idade): 113 | return idade+1 114 | 115 | [proximo_ano(idade) for idade in idades if idade > 21] 116 | 117 | def faz_processamento_de_visualizacao(lista): 118 | print(len(lista)) 119 | lista.append(13) 120 | 121 | idades = [16, 21, 29, 56, 43] 122 | faz_processamento_de_visualizacao(idades) 123 | idades 124 | 125 | def faz_processamento_de_visualizacao(lista = []): 126 | print(len(lista)) 127 | print(lista) 128 | lista.append(13) 129 | 130 | faz_processamento_de_visualizacao() 131 | 132 | faz_processamento_de_visualizacao() 133 | 134 | faz_processamento_de_visualizacao() 135 | 136 | faz_processamento_de_visualizacao() 137 | 138 | def faz_processamento_de_visualizacao(lista = list()): 139 | print(len(lista)) 140 | print(lista) 141 | lista.append(13) 142 | 143 | faz_processamento_de_visualizacao() 144 | faz_processamento_de_visualizacao() 145 | 146 | def faz_processamento_de_visualizacao(lista = None): 147 | if lista == None: 148 | lista = list() 149 | print(len(lista)) 150 | print(lista) 151 | lista.append(13) 152 | 153 | faz_processamento_de_visualizacao() 154 | faz_processamento_de_visualizacao() 155 | faz_processamento_de_visualizacao() 156 | faz_processamento_de_visualizacao() 157 | 158 | -------------------------------------------------------------------------------- /aula2.1/introdução_a_collections.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | """Introdução a Collections 3 | 4 | Automatically generated by Colaboratory. 5 | 6 | Original file is located at 7 | https://colab.research.google.com/drive/1Xajf8Uy5Mm_1ZfpSHj5JaHtw9TiSgV0u 8 | """ 9 | 10 | idade1 = 39 11 | idade2 = 30 12 | idade3 = 27 13 | idade4 = 18 14 | 15 | print(idade1) 16 | print(idade2) 17 | print(idade3) 18 | print(idade4) 19 | 20 | idades = [39, 30, 27, 18] 21 | 22 | type(idades) 23 | 24 | len(idades) 25 | 26 | idades[0] 27 | 28 | idades 29 | 30 | print(idades[1]) 31 | print(idades[2]) 32 | print(idades[3]) 33 | 34 | idades.append(15) 35 | 36 | idades 37 | 38 | idades[4] 39 | 40 | idades[5] 41 | 42 | for idade in idades: 43 | print(idade) 44 | 45 | idades.remove(30) 46 | 47 | idades 48 | 49 | idades.remove(30) 50 | 51 | idades.append(15) 52 | 53 | idades 54 | 55 | idades.remove(15) 56 | 57 | idades 58 | 59 | idades.append(27) 60 | idades.remove(27) 61 | idades 62 | 63 | 28 in idades 64 | 65 | 15 in idades 66 | 67 | if 15 in idades: 68 | idades.remove(15) 69 | 70 | idades 71 | 72 | if 28 in idades: 73 | idades.remove(28) 74 | 75 | idades 76 | 77 | idades.append(19) 78 | idades 79 | 80 | idades.insert(0, 20) 81 | idades 82 | 83 | idades = [20, 39, 18] 84 | idades 85 | 86 | idades.append([27, 19]) 87 | 88 | idades 89 | 90 | for elemento in idades: 91 | print("Recebi o elemento", elemento) 92 | 93 | idades = [20, 39, 18] 94 | idades.extend([27, 19]) 95 | idades 96 | 97 | for idade in idades: 98 | print(idade + 1) 99 | 100 | idades_no_ano_que_vem = [] 101 | for idade in idades: 102 | idades_no_ano_que_vem.append(idade+1) 103 | idades_no_ano_que_vem 104 | 105 | idades_no_ano_que_vem = [idade+1 for idade in idades] 106 | idades_no_ano_que_vem 107 | 108 | [idade for idade in idades if idade > 21] 109 | 110 | idades 111 | 112 | def proximo_ano(idade): 113 | return idade+1 114 | 115 | [proximo_ano(idade) for idade in idades if idade > 21] 116 | 117 | def faz_processamento_de_visualizacao(lista): 118 | print(len(lista)) 119 | lista.append(13) 120 | 121 | idades = [16, 21, 29, 56, 43] 122 | faz_processamento_de_visualizacao(idades) 123 | idades 124 | 125 | def faz_processamento_de_visualizacao(lista = []): 126 | print(len(lista)) 127 | print(lista) 128 | lista.append(13) 129 | 130 | faz_processamento_de_visualizacao() 131 | 132 | faz_processamento_de_visualizacao() 133 | 134 | faz_processamento_de_visualizacao() 135 | 136 | faz_processamento_de_visualizacao() 137 | 138 | def faz_processamento_de_visualizacao(lista = list()): 139 | print(len(lista)) 140 | print(lista) 141 | lista.append(13) 142 | 143 | faz_processamento_de_visualizacao() 144 | faz_processamento_de_visualizacao() 145 | 146 | def faz_processamento_de_visualizacao(lista = None): 147 | if lista == None: 148 | lista = list() 149 | print(len(lista)) 150 | print(lista) 151 | lista.append(13) 152 | 153 | faz_processamento_de_visualizacao() 154 | faz_processamento_de_visualizacao() 155 | faz_processamento_de_visualizacao() 156 | faz_processamento_de_visualizacao() 157 | 158 | """# Objetos próprios""" 159 | 160 | class ContaCorrente: 161 | 162 | def __init__(self, codigo): 163 | self.codigo = codigo 164 | self.saldo = 0 165 | 166 | def deposita(self, valor): 167 | self.saldo += valor 168 | 169 | def __str__(self): 170 | return "[>>Codigo {} Saldo {}<<]".format(self.codigo, self.saldo) 171 | 172 | conta_do_gui = ContaCorrente(15) 173 | print(conta_do_gui) 174 | 175 | conta_do_gui.deposita(500) 176 | print(conta_do_gui) 177 | 178 | conta_da_dani = ContaCorrente(47685) 179 | conta_da_dani.deposita(1000) 180 | print(conta_da_dani) 181 | 182 | contas = [conta_do_gui, conta_da_dani] 183 | for conta in contas: 184 | print(conta) 185 | 186 | contas = [conta_do_gui, conta_da_dani, conta_do_gui] 187 | 188 | print(contas[0]) 189 | 190 | conta_do_gui.deposita(100) 191 | 192 | print(contas[0]) 193 | 194 | print(conta_do_gui) 195 | 196 | print(contas[2]) 197 | 198 | contas[2].deposita(300) 199 | 200 | print(conta_do_gui) 201 | 202 | -------------------------------------------------------------------------------- /aula2.2/introdução_a_collections.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | """Introdução a Collections 3 | 4 | Automatically generated by Colaboratory. 5 | 6 | Original file is located at 7 | https://colab.research.google.com/drive/1Xajf8Uy5Mm_1ZfpSHj5JaHtw9TiSgV0u 8 | """ 9 | 10 | idade1 = 39 11 | idade2 = 30 12 | idade3 = 27 13 | idade4 = 18 14 | 15 | print(idade1) 16 | print(idade2) 17 | print(idade3) 18 | print(idade4) 19 | 20 | idades = [39, 30, 27, 18] 21 | 22 | type(idades) 23 | 24 | len(idades) 25 | 26 | idades[0] 27 | 28 | idades 29 | 30 | print(idades[1]) 31 | print(idades[2]) 32 | print(idades[3]) 33 | 34 | idades.append(15) 35 | 36 | idades 37 | 38 | idades[4] 39 | 40 | idades[5] 41 | 42 | for idade in idades: 43 | print(idade) 44 | 45 | idades.remove(30) 46 | 47 | idades 48 | 49 | idades.remove(30) 50 | 51 | idades.append(15) 52 | 53 | idades 54 | 55 | idades.remove(15) 56 | 57 | idades 58 | 59 | idades.append(27) 60 | idades.remove(27) 61 | idades 62 | 63 | 28 in idades 64 | 65 | 15 in idades 66 | 67 | if 15 in idades: 68 | idades.remove(15) 69 | 70 | idades 71 | 72 | if 28 in idades: 73 | idades.remove(28) 74 | 75 | idades 76 | 77 | idades.append(19) 78 | idades 79 | 80 | idades.insert(0, 20) 81 | idades 82 | 83 | idades = [20, 39, 18] 84 | idades 85 | 86 | idades.append([27, 19]) 87 | 88 | idades 89 | 90 | for elemento in idades: 91 | print("Recebi o elemento", elemento) 92 | 93 | idades = [20, 39, 18] 94 | idades.extend([27, 19]) 95 | idades 96 | 97 | for idade in idades: 98 | print(idade + 1) 99 | 100 | idades_no_ano_que_vem = [] 101 | for idade in idades: 102 | idades_no_ano_que_vem.append(idade+1) 103 | idades_no_ano_que_vem 104 | 105 | idades_no_ano_que_vem = [idade+1 for idade in idades] 106 | idades_no_ano_que_vem 107 | 108 | [idade for idade in idades if idade > 21] 109 | 110 | idades 111 | 112 | def proximo_ano(idade): 113 | return idade+1 114 | 115 | [proximo_ano(idade) for idade in idades if idade > 21] 116 | 117 | def faz_processamento_de_visualizacao(lista): 118 | print(len(lista)) 119 | lista.append(13) 120 | 121 | idades = [16, 21, 29, 56, 43] 122 | faz_processamento_de_visualizacao(idades) 123 | idades 124 | 125 | def faz_processamento_de_visualizacao(lista = []): 126 | print(len(lista)) 127 | print(lista) 128 | lista.append(13) 129 | 130 | faz_processamento_de_visualizacao() 131 | 132 | faz_processamento_de_visualizacao() 133 | 134 | faz_processamento_de_visualizacao() 135 | 136 | faz_processamento_de_visualizacao() 137 | 138 | def faz_processamento_de_visualizacao(lista = list()): 139 | print(len(lista)) 140 | print(lista) 141 | lista.append(13) 142 | 143 | faz_processamento_de_visualizacao() 144 | faz_processamento_de_visualizacao() 145 | 146 | def faz_processamento_de_visualizacao(lista = None): 147 | if lista == None: 148 | lista = list() 149 | print(len(lista)) 150 | print(lista) 151 | lista.append(13) 152 | 153 | faz_processamento_de_visualizacao() 154 | faz_processamento_de_visualizacao() 155 | faz_processamento_de_visualizacao() 156 | faz_processamento_de_visualizacao() 157 | 158 | """# Objetos próprios""" 159 | 160 | class ContaCorrente: 161 | 162 | def __init__(self, codigo): 163 | self.codigo = codigo 164 | self.saldo = 0 165 | 166 | def deposita(self, valor): 167 | self.saldo += valor 168 | 169 | def __str__(self): 170 | return "[>>Codigo {} Saldo {}<<]".format(self.codigo, self.saldo) 171 | 172 | conta_do_gui = ContaCorrente(15) 173 | print(conta_do_gui) 174 | 175 | conta_do_gui.deposita(500) 176 | print(conta_do_gui) 177 | 178 | conta_da_dani = ContaCorrente(47685) 179 | conta_da_dani.deposita(1000) 180 | print(conta_da_dani) 181 | 182 | contas = [conta_do_gui, conta_da_dani] 183 | for conta in contas: 184 | print(conta) 185 | 186 | contas = [conta_do_gui, conta_da_dani, conta_do_gui] 187 | 188 | print(contas[0]) 189 | 190 | conta_do_gui.deposita(100) 191 | 192 | print(contas[0]) 193 | 194 | print(conta_do_gui) 195 | 196 | print(contas[2]) 197 | 198 | contas[2].deposita(300) 199 | 200 | print(conta_do_gui) 201 | 202 | def deposita_para_todas(contas): 203 | for conta in contas: 204 | conta.deposita(100) 205 | 206 | contas = [conta_do_gui, conta_da_dani] 207 | print(contas[0], contas[1]) 208 | deposita_para_todas(contas) 209 | print(contas[0], contas[1]) 210 | 211 | contas.insert(0,76) 212 | print(contas[0], contas[1], contas[2]) 213 | 214 | deposita_para_todas(contas) 215 | print(contas[0], contas[1], contas[2]) 216 | 217 | guilherme = ('Guilherme', 37, 1981) # tupla 218 | daniela = ('Daniela', 31, 1987) 219 | # paulo = (39, 'Paulo', 1979) # ruim 220 | 221 | guilherme.append(6754) 222 | 223 | conta_do_gui = (15, 1000) 224 | # conta_do_gui.deposita() # variação OO 225 | conta_do_gui[1] 226 | 227 | conta_do_gui[1] += 100 228 | 229 | def deposita(conta): # variação "funcional"(separando o comportamento dos dados) 230 | novo_saldo = conta[1] + 100 231 | codigo = conta[0] 232 | return (codigo, novo_saldo) 233 | 234 | deposita(conta_do_gui) 235 | 236 | conta_do_gui 237 | 238 | conta_do_gui = deposita(conta_do_gui) 239 | conta_do_gui 240 | 241 | -------------------------------------------------------------------------------- /aula2.3/introdução_a_collections.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | """Introdução a Collections 3 | 4 | Automatically generated by Colaboratory. 5 | 6 | Original file is located at 7 | https://colab.research.google.com/drive/1Xajf8Uy5Mm_1ZfpSHj5JaHtw9TiSgV0u 8 | """ 9 | 10 | idade1 = 39 11 | idade2 = 30 12 | idade3 = 27 13 | idade4 = 18 14 | 15 | print(idade1) 16 | print(idade2) 17 | print(idade3) 18 | print(idade4) 19 | 20 | idades = [39, 30, 27, 18] 21 | 22 | type(idades) 23 | 24 | len(idades) 25 | 26 | idades[0] 27 | 28 | idades 29 | 30 | print(idades[1]) 31 | print(idades[2]) 32 | print(idades[3]) 33 | 34 | idades.append(15) 35 | 36 | idades 37 | 38 | idades[4] 39 | 40 | idades[5] 41 | 42 | for idade in idades: 43 | print(idade) 44 | 45 | idades.remove(30) 46 | 47 | idades 48 | 49 | idades.remove(30) 50 | 51 | idades.append(15) 52 | 53 | idades 54 | 55 | idades.remove(15) 56 | 57 | idades 58 | 59 | idades.append(27) 60 | idades.remove(27) 61 | idades 62 | 63 | 28 in idades 64 | 65 | 15 in idades 66 | 67 | if 15 in idades: 68 | idades.remove(15) 69 | 70 | idades 71 | 72 | if 28 in idades: 73 | idades.remove(28) 74 | 75 | idades 76 | 77 | idades.append(19) 78 | idades 79 | 80 | idades.insert(0, 20) 81 | idades 82 | 83 | idades = [20, 39, 18] 84 | idades 85 | 86 | idades.append([27, 19]) 87 | 88 | idades 89 | 90 | for elemento in idades: 91 | print("Recebi o elemento", elemento) 92 | 93 | idades = [20, 39, 18] 94 | idades.extend([27, 19]) 95 | idades 96 | 97 | for idade in idades: 98 | print(idade + 1) 99 | 100 | idades_no_ano_que_vem = [] 101 | for idade in idades: 102 | idades_no_ano_que_vem.append(idade+1) 103 | idades_no_ano_que_vem 104 | 105 | idades_no_ano_que_vem = [idade+1 for idade in idades] 106 | idades_no_ano_que_vem 107 | 108 | [idade for idade in idades if idade > 21] 109 | 110 | idades 111 | 112 | def proximo_ano(idade): 113 | return idade+1 114 | 115 | [proximo_ano(idade) for idade in idades if idade > 21] 116 | 117 | def faz_processamento_de_visualizacao(lista): 118 | print(len(lista)) 119 | lista.append(13) 120 | 121 | idades = [16, 21, 29, 56, 43] 122 | faz_processamento_de_visualizacao(idades) 123 | idades 124 | 125 | def faz_processamento_de_visualizacao(lista = []): 126 | print(len(lista)) 127 | print(lista) 128 | lista.append(13) 129 | 130 | faz_processamento_de_visualizacao() 131 | 132 | faz_processamento_de_visualizacao() 133 | 134 | faz_processamento_de_visualizacao() 135 | 136 | faz_processamento_de_visualizacao() 137 | 138 | def faz_processamento_de_visualizacao(lista = list()): 139 | print(len(lista)) 140 | print(lista) 141 | lista.append(13) 142 | 143 | faz_processamento_de_visualizacao() 144 | faz_processamento_de_visualizacao() 145 | 146 | def faz_processamento_de_visualizacao(lista = None): 147 | if lista == None: 148 | lista = list() 149 | print(len(lista)) 150 | print(lista) 151 | lista.append(13) 152 | 153 | faz_processamento_de_visualizacao() 154 | faz_processamento_de_visualizacao() 155 | faz_processamento_de_visualizacao() 156 | faz_processamento_de_visualizacao() 157 | 158 | """# Objetos próprios""" 159 | 160 | class ContaCorrente: 161 | 162 | def __init__(self, codigo): 163 | self.codigo = codigo 164 | self.saldo = 0 165 | 166 | def deposita(self, valor): 167 | self.saldo += valor 168 | 169 | def __str__(self): 170 | return "[>>Codigo {} Saldo {}<<]".format(self.codigo, self.saldo) 171 | 172 | conta_do_gui = ContaCorrente(15) 173 | print(conta_do_gui) 174 | 175 | conta_do_gui.deposita(500) 176 | print(conta_do_gui) 177 | 178 | conta_da_dani = ContaCorrente(47685) 179 | conta_da_dani.deposita(1000) 180 | print(conta_da_dani) 181 | 182 | contas = [conta_do_gui, conta_da_dani] 183 | for conta in contas: 184 | print(conta) 185 | 186 | contas = [conta_do_gui, conta_da_dani, conta_do_gui] 187 | 188 | print(contas[0]) 189 | 190 | conta_do_gui.deposita(100) 191 | 192 | print(contas[0]) 193 | 194 | print(conta_do_gui) 195 | 196 | print(contas[2]) 197 | 198 | contas[2].deposita(300) 199 | 200 | print(conta_do_gui) 201 | 202 | def deposita_para_todas(contas): 203 | for conta in contas: 204 | conta.deposita(100) 205 | 206 | contas = [conta_do_gui, conta_da_dani] 207 | print(contas[0], contas[1]) 208 | deposita_para_todas(contas) 209 | print(contas[0], contas[1]) 210 | 211 | contas.insert(0,76) 212 | print(contas[0], contas[1], contas[2]) 213 | 214 | deposita_para_todas(contas) 215 | print(contas[0], contas[1], contas[2]) 216 | 217 | guilherme = ('Guilherme', 37, 1981) # tupla 218 | daniela = ('Daniela', 31, 1987) 219 | # paulo = (39, 'Paulo', 1979) # ruim 220 | 221 | guilherme.append(6754) 222 | 223 | conta_do_gui = (15, 1000) 224 | # conta_do_gui.deposita() # variação OO 225 | conta_do_gui[1] 226 | 227 | conta_do_gui[1] += 100 228 | 229 | def deposita(conta): # variação "funcional"(separando o comportamento dos dados) 230 | novo_saldo = conta[1] + 100 231 | codigo = conta[0] 232 | return (codigo, novo_saldo) 233 | 234 | deposita(conta_do_gui) 235 | 236 | conta_do_gui 237 | 238 | conta_do_gui = deposita(conta_do_gui) 239 | conta_do_gui 240 | 241 | usuarios = [guilherme, daniela] 242 | usuarios 243 | 244 | usuarios.append(('Paulo', 39, 1979)) 245 | 246 | usuarios 247 | 248 | usuarios[0][0] = 'Guilherme Silveira' 249 | 250 | conta_do_gui = ContaCorrente(15) 251 | conta_do_gui.deposita(500) 252 | conta_da_dani = ContaCorrente(234876) 253 | conta_da_dani.deposita(1000) 254 | 255 | contas = (conta_do_gui, conta_da_dani) 256 | 257 | for conta in contas: 258 | print(conta) 259 | 260 | contas.append(423768) 261 | 262 | contas[0].deposita(300) 263 | 264 | for conta in contas: 265 | print(conta) 266 | 267 | -------------------------------------------------------------------------------- /aula3.1/introdução_a_collections.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | """Introdução a Collections 3 | 4 | Automatically generated by Colaboratory. 5 | 6 | Original file is located at 7 | https://colab.research.google.com/drive/1Xajf8Uy5Mm_1ZfpSHj5JaHtw9TiSgV0u 8 | """ 9 | 10 | idade1 = 39 11 | idade2 = 30 12 | idade3 = 27 13 | idade4 = 18 14 | 15 | print(idade1) 16 | print(idade2) 17 | print(idade3) 18 | print(idade4) 19 | 20 | idades = [39, 30, 27, 18] 21 | 22 | type(idades) 23 | 24 | len(idades) 25 | 26 | idades[0] 27 | 28 | idades 29 | 30 | print(idades[1]) 31 | print(idades[2]) 32 | print(idades[3]) 33 | 34 | idades.append(15) 35 | 36 | idades 37 | 38 | idades[4] 39 | 40 | idades[5] 41 | 42 | for idade in idades: 43 | print(idade) 44 | 45 | idades.remove(30) 46 | 47 | idades 48 | 49 | idades.remove(30) 50 | 51 | idades.append(15) 52 | 53 | idades 54 | 55 | idades.remove(15) 56 | 57 | idades 58 | 59 | idades.append(27) 60 | idades.remove(27) 61 | idades 62 | 63 | 28 in idades 64 | 65 | 15 in idades 66 | 67 | if 15 in idades: 68 | idades.remove(15) 69 | 70 | idades 71 | 72 | if 28 in idades: 73 | idades.remove(28) 74 | 75 | idades 76 | 77 | idades.append(19) 78 | idades 79 | 80 | idades.insert(0, 20) 81 | idades 82 | 83 | idades = [20, 39, 18] 84 | idades 85 | 86 | idades.append([27, 19]) 87 | 88 | idades 89 | 90 | for elemento in idades: 91 | print("Recebi o elemento", elemento) 92 | 93 | idades = [20, 39, 18] 94 | idades.extend([27, 19]) 95 | idades 96 | 97 | for idade in idades: 98 | print(idade + 1) 99 | 100 | idades_no_ano_que_vem = [] 101 | for idade in idades: 102 | idades_no_ano_que_vem.append(idade+1) 103 | idades_no_ano_que_vem 104 | 105 | idades_no_ano_que_vem = [idade+1 for idade in idades] 106 | idades_no_ano_que_vem 107 | 108 | [idade for idade in idades if idade > 21] 109 | 110 | idades 111 | 112 | def proximo_ano(idade): 113 | return idade+1 114 | 115 | [proximo_ano(idade) for idade in idades if idade > 21] 116 | 117 | def faz_processamento_de_visualizacao(lista): 118 | print(len(lista)) 119 | lista.append(13) 120 | 121 | idades = [16, 21, 29, 56, 43] 122 | faz_processamento_de_visualizacao(idades) 123 | idades 124 | 125 | def faz_processamento_de_visualizacao(lista = []): 126 | print(len(lista)) 127 | print(lista) 128 | lista.append(13) 129 | 130 | faz_processamento_de_visualizacao() 131 | 132 | faz_processamento_de_visualizacao() 133 | 134 | faz_processamento_de_visualizacao() 135 | 136 | faz_processamento_de_visualizacao() 137 | 138 | def faz_processamento_de_visualizacao(lista = list()): 139 | print(len(lista)) 140 | print(lista) 141 | lista.append(13) 142 | 143 | faz_processamento_de_visualizacao() 144 | faz_processamento_de_visualizacao() 145 | 146 | def faz_processamento_de_visualizacao(lista = None): 147 | if lista == None: 148 | lista = list() 149 | print(len(lista)) 150 | print(lista) 151 | lista.append(13) 152 | 153 | faz_processamento_de_visualizacao() 154 | faz_processamento_de_visualizacao() 155 | faz_processamento_de_visualizacao() 156 | faz_processamento_de_visualizacao() 157 | 158 | """# Objetos próprios""" 159 | 160 | class ContaCorrente: 161 | 162 | def __init__(self, codigo): 163 | self.codigo = codigo 164 | self.saldo = 0 165 | 166 | def deposita(self, valor): 167 | self.saldo += valor 168 | 169 | def __str__(self): 170 | return "[>>Codigo {} Saldo {}<<]".format(self.codigo, self.saldo) 171 | 172 | conta_do_gui = ContaCorrente(15) 173 | print(conta_do_gui) 174 | 175 | conta_do_gui.deposita(500) 176 | print(conta_do_gui) 177 | 178 | conta_da_dani = ContaCorrente(47685) 179 | conta_da_dani.deposita(1000) 180 | print(conta_da_dani) 181 | 182 | contas = [conta_do_gui, conta_da_dani] 183 | for conta in contas: 184 | print(conta) 185 | 186 | contas = [conta_do_gui, conta_da_dani, conta_do_gui] 187 | 188 | print(contas[0]) 189 | 190 | conta_do_gui.deposita(100) 191 | 192 | print(contas[0]) 193 | 194 | print(conta_do_gui) 195 | 196 | print(contas[2]) 197 | 198 | contas[2].deposita(300) 199 | 200 | print(conta_do_gui) 201 | 202 | def deposita_para_todas(contas): 203 | for conta in contas: 204 | conta.deposita(100) 205 | 206 | contas = [conta_do_gui, conta_da_dani] 207 | print(contas[0], contas[1]) 208 | deposita_para_todas(contas) 209 | print(contas[0], contas[1]) 210 | 211 | contas.insert(0,76) 212 | print(contas[0], contas[1], contas[2]) 213 | 214 | deposita_para_todas(contas) 215 | print(contas[0], contas[1], contas[2]) 216 | 217 | guilherme = ('Guilherme', 37, 1981) # tupla 218 | daniela = ('Daniela', 31, 1987) 219 | # paulo = (39, 'Paulo', 1979) # ruim 220 | 221 | guilherme.append(6754) 222 | 223 | conta_do_gui = (15, 1000) 224 | # conta_do_gui.deposita() # variação OO 225 | conta_do_gui[1] 226 | 227 | conta_do_gui[1] += 100 228 | 229 | def deposita(conta): # variação "funcional"(separando o comportamento dos dados) 230 | novo_saldo = conta[1] + 100 231 | codigo = conta[0] 232 | return (codigo, novo_saldo) 233 | 234 | deposita(conta_do_gui) 235 | 236 | conta_do_gui 237 | 238 | conta_do_gui = deposita(conta_do_gui) 239 | conta_do_gui 240 | 241 | usuarios = [guilherme, daniela] 242 | usuarios 243 | 244 | usuarios.append(('Paulo', 39, 1979)) 245 | 246 | usuarios 247 | 248 | usuarios[0][0] = 'Guilherme Silveira' 249 | 250 | conta_do_gui = ContaCorrente(15) 251 | conta_do_gui.deposita(500) 252 | conta_da_dani = ContaCorrente(234876) 253 | conta_da_dani.deposita(1000) 254 | 255 | contas = (conta_do_gui, conta_da_dani) 256 | 257 | for conta in contas: 258 | print(conta) 259 | 260 | contas.append(423768) 261 | 262 | contas[0].deposita(300) 263 | 264 | for conta in contas: 265 | print(conta) 266 | 267 | """# Herança e polimorfismo""" 268 | 269 | class Conta: 270 | 271 | def __init__(self, codigo): 272 | self._codigo = codigo 273 | self._saldo = 0 274 | 275 | def deposita(self, valor): 276 | self._saldo += valor 277 | 278 | def __str__(self): 279 | return "[>>Codigo {} Saldo {}<<]".format(self._codigo, self._saldo) 280 | 281 | print(Conta(88)) 282 | 283 | class ContaCorrente(Conta): 284 | 285 | def passa_o_mes(self): 286 | self._saldo -= 2 287 | 288 | class ContaPoupanca(Conta): 289 | 290 | def passa_o_mes(self): 291 | self._saldo *= 1.01 292 | self._saldo -= 3 293 | 294 | conta16 = ContaCorrente(16) 295 | conta16.deposita(1000) 296 | conta16.passa_o_mes() 297 | print(conta16) 298 | 299 | conta17 = ContaPoupanca(17) 300 | conta17.deposita(1000) 301 | conta17.passa_o_mes() 302 | print(conta17) 303 | 304 | conta16 = ContaCorrente(16) 305 | conta16.deposita(1000) 306 | conta17 = ContaPoupanca(17) 307 | conta17.deposita(1000) 308 | contas = [conta16, conta17] 309 | 310 | for conta in contas: 311 | conta.passa_o_mes() # duck typing 312 | print(conta) 313 | 314 | -------------------------------------------------------------------------------- /aula3.3/introdução_a_collections.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | """Introdução a Collections 3 | 4 | Automatically generated by Colaboratory. 5 | 6 | Original file is located at 7 | https://colab.research.google.com/drive/1Xajf8Uy5Mm_1ZfpSHj5JaHtw9TiSgV0u 8 | """ 9 | 10 | idade1 = 39 11 | idade2 = 30 12 | idade3 = 27 13 | idade4 = 18 14 | 15 | print(idade1) 16 | print(idade2) 17 | print(idade3) 18 | print(idade4) 19 | 20 | idades = [39, 30, 27, 18] 21 | 22 | type(idades) 23 | 24 | len(idades) 25 | 26 | idades[0] 27 | 28 | idades 29 | 30 | print(idades[1]) 31 | print(idades[2]) 32 | print(idades[3]) 33 | 34 | idades.append(15) 35 | 36 | idades 37 | 38 | idades[4] 39 | 40 | idades[5] 41 | 42 | for idade in idades: 43 | print(idade) 44 | 45 | idades.remove(30) 46 | 47 | idades 48 | 49 | idades.remove(30) 50 | 51 | idades.append(15) 52 | 53 | idades 54 | 55 | idades.remove(15) 56 | 57 | idades 58 | 59 | idades.append(27) 60 | idades.remove(27) 61 | idades 62 | 63 | 28 in idades 64 | 65 | 15 in idades 66 | 67 | if 15 in idades: 68 | idades.remove(15) 69 | 70 | idades 71 | 72 | if 28 in idades: 73 | idades.remove(28) 74 | 75 | idades 76 | 77 | idades.append(19) 78 | idades 79 | 80 | idades.insert(0, 20) 81 | idades 82 | 83 | idades = [20, 39, 18] 84 | idades 85 | 86 | idades.append([27, 19]) 87 | 88 | idades 89 | 90 | for elemento in idades: 91 | print("Recebi o elemento", elemento) 92 | 93 | idades = [20, 39, 18] 94 | idades.extend([27, 19]) 95 | idades 96 | 97 | for idade in idades: 98 | print(idade + 1) 99 | 100 | idades_no_ano_que_vem = [] 101 | for idade in idades: 102 | idades_no_ano_que_vem.append(idade+1) 103 | idades_no_ano_que_vem 104 | 105 | idades_no_ano_que_vem = [idade+1 for idade in idades] 106 | idades_no_ano_que_vem 107 | 108 | [idade for idade in idades if idade > 21] 109 | 110 | idades 111 | 112 | def proximo_ano(idade): 113 | return idade+1 114 | 115 | [proximo_ano(idade) for idade in idades if idade > 21] 116 | 117 | def faz_processamento_de_visualizacao(lista): 118 | print(len(lista)) 119 | lista.append(13) 120 | 121 | idades = [16, 21, 29, 56, 43] 122 | faz_processamento_de_visualizacao(idades) 123 | idades 124 | 125 | def faz_processamento_de_visualizacao(lista = []): 126 | print(len(lista)) 127 | print(lista) 128 | lista.append(13) 129 | 130 | faz_processamento_de_visualizacao() 131 | 132 | faz_processamento_de_visualizacao() 133 | 134 | faz_processamento_de_visualizacao() 135 | 136 | faz_processamento_de_visualizacao() 137 | 138 | def faz_processamento_de_visualizacao(lista = list()): 139 | print(len(lista)) 140 | print(lista) 141 | lista.append(13) 142 | 143 | faz_processamento_de_visualizacao() 144 | faz_processamento_de_visualizacao() 145 | 146 | def faz_processamento_de_visualizacao(lista = None): 147 | if lista == None: 148 | lista = list() 149 | print(len(lista)) 150 | print(lista) 151 | lista.append(13) 152 | 153 | faz_processamento_de_visualizacao() 154 | faz_processamento_de_visualizacao() 155 | faz_processamento_de_visualizacao() 156 | faz_processamento_de_visualizacao() 157 | 158 | """# Objetos próprios""" 159 | 160 | class ContaCorrente: 161 | 162 | def __init__(self, codigo): 163 | self.codigo = codigo 164 | self.saldo = 0 165 | 166 | def deposita(self, valor): 167 | self.saldo += valor 168 | 169 | def __str__(self): 170 | return "[>>Codigo {} Saldo {}<<]".format(self.codigo, self.saldo) 171 | 172 | conta_do_gui = ContaCorrente(15) 173 | print(conta_do_gui) 174 | 175 | conta_do_gui.deposita(500) 176 | print(conta_do_gui) 177 | 178 | conta_da_dani = ContaCorrente(47685) 179 | conta_da_dani.deposita(1000) 180 | print(conta_da_dani) 181 | 182 | contas = [conta_do_gui, conta_da_dani] 183 | for conta in contas: 184 | print(conta) 185 | 186 | contas = [conta_do_gui, conta_da_dani, conta_do_gui] 187 | 188 | print(contas[0]) 189 | 190 | conta_do_gui.deposita(100) 191 | 192 | print(contas[0]) 193 | 194 | print(conta_do_gui) 195 | 196 | print(contas[2]) 197 | 198 | contas[2].deposita(300) 199 | 200 | print(conta_do_gui) 201 | 202 | def deposita_para_todas(contas): 203 | for conta in contas: 204 | conta.deposita(100) 205 | 206 | contas = [conta_do_gui, conta_da_dani] 207 | print(contas[0], contas[1]) 208 | deposita_para_todas(contas) 209 | print(contas[0], contas[1]) 210 | 211 | contas.insert(0,76) 212 | print(contas[0], contas[1], contas[2]) 213 | 214 | deposita_para_todas(contas) 215 | print(contas[0], contas[1], contas[2]) 216 | 217 | guilherme = ('Guilherme', 37, 1981) # tupla 218 | daniela = ('Daniela', 31, 1987) 219 | # paulo = (39, 'Paulo', 1979) # ruim 220 | 221 | guilherme.append(6754) 222 | 223 | conta_do_gui = (15, 1000) 224 | # conta_do_gui.deposita() # variação OO 225 | conta_do_gui[1] 226 | 227 | conta_do_gui[1] += 100 228 | 229 | def deposita(conta): # variação "funcional"(separando o comportamento dos dados) 230 | novo_saldo = conta[1] + 100 231 | codigo = conta[0] 232 | return (codigo, novo_saldo) 233 | 234 | deposita(conta_do_gui) 235 | 236 | conta_do_gui 237 | 238 | conta_do_gui = deposita(conta_do_gui) 239 | conta_do_gui 240 | 241 | usuarios = [guilherme, daniela] 242 | usuarios 243 | 244 | usuarios.append(('Paulo', 39, 1979)) 245 | 246 | usuarios 247 | 248 | usuarios[0][0] = 'Guilherme Silveira' 249 | 250 | conta_do_gui = ContaCorrente(15) 251 | conta_do_gui.deposita(500) 252 | conta_da_dani = ContaCorrente(234876) 253 | conta_da_dani.deposita(1000) 254 | 255 | contas = (conta_do_gui, conta_da_dani) 256 | 257 | for conta in contas: 258 | print(conta) 259 | 260 | contas.append(423768) 261 | 262 | contas[0].deposita(300) 263 | 264 | for conta in contas: 265 | print(conta) 266 | 267 | """# Herança e polimorfismo""" 268 | 269 | from abc import ABCMeta, abstractmethod 270 | 271 | class Conta(metaclass=ABCMeta): 272 | 273 | def __init__(self, codigo): 274 | self._codigo = codigo 275 | self._saldo = 0 276 | 277 | def deposita(self, valor): 278 | self._saldo += valor 279 | 280 | @abstractmethod 281 | def passa_o_mes(self): 282 | pass 283 | 284 | def __str__(self): 285 | return "[>>Codigo {} Saldo {}<<]".format(self._codigo, self._saldo) 286 | 287 | print(Conta(88)) 288 | 289 | class ContaCorrente(Conta): 290 | 291 | def passa_o_mes(self): 292 | self._saldo -= 2 293 | 294 | class ContaPoupanca(Conta): 295 | 296 | def passa_o_mes(self): 297 | self._saldo *= 1.01 298 | self._saldo -= 3 299 | 300 | class ContaInvestimento(Conta): 301 | pass 302 | 303 | ContaInvestimento(764) 304 | 305 | conta16 = ContaCorrente(16) 306 | conta16.deposita(1000) 307 | conta16.passa_o_mes() 308 | print(conta16) 309 | 310 | conta17 = ContaPoupanca(17) 311 | conta17.deposita(1000) 312 | conta17.passa_o_mes() 313 | print(conta17) 314 | 315 | conta16 = ContaCorrente(16) 316 | conta16.deposita(1000) 317 | conta17 = ContaPoupanca(17) 318 | conta17.deposita(1000) 319 | contas = [conta16, conta17] 320 | 321 | for conta in contas: 322 | conta.passa_o_mes() # duck typing 323 | print(conta) 324 | 325 | """# evitaremos usar array puro. se precisamos de trabalho numérico, é costume usar o numpy""" 326 | 327 | import array as arr 328 | 329 | arr.array('d', [1, 3.5]) 330 | 331 | arr.array('d', [1, 3.5, 'Guilherme']) 332 | 333 | !pip install numpy 334 | 335 | import numpy as np 336 | 337 | numeros = np.array([1, 3.5]) 338 | numeros 339 | 340 | numeros + 3 341 | 342 | -------------------------------------------------------------------------------- /aula4.1/introdução_a_collections.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | """Introdução a Collections 3 | 4 | Automatically generated by Colaboratory. 5 | 6 | Original file is located at 7 | https://colab.research.google.com/drive/1Xajf8Uy5Mm_1ZfpSHj5JaHtw9TiSgV0u 8 | """ 9 | 10 | idade1 = 39 11 | idade2 = 30 12 | idade3 = 27 13 | idade4 = 18 14 | 15 | print(idade1) 16 | print(idade2) 17 | print(idade3) 18 | print(idade4) 19 | 20 | idades = [39, 30, 27, 18] 21 | 22 | type(idades) 23 | 24 | len(idades) 25 | 26 | idades[0] 27 | 28 | idades 29 | 30 | print(idades[1]) 31 | print(idades[2]) 32 | print(idades[3]) 33 | 34 | idades.append(15) 35 | 36 | idades 37 | 38 | idades[4] 39 | 40 | idades[5] 41 | 42 | for idade in idades: 43 | print(idade) 44 | 45 | idades.remove(30) 46 | 47 | idades 48 | 49 | idades.remove(30) 50 | 51 | idades.append(15) 52 | 53 | idades 54 | 55 | idades.remove(15) 56 | 57 | idades 58 | 59 | idades.append(27) 60 | idades.remove(27) 61 | idades 62 | 63 | 28 in idades 64 | 65 | 15 in idades 66 | 67 | if 15 in idades: 68 | idades.remove(15) 69 | 70 | idades 71 | 72 | if 28 in idades: 73 | idades.remove(28) 74 | 75 | idades 76 | 77 | idades.append(19) 78 | idades 79 | 80 | idades.insert(0, 20) 81 | idades 82 | 83 | idades = [20, 39, 18] 84 | idades 85 | 86 | idades.append([27, 19]) 87 | 88 | idades 89 | 90 | for elemento in idades: 91 | print("Recebi o elemento", elemento) 92 | 93 | idades = [20, 39, 18] 94 | idades.extend([27, 19]) 95 | idades 96 | 97 | for idade in idades: 98 | print(idade + 1) 99 | 100 | idades_no_ano_que_vem = [] 101 | for idade in idades: 102 | idades_no_ano_que_vem.append(idade+1) 103 | idades_no_ano_que_vem 104 | 105 | idades_no_ano_que_vem = [idade+1 for idade in idades] 106 | idades_no_ano_que_vem 107 | 108 | [idade for idade in idades if idade > 21] 109 | 110 | idades 111 | 112 | def proximo_ano(idade): 113 | return idade+1 114 | 115 | [proximo_ano(idade) for idade in idades if idade > 21] 116 | 117 | def faz_processamento_de_visualizacao(lista): 118 | print(len(lista)) 119 | lista.append(13) 120 | 121 | idades = [16, 21, 29, 56, 43] 122 | faz_processamento_de_visualizacao(idades) 123 | idades 124 | 125 | def faz_processamento_de_visualizacao(lista = []): 126 | print(len(lista)) 127 | print(lista) 128 | lista.append(13) 129 | 130 | faz_processamento_de_visualizacao() 131 | 132 | faz_processamento_de_visualizacao() 133 | 134 | faz_processamento_de_visualizacao() 135 | 136 | faz_processamento_de_visualizacao() 137 | 138 | def faz_processamento_de_visualizacao(lista = list()): 139 | print(len(lista)) 140 | print(lista) 141 | lista.append(13) 142 | 143 | faz_processamento_de_visualizacao() 144 | faz_processamento_de_visualizacao() 145 | 146 | def faz_processamento_de_visualizacao(lista = None): 147 | if lista == None: 148 | lista = list() 149 | print(len(lista)) 150 | print(lista) 151 | lista.append(13) 152 | 153 | faz_processamento_de_visualizacao() 154 | faz_processamento_de_visualizacao() 155 | faz_processamento_de_visualizacao() 156 | faz_processamento_de_visualizacao() 157 | 158 | """# Objetos próprios""" 159 | 160 | class ContaCorrente: 161 | 162 | def __init__(self, codigo): 163 | self.codigo = codigo 164 | self.saldo = 0 165 | 166 | def deposita(self, valor): 167 | self.saldo += valor 168 | 169 | def __str__(self): 170 | return "[>>Codigo {} Saldo {}<<]".format(self.codigo, self.saldo) 171 | 172 | conta_do_gui = ContaCorrente(15) 173 | print(conta_do_gui) 174 | 175 | conta_do_gui.deposita(500) 176 | print(conta_do_gui) 177 | 178 | conta_da_dani = ContaCorrente(47685) 179 | conta_da_dani.deposita(1000) 180 | print(conta_da_dani) 181 | 182 | contas = [conta_do_gui, conta_da_dani] 183 | for conta in contas: 184 | print(conta) 185 | 186 | contas = [conta_do_gui, conta_da_dani, conta_do_gui] 187 | 188 | print(contas[0]) 189 | 190 | conta_do_gui.deposita(100) 191 | 192 | print(contas[0]) 193 | 194 | print(conta_do_gui) 195 | 196 | print(contas[2]) 197 | 198 | contas[2].deposita(300) 199 | 200 | print(conta_do_gui) 201 | 202 | def deposita_para_todas(contas): 203 | for conta in contas: 204 | conta.deposita(100) 205 | 206 | contas = [conta_do_gui, conta_da_dani] 207 | print(contas[0], contas[1]) 208 | deposita_para_todas(contas) 209 | print(contas[0], contas[1]) 210 | 211 | contas.insert(0,76) 212 | print(contas[0], contas[1], contas[2]) 213 | 214 | deposita_para_todas(contas) 215 | print(contas[0], contas[1], contas[2]) 216 | 217 | guilherme = ('Guilherme', 37, 1981) # tupla 218 | daniela = ('Daniela', 31, 1987) 219 | # paulo = (39, 'Paulo', 1979) # ruim 220 | 221 | guilherme.append(6754) 222 | 223 | conta_do_gui = (15, 1000) 224 | # conta_do_gui.deposita() # variação OO 225 | conta_do_gui[1] 226 | 227 | conta_do_gui[1] += 100 228 | 229 | def deposita(conta): # variação "funcional"(separando o comportamento dos dados) 230 | novo_saldo = conta[1] + 100 231 | codigo = conta[0] 232 | return (codigo, novo_saldo) 233 | 234 | deposita(conta_do_gui) 235 | 236 | conta_do_gui 237 | 238 | conta_do_gui = deposita(conta_do_gui) 239 | conta_do_gui 240 | 241 | usuarios = [guilherme, daniela] 242 | usuarios 243 | 244 | usuarios.append(('Paulo', 39, 1979)) 245 | 246 | usuarios 247 | 248 | usuarios[0][0] = 'Guilherme Silveira' 249 | 250 | conta_do_gui = ContaCorrente(15) 251 | conta_do_gui.deposita(500) 252 | conta_da_dani = ContaCorrente(234876) 253 | conta_da_dani.deposita(1000) 254 | 255 | contas = (conta_do_gui, conta_da_dani) 256 | 257 | for conta in contas: 258 | print(conta) 259 | 260 | contas.append(423768) 261 | 262 | contas[0].deposita(300) 263 | 264 | for conta in contas: 265 | print(conta) 266 | 267 | """# Herança e polimorfismo""" 268 | 269 | from abc import ABCMeta, abstractmethod 270 | 271 | class Conta(metaclass=ABCMeta): 272 | 273 | def __init__(self, codigo): 274 | self._codigo = codigo 275 | self._saldo = 0 276 | 277 | def deposita(self, valor): 278 | self._saldo += valor 279 | 280 | @abstractmethod 281 | def passa_o_mes(self): 282 | pass 283 | 284 | def __str__(self): 285 | return "[>>Codigo {} Saldo {}<<]".format(self._codigo, self._saldo) 286 | 287 | print(Conta(88)) 288 | 289 | class ContaCorrente(Conta): 290 | 291 | def passa_o_mes(self): 292 | self._saldo -= 2 293 | 294 | class ContaPoupanca(Conta): 295 | 296 | def passa_o_mes(self): 297 | self._saldo *= 1.01 298 | self._saldo -= 3 299 | 300 | class ContaInvestimento(Conta): 301 | pass 302 | 303 | ContaInvestimento(764) 304 | 305 | conta16 = ContaCorrente(16) 306 | conta16.deposita(1000) 307 | conta16.passa_o_mes() 308 | print(conta16) 309 | 310 | conta17 = ContaPoupanca(17) 311 | conta17.deposita(1000) 312 | conta17.passa_o_mes() 313 | print(conta17) 314 | 315 | conta16 = ContaCorrente(16) 316 | conta16.deposita(1000) 317 | conta17 = ContaPoupanca(17) 318 | conta17.deposita(1000) 319 | contas = [conta16, conta17] 320 | 321 | for conta in contas: 322 | conta.passa_o_mes() # duck typing 323 | print(conta) 324 | 325 | """# evitaremos usar array puro. se precisamos de trabalho numérico, é costume usar o numpy""" 326 | 327 | import array as arr 328 | 329 | arr.array('d', [1, 3.5]) 330 | 331 | arr.array('d', [1, 3.5, 'Guilherme']) 332 | 333 | !pip install numpy 334 | 335 | import numpy as np 336 | 337 | numeros = np.array([1, 3.5]) 338 | numeros 339 | 340 | numeros + 3 341 | 342 | class ContaSalario: 343 | 344 | def __init__(self, codigo): 345 | self._codigo = codigo 346 | self._saldo = 0 347 | 348 | def deposita(self, valor): 349 | self._saldo += valor 350 | 351 | def __str__(self): 352 | return "[>>Codigo {} Saldo {}<<]".format(self._codigo, self._saldo) 353 | 354 | conta1 = ContaSalario(37) 355 | print(conta1) 356 | 357 | conta2 = ContaSalario(37) 358 | print(conta2) 359 | 360 | conta1 == conta2 361 | 362 | contas = [conta1] 363 | conta1 in contas 364 | 365 | conta2 in contas 366 | 367 | class ContaSalario: 368 | 369 | def __init__(self, codigo): 370 | self._codigo = codigo 371 | self._saldo = 0 372 | 373 | def __eq__(self, outro): 374 | return self._codigo == outro._codigo 375 | 376 | def deposita(self, valor): 377 | self._saldo += valor 378 | 379 | def __str__(self): 380 | return "[>>Codigo {} Saldo {}<<]".format(self._codigo, self._saldo) 381 | 382 | conta1 = ContaSalario(37) 383 | conta2 = ContaSalario(37) 384 | conta1 == conta2 385 | 386 | conta1 != conta2 387 | 388 | conta1 in [conta2] 389 | 390 | conta2 in [conta1] 391 | 392 | class ContaSalario: 393 | 394 | def __init__(self, codigo): 395 | self._codigo = codigo 396 | self._saldo = 0 397 | 398 | def __eq__(self, outro): 399 | return self._codigo == outro._codigo and self._saldo == outro._saldo 400 | 401 | def deposita(self, valor): 402 | self._saldo += valor 403 | 404 | def __str__(self): 405 | return "[>>Codigo {} Saldo {}<<]".format(self._codigo, self._saldo) 406 | 407 | conta1 = ContaSalario(37) 408 | conta2 = ContaSalario(37) 409 | conta1 == conta2 410 | 411 | conta1.deposita(10) 412 | 413 | conta1 == conta2 414 | 415 | class ContaSalario: 416 | 417 | def __init__(self, codigo): 418 | self._codigo = codigo 419 | self._saldo = 0 420 | 421 | def __eq__(self, outro): 422 | if type(outro) != ContaSalario: 423 | return False 424 | 425 | return self._codigo == outro._codigo and self._saldo == outro._saldo 426 | 427 | def deposita(self, valor): 428 | self._saldo += valor 429 | 430 | def __str__(self): 431 | return "[>>Codigo {} Saldo {}<<]".format(self._codigo, self._saldo) 432 | 433 | conta1 = ContaSalario(37) 434 | conta2 = ContaCorrente(37) 435 | 436 | conta1 == conta2 437 | 438 | isinstance(ContaCorrente(34), ContaCorrente) 439 | 440 | isinstance(ContaCorrente(34), Conta) 441 | 442 | -------------------------------------------------------------------------------- /aula5.1/introdução_a_collections.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | """Introdução a Collections 3 | 4 | Automatically generated by Colaboratory. 5 | 6 | Original file is located at 7 | https://colab.research.google.com/drive/1Xajf8Uy5Mm_1ZfpSHj5JaHtw9TiSgV0u 8 | """ 9 | 10 | idade1 = 39 11 | idade2 = 30 12 | idade3 = 27 13 | idade4 = 18 14 | 15 | print(idade1) 16 | print(idade2) 17 | print(idade3) 18 | print(idade4) 19 | 20 | idades = [39, 30, 27, 18] 21 | 22 | type(idades) 23 | 24 | len(idades) 25 | 26 | idades[0] 27 | 28 | idades 29 | 30 | print(idades[1]) 31 | print(idades[2]) 32 | print(idades[3]) 33 | 34 | idades.append(15) 35 | 36 | idades 37 | 38 | idades[4] 39 | 40 | idades[5] 41 | 42 | for idade in idades: 43 | print(idade) 44 | 45 | idades.remove(30) 46 | 47 | idades 48 | 49 | idades.remove(30) 50 | 51 | idades.append(15) 52 | 53 | idades 54 | 55 | idades.remove(15) 56 | 57 | idades 58 | 59 | idades.append(27) 60 | idades.remove(27) 61 | idades 62 | 63 | 28 in idades 64 | 65 | 15 in idades 66 | 67 | if 15 in idades: 68 | idades.remove(15) 69 | 70 | idades 71 | 72 | if 28 in idades: 73 | idades.remove(28) 74 | 75 | idades 76 | 77 | idades.append(19) 78 | idades 79 | 80 | idades.insert(0, 20) 81 | idades 82 | 83 | idades = [20, 39, 18] 84 | idades 85 | 86 | idades.append([27, 19]) 87 | 88 | idades 89 | 90 | for elemento in idades: 91 | print("Recebi o elemento", elemento) 92 | 93 | idades = [20, 39, 18] 94 | idades.extend([27, 19]) 95 | idades 96 | 97 | for idade in idades: 98 | print(idade + 1) 99 | 100 | idades_no_ano_que_vem = [] 101 | for idade in idades: 102 | idades_no_ano_que_vem.append(idade+1) 103 | idades_no_ano_que_vem 104 | 105 | idades_no_ano_que_vem = [idade+1 for idade in idades] 106 | idades_no_ano_que_vem 107 | 108 | [idade for idade in idades if idade > 21] 109 | 110 | idades 111 | 112 | def proximo_ano(idade): 113 | return idade+1 114 | 115 | [proximo_ano(idade) for idade in idades if idade > 21] 116 | 117 | def faz_processamento_de_visualizacao(lista): 118 | print(len(lista)) 119 | lista.append(13) 120 | 121 | idades = [16, 21, 29, 56, 43] 122 | faz_processamento_de_visualizacao(idades) 123 | idades 124 | 125 | def faz_processamento_de_visualizacao(lista = []): 126 | print(len(lista)) 127 | print(lista) 128 | lista.append(13) 129 | 130 | faz_processamento_de_visualizacao() 131 | 132 | faz_processamento_de_visualizacao() 133 | 134 | faz_processamento_de_visualizacao() 135 | 136 | faz_processamento_de_visualizacao() 137 | 138 | def faz_processamento_de_visualizacao(lista = list()): 139 | print(len(lista)) 140 | print(lista) 141 | lista.append(13) 142 | 143 | faz_processamento_de_visualizacao() 144 | faz_processamento_de_visualizacao() 145 | 146 | def faz_processamento_de_visualizacao(lista = None): 147 | if lista == None: 148 | lista = list() 149 | print(len(lista)) 150 | print(lista) 151 | lista.append(13) 152 | 153 | faz_processamento_de_visualizacao() 154 | faz_processamento_de_visualizacao() 155 | faz_processamento_de_visualizacao() 156 | faz_processamento_de_visualizacao() 157 | 158 | """# Objetos próprios""" 159 | 160 | class ContaCorrente: 161 | 162 | def __init__(self, codigo): 163 | self.codigo = codigo 164 | self.saldo = 0 165 | 166 | def deposita(self, valor): 167 | self.saldo += valor 168 | 169 | def __str__(self): 170 | return "[>>Codigo {} Saldo {}<<]".format(self.codigo, self.saldo) 171 | 172 | conta_do_gui = ContaCorrente(15) 173 | print(conta_do_gui) 174 | 175 | conta_do_gui.deposita(500) 176 | print(conta_do_gui) 177 | 178 | conta_da_dani = ContaCorrente(47685) 179 | conta_da_dani.deposita(1000) 180 | print(conta_da_dani) 181 | 182 | contas = [conta_do_gui, conta_da_dani] 183 | for conta in contas: 184 | print(conta) 185 | 186 | contas = [conta_do_gui, conta_da_dani, conta_do_gui] 187 | 188 | print(contas[0]) 189 | 190 | conta_do_gui.deposita(100) 191 | 192 | print(contas[0]) 193 | 194 | print(conta_do_gui) 195 | 196 | print(contas[2]) 197 | 198 | contas[2].deposita(300) 199 | 200 | print(conta_do_gui) 201 | 202 | def deposita_para_todas(contas): 203 | for conta in contas: 204 | conta.deposita(100) 205 | 206 | contas = [conta_do_gui, conta_da_dani] 207 | print(contas[0], contas[1]) 208 | deposita_para_todas(contas) 209 | print(contas[0], contas[1]) 210 | 211 | contas.insert(0,76) 212 | print(contas[0], contas[1], contas[2]) 213 | 214 | deposita_para_todas(contas) 215 | print(contas[0], contas[1], contas[2]) 216 | 217 | guilherme = ('Guilherme', 37, 1981) # tupla 218 | daniela = ('Daniela', 31, 1987) 219 | # paulo = (39, 'Paulo', 1979) # ruim 220 | 221 | guilherme.append(6754) 222 | 223 | conta_do_gui = (15, 1000) 224 | # conta_do_gui.deposita() # variação OO 225 | conta_do_gui[1] 226 | 227 | conta_do_gui[1] += 100 228 | 229 | def deposita(conta): # variação "funcional"(separando o comportamento dos dados) 230 | novo_saldo = conta[1] + 100 231 | codigo = conta[0] 232 | return (codigo, novo_saldo) 233 | 234 | deposita(conta_do_gui) 235 | 236 | conta_do_gui 237 | 238 | conta_do_gui = deposita(conta_do_gui) 239 | conta_do_gui 240 | 241 | usuarios = [guilherme, daniela] 242 | usuarios 243 | 244 | usuarios.append(('Paulo', 39, 1979)) 245 | 246 | usuarios 247 | 248 | usuarios[0][0] = 'Guilherme Silveira' 249 | 250 | conta_do_gui = ContaCorrente(15) 251 | conta_do_gui.deposita(500) 252 | conta_da_dani = ContaCorrente(234876) 253 | conta_da_dani.deposita(1000) 254 | 255 | contas = (conta_do_gui, conta_da_dani) 256 | 257 | for conta in contas: 258 | print(conta) 259 | 260 | contas.append(423768) 261 | 262 | contas[0].deposita(300) 263 | 264 | for conta in contas: 265 | print(conta) 266 | 267 | """# Herança e polimorfismo""" 268 | 269 | from abc import ABCMeta, abstractmethod 270 | 271 | class Conta(metaclass=ABCMeta): 272 | 273 | def __init__(self, codigo): 274 | self._codigo = codigo 275 | self._saldo = 0 276 | 277 | def deposita(self, valor): 278 | self._saldo += valor 279 | 280 | @abstractmethod 281 | def passa_o_mes(self): 282 | pass 283 | 284 | def __str__(self): 285 | return "[>>Codigo {} Saldo {}<<]".format(self._codigo, self._saldo) 286 | 287 | print(Conta(88)) 288 | 289 | class ContaCorrente(Conta): 290 | 291 | def passa_o_mes(self): 292 | self._saldo -= 2 293 | 294 | class ContaPoupanca(Conta): 295 | 296 | def passa_o_mes(self): 297 | self._saldo *= 1.01 298 | self._saldo -= 3 299 | 300 | class ContaInvestimento(Conta): 301 | pass 302 | 303 | ContaInvestimento(764) 304 | 305 | conta16 = ContaCorrente(16) 306 | conta16.deposita(1000) 307 | conta16.passa_o_mes() 308 | print(conta16) 309 | 310 | conta17 = ContaPoupanca(17) 311 | conta17.deposita(1000) 312 | conta17.passa_o_mes() 313 | print(conta17) 314 | 315 | conta16 = ContaCorrente(16) 316 | conta16.deposita(1000) 317 | conta17 = ContaPoupanca(17) 318 | conta17.deposita(1000) 319 | contas = [conta16, conta17] 320 | 321 | for conta in contas: 322 | conta.passa_o_mes() # duck typing 323 | print(conta) 324 | 325 | """# evitaremos usar array puro. se precisamos de trabalho numérico, é costume usar o numpy""" 326 | 327 | import array as arr 328 | 329 | arr.array('d', [1, 3.5]) 330 | 331 | arr.array('d', [1, 3.5, 'Guilherme']) 332 | 333 | !pip install numpy 334 | 335 | import numpy as np 336 | 337 | numeros = np.array([1, 3.5]) 338 | numeros 339 | 340 | numeros + 3 341 | 342 | class ContaSalario: 343 | 344 | def __init__(self, codigo): 345 | self._codigo = codigo 346 | self._saldo = 0 347 | 348 | def deposita(self, valor): 349 | self._saldo += valor 350 | 351 | def __str__(self): 352 | return "[>>Codigo {} Saldo {}<<]".format(self._codigo, self._saldo) 353 | 354 | conta1 = ContaSalario(37) 355 | print(conta1) 356 | 357 | conta2 = ContaSalario(37) 358 | print(conta2) 359 | 360 | conta1 == conta2 361 | 362 | contas = [conta1] 363 | conta1 in contas 364 | 365 | conta2 in contas 366 | 367 | class ContaSalario: 368 | 369 | def __init__(self, codigo): 370 | self._codigo = codigo 371 | self._saldo = 0 372 | 373 | def __eq__(self, outro): 374 | return self._codigo == outro._codigo 375 | 376 | def deposita(self, valor): 377 | self._saldo += valor 378 | 379 | def __str__(self): 380 | return "[>>Codigo {} Saldo {}<<]".format(self._codigo, self._saldo) 381 | 382 | conta1 = ContaSalario(37) 383 | conta2 = ContaSalario(37) 384 | conta1 == conta2 385 | 386 | conta1 != conta2 387 | 388 | conta1 in [conta2] 389 | 390 | conta2 in [conta1] 391 | 392 | class ContaSalario: 393 | 394 | def __init__(self, codigo): 395 | self._codigo = codigo 396 | self._saldo = 0 397 | 398 | def __eq__(self, outro): 399 | return self._codigo == outro._codigo and self._saldo == outro._saldo 400 | 401 | def deposita(self, valor): 402 | self._saldo += valor 403 | 404 | def __str__(self): 405 | return "[>>Codigo {} Saldo {}<<]".format(self._codigo, self._saldo) 406 | 407 | conta1 = ContaSalario(37) 408 | conta2 = ContaSalario(37) 409 | conta1 == conta2 410 | 411 | conta1.deposita(10) 412 | 413 | conta1 == conta2 414 | 415 | class ContaSalario: 416 | 417 | def __init__(self, codigo): 418 | self._codigo = codigo 419 | self._saldo = 0 420 | 421 | def __eq__(self, outro): 422 | if type(outro) != ContaSalario: 423 | return False 424 | 425 | return self._codigo == outro._codigo and self._saldo == outro._saldo 426 | 427 | def deposita(self, valor): 428 | self._saldo += valor 429 | 430 | def __str__(self): 431 | return "[>>Codigo {} Saldo {}<<]".format(self._codigo, self._saldo) 432 | 433 | conta1 = ContaSalario(37) 434 | conta2 = ContaCorrente(37) 435 | 436 | conta1 == conta2 437 | 438 | isinstance(ContaCorrente(34), ContaCorrente) 439 | 440 | isinstance(ContaCorrente(34), Conta) 441 | 442 | idades = [15, 87, 32, 65, 56, 32, 49, 37] 443 | 444 | for i in range(len(idades)): 445 | print(i, idades[i]) 446 | 447 | range(len(idades)) # lazy... 448 | 449 | enumerate(idades) # lazy 450 | 451 | list(range(len(idades))) # forcei a geração dos valores 452 | 453 | list(enumerate(idades)) 454 | 455 | for indice, idade in enumerate(idades): # unpacking da nossa tupla 456 | print(indice, "x", idade) 457 | 458 | usuarios = [ 459 | ("Guilherme", 37, 1981), 460 | ("Daniela", 31, 1987), 461 | ("Paulo", 39, 1979) 462 | ] 463 | 464 | for nome, idade, nascimento in usuarios: # ja desempacotando 465 | print(nome) 466 | 467 | for nome, _, _ in usuarios: # ja desempacotando, ignorando o resto 468 | print(nome) 469 | 470 | -------------------------------------------------------------------------------- /aula6.1/introdução_a_collections.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | """Introdução a Collections 3 | 4 | Automatically generated by Colaboratory. 5 | 6 | Original file is located at 7 | https://colab.research.google.com/drive/1Xajf8Uy5Mm_1ZfpSHj5JaHtw9TiSgV0u 8 | """ 9 | 10 | idade1 = 39 11 | idade2 = 30 12 | idade3 = 27 13 | idade4 = 18 14 | 15 | print(idade1) 16 | print(idade2) 17 | print(idade3) 18 | print(idade4) 19 | 20 | idades = [39, 30, 27, 18] 21 | 22 | type(idades) 23 | 24 | len(idades) 25 | 26 | idades[0] 27 | 28 | idades 29 | 30 | print(idades[1]) 31 | print(idades[2]) 32 | print(idades[3]) 33 | 34 | idades.append(15) 35 | 36 | idades 37 | 38 | idades[4] 39 | 40 | idades[5] 41 | 42 | for idade in idades: 43 | print(idade) 44 | 45 | idades.remove(30) 46 | 47 | idades 48 | 49 | idades.remove(30) 50 | 51 | idades.append(15) 52 | 53 | idades 54 | 55 | idades.remove(15) 56 | 57 | idades 58 | 59 | idades.append(27) 60 | idades.remove(27) 61 | idades 62 | 63 | 28 in idades 64 | 65 | 15 in idades 66 | 67 | if 15 in idades: 68 | idades.remove(15) 69 | 70 | idades 71 | 72 | if 28 in idades: 73 | idades.remove(28) 74 | 75 | idades 76 | 77 | idades.append(19) 78 | idades 79 | 80 | idades.insert(0, 20) 81 | idades 82 | 83 | idades = [20, 39, 18] 84 | idades 85 | 86 | idades.append([27, 19]) 87 | 88 | idades 89 | 90 | for elemento in idades: 91 | print("Recebi o elemento", elemento) 92 | 93 | idades = [20, 39, 18] 94 | idades.extend([27, 19]) 95 | idades 96 | 97 | for idade in idades: 98 | print(idade + 1) 99 | 100 | idades_no_ano_que_vem = [] 101 | for idade in idades: 102 | idades_no_ano_que_vem.append(idade+1) 103 | idades_no_ano_que_vem 104 | 105 | idades_no_ano_que_vem = [idade+1 for idade in idades] 106 | idades_no_ano_que_vem 107 | 108 | [idade for idade in idades if idade > 21] 109 | 110 | idades 111 | 112 | def proximo_ano(idade): 113 | return idade+1 114 | 115 | [proximo_ano(idade) for idade in idades if idade > 21] 116 | 117 | def faz_processamento_de_visualizacao(lista): 118 | print(len(lista)) 119 | lista.append(13) 120 | 121 | idades = [16, 21, 29, 56, 43] 122 | faz_processamento_de_visualizacao(idades) 123 | idades 124 | 125 | def faz_processamento_de_visualizacao(lista = []): 126 | print(len(lista)) 127 | print(lista) 128 | lista.append(13) 129 | 130 | faz_processamento_de_visualizacao() 131 | 132 | faz_processamento_de_visualizacao() 133 | 134 | faz_processamento_de_visualizacao() 135 | 136 | faz_processamento_de_visualizacao() 137 | 138 | def faz_processamento_de_visualizacao(lista = list()): 139 | print(len(lista)) 140 | print(lista) 141 | lista.append(13) 142 | 143 | faz_processamento_de_visualizacao() 144 | faz_processamento_de_visualizacao() 145 | 146 | def faz_processamento_de_visualizacao(lista = None): 147 | if lista == None: 148 | lista = list() 149 | print(len(lista)) 150 | print(lista) 151 | lista.append(13) 152 | 153 | faz_processamento_de_visualizacao() 154 | faz_processamento_de_visualizacao() 155 | faz_processamento_de_visualizacao() 156 | faz_processamento_de_visualizacao() 157 | 158 | """# Objetos próprios""" 159 | 160 | class ContaCorrente: 161 | 162 | def __init__(self, codigo): 163 | self.codigo = codigo 164 | self.saldo = 0 165 | 166 | def deposita(self, valor): 167 | self.saldo += valor 168 | 169 | def __str__(self): 170 | return "[>>Codigo {} Saldo {}<<]".format(self.codigo, self.saldo) 171 | 172 | conta_do_gui = ContaCorrente(15) 173 | print(conta_do_gui) 174 | 175 | conta_do_gui.deposita(500) 176 | print(conta_do_gui) 177 | 178 | conta_da_dani = ContaCorrente(47685) 179 | conta_da_dani.deposita(1000) 180 | print(conta_da_dani) 181 | 182 | contas = [conta_do_gui, conta_da_dani] 183 | for conta in contas: 184 | print(conta) 185 | 186 | contas = [conta_do_gui, conta_da_dani, conta_do_gui] 187 | 188 | print(contas[0]) 189 | 190 | conta_do_gui.deposita(100) 191 | 192 | print(contas[0]) 193 | 194 | print(conta_do_gui) 195 | 196 | print(contas[2]) 197 | 198 | contas[2].deposita(300) 199 | 200 | print(conta_do_gui) 201 | 202 | def deposita_para_todas(contas): 203 | for conta in contas: 204 | conta.deposita(100) 205 | 206 | contas = [conta_do_gui, conta_da_dani] 207 | print(contas[0], contas[1]) 208 | deposita_para_todas(contas) 209 | print(contas[0], contas[1]) 210 | 211 | contas.insert(0,76) 212 | print(contas[0], contas[1], contas[2]) 213 | 214 | deposita_para_todas(contas) 215 | print(contas[0], contas[1], contas[2]) 216 | 217 | guilherme = ('Guilherme', 37, 1981) # tupla 218 | daniela = ('Daniela', 31, 1987) 219 | # paulo = (39, 'Paulo', 1979) # ruim 220 | 221 | guilherme.append(6754) 222 | 223 | conta_do_gui = (15, 1000) 224 | # conta_do_gui.deposita() # variação OO 225 | conta_do_gui[1] 226 | 227 | conta_do_gui[1] += 100 228 | 229 | def deposita(conta): # variação "funcional"(separando o comportamento dos dados) 230 | novo_saldo = conta[1] + 100 231 | codigo = conta[0] 232 | return (codigo, novo_saldo) 233 | 234 | deposita(conta_do_gui) 235 | 236 | conta_do_gui 237 | 238 | conta_do_gui = deposita(conta_do_gui) 239 | conta_do_gui 240 | 241 | usuarios = [guilherme, daniela] 242 | usuarios 243 | 244 | usuarios.append(('Paulo', 39, 1979)) 245 | 246 | usuarios 247 | 248 | usuarios[0][0] = 'Guilherme Silveira' 249 | 250 | conta_do_gui = ContaCorrente(15) 251 | conta_do_gui.deposita(500) 252 | conta_da_dani = ContaCorrente(234876) 253 | conta_da_dani.deposita(1000) 254 | 255 | contas = (conta_do_gui, conta_da_dani) 256 | 257 | for conta in contas: 258 | print(conta) 259 | 260 | contas.append(423768) 261 | 262 | contas[0].deposita(300) 263 | 264 | for conta in contas: 265 | print(conta) 266 | 267 | """# Herança e polimorfismo""" 268 | 269 | from abc import ABCMeta, abstractmethod 270 | 271 | class Conta(metaclass=ABCMeta): 272 | 273 | def __init__(self, codigo): 274 | self._codigo = codigo 275 | self._saldo = 0 276 | 277 | def deposita(self, valor): 278 | self._saldo += valor 279 | 280 | @abstractmethod 281 | def passa_o_mes(self): 282 | pass 283 | 284 | def __str__(self): 285 | return "[>>Codigo {} Saldo {}<<]".format(self._codigo, self._saldo) 286 | 287 | print(Conta(88)) 288 | 289 | class ContaCorrente(Conta): 290 | 291 | def passa_o_mes(self): 292 | self._saldo -= 2 293 | 294 | class ContaPoupanca(Conta): 295 | 296 | def passa_o_mes(self): 297 | self._saldo *= 1.01 298 | self._saldo -= 3 299 | 300 | class ContaInvestimento(Conta): 301 | pass 302 | 303 | ContaInvestimento(764) 304 | 305 | conta16 = ContaCorrente(16) 306 | conta16.deposita(1000) 307 | conta16.passa_o_mes() 308 | print(conta16) 309 | 310 | conta17 = ContaPoupanca(17) 311 | conta17.deposita(1000) 312 | conta17.passa_o_mes() 313 | print(conta17) 314 | 315 | conta16 = ContaCorrente(16) 316 | conta16.deposita(1000) 317 | conta17 = ContaPoupanca(17) 318 | conta17.deposita(1000) 319 | contas = [conta16, conta17] 320 | 321 | for conta in contas: 322 | conta.passa_o_mes() # duck typing 323 | print(conta) 324 | 325 | """# evitaremos usar array puro. se precisamos de trabalho numérico, é costume usar o numpy""" 326 | 327 | import array as arr 328 | 329 | arr.array('d', [1, 3.5]) 330 | 331 | arr.array('d', [1, 3.5, 'Guilherme']) 332 | 333 | !pip install numpy 334 | 335 | import numpy as np 336 | 337 | numeros = np.array([1, 3.5]) 338 | numeros 339 | 340 | numeros + 3 341 | 342 | class ContaSalario: 343 | 344 | def __init__(self, codigo): 345 | self._codigo = codigo 346 | self._saldo = 0 347 | 348 | def deposita(self, valor): 349 | self._saldo += valor 350 | 351 | def __str__(self): 352 | return "[>>Codigo {} Saldo {}<<]".format(self._codigo, self._saldo) 353 | 354 | conta1 = ContaSalario(37) 355 | print(conta1) 356 | 357 | conta2 = ContaSalario(37) 358 | print(conta2) 359 | 360 | conta1 == conta2 361 | 362 | contas = [conta1] 363 | conta1 in contas 364 | 365 | conta2 in contas 366 | 367 | class ContaSalario: 368 | 369 | def __init__(self, codigo): 370 | self._codigo = codigo 371 | self._saldo = 0 372 | 373 | def __eq__(self, outro): 374 | return self._codigo == outro._codigo 375 | 376 | def deposita(self, valor): 377 | self._saldo += valor 378 | 379 | def __str__(self): 380 | return "[>>Codigo {} Saldo {}<<]".format(self._codigo, self._saldo) 381 | 382 | conta1 = ContaSalario(37) 383 | conta2 = ContaSalario(37) 384 | conta1 == conta2 385 | 386 | conta1 != conta2 387 | 388 | conta1 in [conta2] 389 | 390 | conta2 in [conta1] 391 | 392 | class ContaSalario: 393 | 394 | def __init__(self, codigo): 395 | self._codigo = codigo 396 | self._saldo = 0 397 | 398 | def __eq__(self, outro): 399 | return self._codigo == outro._codigo and self._saldo == outro._saldo 400 | 401 | def deposita(self, valor): 402 | self._saldo += valor 403 | 404 | def __str__(self): 405 | return "[>>Codigo {} Saldo {}<<]".format(self._codigo, self._saldo) 406 | 407 | conta1 = ContaSalario(37) 408 | conta2 = ContaSalario(37) 409 | conta1 == conta2 410 | 411 | conta1.deposita(10) 412 | 413 | conta1 == conta2 414 | 415 | class ContaSalario: 416 | 417 | def __init__(self, codigo): 418 | self._codigo = codigo 419 | self._saldo = 0 420 | 421 | def __eq__(self, outro): 422 | if type(outro) != ContaSalario: 423 | return False 424 | 425 | return self._codigo == outro._codigo and self._saldo == outro._saldo 426 | 427 | def deposita(self, valor): 428 | self._saldo += valor 429 | 430 | def __str__(self): 431 | return "[>>Codigo {} Saldo {}<<]".format(self._codigo, self._saldo) 432 | 433 | conta1 = ContaSalario(37) 434 | conta2 = ContaCorrente(37) 435 | 436 | conta1 == conta2 437 | 438 | isinstance(ContaCorrente(34), ContaCorrente) 439 | 440 | isinstance(ContaCorrente(34), Conta) 441 | 442 | idades = [15, 87, 32, 65, 56, 32, 49, 37] 443 | 444 | for i in range(len(idades)): 445 | print(i, idades[i]) 446 | 447 | range(len(idades)) # lazy... 448 | 449 | enumerate(idades) # lazy 450 | 451 | list(range(len(idades))) # forcei a geração dos valores 452 | 453 | list(enumerate(idades)) 454 | 455 | for indice, idade in enumerate(idades): # unpacking da nossa tupla 456 | print(indice, "x", idade) 457 | 458 | usuarios = [ 459 | ("Guilherme", 37, 1981), 460 | ("Daniela", 31, 1987), 461 | ("Paulo", 39, 1979) 462 | ] 463 | 464 | for nome, idade, nascimento in usuarios: # ja desempacotando 465 | print(nome) 466 | 467 | for nome, _, _ in usuarios: # ja desempacotando, ignorando o resto 468 | print(nome) 469 | 470 | idades 471 | 472 | sorted(idades) 473 | 474 | 15 < 32 475 | 476 | list(reversed(idades)) 477 | 478 | sorted(idades, reverse=True) 479 | 480 | list(reversed(sorted(idades))) 481 | 482 | idades 483 | 484 | idades.sort() 485 | 486 | idades 487 | 488 | -------------------------------------------------------------------------------- /aula7.1/introdução_a_collections.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | """Introdução a Collections 3 | 4 | Automatically generated by Colaboratory. 5 | 6 | Original file is located at 7 | https://colab.research.google.com/drive/1Xajf8Uy5Mm_1ZfpSHj5JaHtw9TiSgV0u 8 | """ 9 | 10 | idade1 = 39 11 | idade2 = 30 12 | idade3 = 27 13 | idade4 = 18 14 | 15 | print(idade1) 16 | print(idade2) 17 | print(idade3) 18 | print(idade4) 19 | 20 | idades = [39, 30, 27, 18] 21 | 22 | type(idades) 23 | 24 | len(idades) 25 | 26 | idades[0] 27 | 28 | idades 29 | 30 | print(idades[1]) 31 | print(idades[2]) 32 | print(idades[3]) 33 | 34 | idades.append(15) 35 | 36 | idades 37 | 38 | idades[4] 39 | 40 | idades[5] 41 | 42 | for idade in idades: 43 | print(idade) 44 | 45 | idades.remove(30) 46 | 47 | idades 48 | 49 | idades.remove(30) 50 | 51 | idades.append(15) 52 | 53 | idades 54 | 55 | idades.remove(15) 56 | 57 | idades 58 | 59 | idades.append(27) 60 | idades.remove(27) 61 | idades 62 | 63 | 28 in idades 64 | 65 | 15 in idades 66 | 67 | if 15 in idades: 68 | idades.remove(15) 69 | 70 | idades 71 | 72 | if 28 in idades: 73 | idades.remove(28) 74 | 75 | idades 76 | 77 | idades.append(19) 78 | idades 79 | 80 | idades.insert(0, 20) 81 | idades 82 | 83 | idades = [20, 39, 18] 84 | idades 85 | 86 | idades.append([27, 19]) 87 | 88 | idades 89 | 90 | for elemento in idades: 91 | print("Recebi o elemento", elemento) 92 | 93 | idades = [20, 39, 18] 94 | idades.extend([27, 19]) 95 | idades 96 | 97 | for idade in idades: 98 | print(idade + 1) 99 | 100 | idades_no_ano_que_vem = [] 101 | for idade in idades: 102 | idades_no_ano_que_vem.append(idade+1) 103 | idades_no_ano_que_vem 104 | 105 | idades_no_ano_que_vem = [idade+1 for idade in idades] 106 | idades_no_ano_que_vem 107 | 108 | [idade for idade in idades if idade > 21] 109 | 110 | idades 111 | 112 | def proximo_ano(idade): 113 | return idade+1 114 | 115 | [proximo_ano(idade) for idade in idades if idade > 21] 116 | 117 | def faz_processamento_de_visualizacao(lista): 118 | print(len(lista)) 119 | lista.append(13) 120 | 121 | idades = [16, 21, 29, 56, 43] 122 | faz_processamento_de_visualizacao(idades) 123 | idades 124 | 125 | def faz_processamento_de_visualizacao(lista = []): 126 | print(len(lista)) 127 | print(lista) 128 | lista.append(13) 129 | 130 | faz_processamento_de_visualizacao() 131 | 132 | faz_processamento_de_visualizacao() 133 | 134 | faz_processamento_de_visualizacao() 135 | 136 | faz_processamento_de_visualizacao() 137 | 138 | def faz_processamento_de_visualizacao(lista = list()): 139 | print(len(lista)) 140 | print(lista) 141 | lista.append(13) 142 | 143 | faz_processamento_de_visualizacao() 144 | faz_processamento_de_visualizacao() 145 | 146 | def faz_processamento_de_visualizacao(lista = None): 147 | if lista == None: 148 | lista = list() 149 | print(len(lista)) 150 | print(lista) 151 | lista.append(13) 152 | 153 | faz_processamento_de_visualizacao() 154 | faz_processamento_de_visualizacao() 155 | faz_processamento_de_visualizacao() 156 | faz_processamento_de_visualizacao() 157 | 158 | """# Objetos próprios""" 159 | 160 | class ContaCorrente: 161 | 162 | def __init__(self, codigo): 163 | self.codigo = codigo 164 | self.saldo = 0 165 | 166 | def deposita(self, valor): 167 | self.saldo += valor 168 | 169 | def __str__(self): 170 | return "[>>Codigo {} Saldo {}<<]".format(self.codigo, self.saldo) 171 | 172 | conta_do_gui = ContaCorrente(15) 173 | print(conta_do_gui) 174 | 175 | conta_do_gui.deposita(500) 176 | print(conta_do_gui) 177 | 178 | conta_da_dani = ContaCorrente(47685) 179 | conta_da_dani.deposita(1000) 180 | print(conta_da_dani) 181 | 182 | contas = [conta_do_gui, conta_da_dani] 183 | for conta in contas: 184 | print(conta) 185 | 186 | contas = [conta_do_gui, conta_da_dani, conta_do_gui] 187 | 188 | print(contas[0]) 189 | 190 | conta_do_gui.deposita(100) 191 | 192 | print(contas[0]) 193 | 194 | print(conta_do_gui) 195 | 196 | print(contas[2]) 197 | 198 | contas[2].deposita(300) 199 | 200 | print(conta_do_gui) 201 | 202 | def deposita_para_todas(contas): 203 | for conta in contas: 204 | conta.deposita(100) 205 | 206 | contas = [conta_do_gui, conta_da_dani] 207 | print(contas[0], contas[1]) 208 | deposita_para_todas(contas) 209 | print(contas[0], contas[1]) 210 | 211 | contas.insert(0,76) 212 | print(contas[0], contas[1], contas[2]) 213 | 214 | deposita_para_todas(contas) 215 | print(contas[0], contas[1], contas[2]) 216 | 217 | guilherme = ('Guilherme', 37, 1981) # tupla 218 | daniela = ('Daniela', 31, 1987) 219 | # paulo = (39, 'Paulo', 1979) # ruim 220 | 221 | guilherme.append(6754) 222 | 223 | conta_do_gui = (15, 1000) 224 | # conta_do_gui.deposita() # variação OO 225 | conta_do_gui[1] 226 | 227 | conta_do_gui[1] += 100 228 | 229 | def deposita(conta): # variação "funcional"(separando o comportamento dos dados) 230 | novo_saldo = conta[1] + 100 231 | codigo = conta[0] 232 | return (codigo, novo_saldo) 233 | 234 | deposita(conta_do_gui) 235 | 236 | conta_do_gui 237 | 238 | conta_do_gui = deposita(conta_do_gui) 239 | conta_do_gui 240 | 241 | usuarios = [guilherme, daniela] 242 | usuarios 243 | 244 | usuarios.append(('Paulo', 39, 1979)) 245 | 246 | usuarios 247 | 248 | usuarios[0][0] = 'Guilherme Silveira' 249 | 250 | conta_do_gui = ContaCorrente(15) 251 | conta_do_gui.deposita(500) 252 | conta_da_dani = ContaCorrente(234876) 253 | conta_da_dani.deposita(1000) 254 | 255 | contas = (conta_do_gui, conta_da_dani) 256 | 257 | for conta in contas: 258 | print(conta) 259 | 260 | contas.append(423768) 261 | 262 | contas[0].deposita(300) 263 | 264 | for conta in contas: 265 | print(conta) 266 | 267 | """# Herança e polimorfismo""" 268 | 269 | from abc import ABCMeta, abstractmethod 270 | 271 | class Conta(metaclass=ABCMeta): 272 | 273 | def __init__(self, codigo): 274 | self._codigo = codigo 275 | self._saldo = 0 276 | 277 | def deposita(self, valor): 278 | self._saldo += valor 279 | 280 | @abstractmethod 281 | def passa_o_mes(self): 282 | pass 283 | 284 | def __str__(self): 285 | return "[>>Codigo {} Saldo {}<<]".format(self._codigo, self._saldo) 286 | 287 | print(Conta(88)) 288 | 289 | class ContaCorrente(Conta): 290 | 291 | def passa_o_mes(self): 292 | self._saldo -= 2 293 | 294 | class ContaPoupanca(Conta): 295 | 296 | def passa_o_mes(self): 297 | self._saldo *= 1.01 298 | self._saldo -= 3 299 | 300 | class ContaInvestimento(Conta): 301 | pass 302 | 303 | ContaInvestimento(764) 304 | 305 | conta16 = ContaCorrente(16) 306 | conta16.deposita(1000) 307 | conta16.passa_o_mes() 308 | print(conta16) 309 | 310 | conta17 = ContaPoupanca(17) 311 | conta17.deposita(1000) 312 | conta17.passa_o_mes() 313 | print(conta17) 314 | 315 | conta16 = ContaCorrente(16) 316 | conta16.deposita(1000) 317 | conta17 = ContaPoupanca(17) 318 | conta17.deposita(1000) 319 | contas = [conta16, conta17] 320 | 321 | for conta in contas: 322 | conta.passa_o_mes() # duck typing 323 | print(conta) 324 | 325 | """# evitaremos usar array puro. se precisamos de trabalho numérico, é costume usar o numpy""" 326 | 327 | import array as arr 328 | 329 | arr.array('d', [1, 3.5]) 330 | 331 | arr.array('d', [1, 3.5, 'Guilherme']) 332 | 333 | !pip install numpy 334 | 335 | import numpy as np 336 | 337 | numeros = np.array([1, 3.5]) 338 | numeros 339 | 340 | numeros + 3 341 | 342 | class ContaSalario: 343 | 344 | def __init__(self, codigo): 345 | self._codigo = codigo 346 | self._saldo = 0 347 | 348 | def deposita(self, valor): 349 | self._saldo += valor 350 | 351 | def __str__(self): 352 | return "[>>Codigo {} Saldo {}<<]".format(self._codigo, self._saldo) 353 | 354 | conta1 = ContaSalario(37) 355 | print(conta1) 356 | 357 | conta2 = ContaSalario(37) 358 | print(conta2) 359 | 360 | conta1 == conta2 361 | 362 | contas = [conta1] 363 | conta1 in contas 364 | 365 | conta2 in contas 366 | 367 | class ContaSalario: 368 | 369 | def __init__(self, codigo): 370 | self._codigo = codigo 371 | self._saldo = 0 372 | 373 | def __eq__(self, outro): 374 | return self._codigo == outro._codigo 375 | 376 | def deposita(self, valor): 377 | self._saldo += valor 378 | 379 | def __str__(self): 380 | return "[>>Codigo {} Saldo {}<<]".format(self._codigo, self._saldo) 381 | 382 | conta1 = ContaSalario(37) 383 | conta2 = ContaSalario(37) 384 | conta1 == conta2 385 | 386 | conta1 != conta2 387 | 388 | conta1 in [conta2] 389 | 390 | conta2 in [conta1] 391 | 392 | class ContaSalario: 393 | 394 | def __init__(self, codigo): 395 | self._codigo = codigo 396 | self._saldo = 0 397 | 398 | def __eq__(self, outro): 399 | return self._codigo == outro._codigo and self._saldo == outro._saldo 400 | 401 | def deposita(self, valor): 402 | self._saldo += valor 403 | 404 | def __str__(self): 405 | return "[>>Codigo {} Saldo {}<<]".format(self._codigo, self._saldo) 406 | 407 | conta1 = ContaSalario(37) 408 | conta2 = ContaSalario(37) 409 | conta1 == conta2 410 | 411 | conta1.deposita(10) 412 | 413 | conta1 == conta2 414 | 415 | class ContaSalario: 416 | 417 | def __init__(self, codigo): 418 | self._codigo = codigo 419 | self._saldo = 0 420 | 421 | def __eq__(self, outro): 422 | if type(outro) != ContaSalario: 423 | return False 424 | 425 | return self._codigo == outro._codigo and self._saldo == outro._saldo 426 | 427 | def deposita(self, valor): 428 | self._saldo += valor 429 | 430 | def __str__(self): 431 | return "[>>Codigo {} Saldo {}<<]".format(self._codigo, self._saldo) 432 | 433 | conta1 = ContaSalario(37) 434 | conta2 = ContaCorrente(37) 435 | 436 | conta1 == conta2 437 | 438 | isinstance(ContaCorrente(34), ContaCorrente) 439 | 440 | isinstance(ContaCorrente(34), Conta) 441 | 442 | idades = [15, 87, 32, 65, 56, 32, 49, 37] 443 | 444 | for i in range(len(idades)): 445 | print(i, idades[i]) 446 | 447 | range(len(idades)) # lazy... 448 | 449 | enumerate(idades) # lazy 450 | 451 | list(range(len(idades))) # forcei a geração dos valores 452 | 453 | list(enumerate(idades)) 454 | 455 | for indice, idade in enumerate(idades): # unpacking da nossa tupla 456 | print(indice, "x", idade) 457 | 458 | usuarios = [ 459 | ("Guilherme", 37, 1981), 460 | ("Daniela", 31, 1987), 461 | ("Paulo", 39, 1979) 462 | ] 463 | 464 | for nome, idade, nascimento in usuarios: # ja desempacotando 465 | print(nome) 466 | 467 | for nome, _, _ in usuarios: # ja desempacotando, ignorando o resto 468 | print(nome) 469 | 470 | idades 471 | 472 | sorted(idades) 473 | 474 | 15 < 32 475 | 476 | list(reversed(idades)) 477 | 478 | sorted(idades, reverse=True) 479 | 480 | list(reversed(sorted(idades))) 481 | 482 | idades 483 | 484 | idades.sort() 485 | 486 | idades 487 | 488 | 15 < 32 489 | 490 | nomes = ["guilherme", "Daniela", "Paulo"] 491 | sorted(nomes) 492 | 493 | class ContaSalario: 494 | 495 | def __init__(self, codigo): 496 | self._codigo = codigo 497 | self._saldo = 0 498 | 499 | def __eq__(self, outro): 500 | if type(outro) != ContaSalario: 501 | return False 502 | 503 | return self._codigo == outro._codigo and self._saldo == outro._saldo 504 | 505 | def deposita(self, valor): 506 | self._saldo += valor 507 | 508 | def __str__(self): 509 | return "[>>Codigo {} Saldo {}<<]".format(self._codigo, self._saldo) 510 | 511 | conta_do_guilherme = ContaSalario(17) 512 | conta_do_guilherme.deposita(500) 513 | 514 | conta_da_daniela = ContaSalario(3) 515 | conta_da_daniela.deposita(1000) 516 | 517 | conta_do_paulo = ContaSalario(133) 518 | conta_do_paulo.deposita(510) 519 | 520 | contas = [conta_do_guilherme, conta_da_daniela, conta_do_paulo] 521 | 522 | for conta in contas: 523 | print(conta) 524 | 525 | sorted(contas) 526 | 527 | conta_do_guilherme < conta_da_daniela 528 | 529 | def extrai_saldo(conta): 530 | return conta._saldo 531 | 532 | for conta in sorted(contas, key=extrai_saldo): 533 | print(conta) 534 | 535 | from operator import attrgetter 536 | 537 | for conta in sorted(contas, key=attrgetter("_saldo")): 538 | print(conta) 539 | 540 | -------------------------------------------------------------------------------- /aula7.2/introdução_a_collections.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | """Introdução a Collections 3 | 4 | Automatically generated by Colaboratory. 5 | 6 | Original file is located at 7 | https://colab.research.google.com/drive/1Xajf8Uy5Mm_1ZfpSHj5JaHtw9TiSgV0u 8 | """ 9 | 10 | idade1 = 39 11 | idade2 = 30 12 | idade3 = 27 13 | idade4 = 18 14 | 15 | print(idade1) 16 | print(idade2) 17 | print(idade3) 18 | print(idade4) 19 | 20 | idades = [39, 30, 27, 18] 21 | 22 | type(idades) 23 | 24 | len(idades) 25 | 26 | idades[0] 27 | 28 | idades 29 | 30 | print(idades[1]) 31 | print(idades[2]) 32 | print(idades[3]) 33 | 34 | idades.append(15) 35 | 36 | idades 37 | 38 | idades[4] 39 | 40 | idades[5] 41 | 42 | for idade in idades: 43 | print(idade) 44 | 45 | idades.remove(30) 46 | 47 | idades 48 | 49 | idades.remove(30) 50 | 51 | idades.append(15) 52 | 53 | idades 54 | 55 | idades.remove(15) 56 | 57 | idades 58 | 59 | idades.append(27) 60 | idades.remove(27) 61 | idades 62 | 63 | 28 in idades 64 | 65 | 15 in idades 66 | 67 | if 15 in idades: 68 | idades.remove(15) 69 | 70 | idades 71 | 72 | if 28 in idades: 73 | idades.remove(28) 74 | 75 | idades 76 | 77 | idades.append(19) 78 | idades 79 | 80 | idades.insert(0, 20) 81 | idades 82 | 83 | idades = [20, 39, 18] 84 | idades 85 | 86 | idades.append([27, 19]) 87 | 88 | idades 89 | 90 | for elemento in idades: 91 | print("Recebi o elemento", elemento) 92 | 93 | idades = [20, 39, 18] 94 | idades.extend([27, 19]) 95 | idades 96 | 97 | for idade in idades: 98 | print(idade + 1) 99 | 100 | idades_no_ano_que_vem = [] 101 | for idade in idades: 102 | idades_no_ano_que_vem.append(idade+1) 103 | idades_no_ano_que_vem 104 | 105 | idades_no_ano_que_vem = [idade+1 for idade in idades] 106 | idades_no_ano_que_vem 107 | 108 | [idade for idade in idades if idade > 21] 109 | 110 | idades 111 | 112 | def proximo_ano(idade): 113 | return idade+1 114 | 115 | [proximo_ano(idade) for idade in idades if idade > 21] 116 | 117 | def faz_processamento_de_visualizacao(lista): 118 | print(len(lista)) 119 | lista.append(13) 120 | 121 | idades = [16, 21, 29, 56, 43] 122 | faz_processamento_de_visualizacao(idades) 123 | idades 124 | 125 | def faz_processamento_de_visualizacao(lista = []): 126 | print(len(lista)) 127 | print(lista) 128 | lista.append(13) 129 | 130 | faz_processamento_de_visualizacao() 131 | 132 | faz_processamento_de_visualizacao() 133 | 134 | faz_processamento_de_visualizacao() 135 | 136 | faz_processamento_de_visualizacao() 137 | 138 | def faz_processamento_de_visualizacao(lista = list()): 139 | print(len(lista)) 140 | print(lista) 141 | lista.append(13) 142 | 143 | faz_processamento_de_visualizacao() 144 | faz_processamento_de_visualizacao() 145 | 146 | def faz_processamento_de_visualizacao(lista = None): 147 | if lista == None: 148 | lista = list() 149 | print(len(lista)) 150 | print(lista) 151 | lista.append(13) 152 | 153 | faz_processamento_de_visualizacao() 154 | faz_processamento_de_visualizacao() 155 | faz_processamento_de_visualizacao() 156 | faz_processamento_de_visualizacao() 157 | 158 | """# Objetos próprios""" 159 | 160 | class ContaCorrente: 161 | 162 | def __init__(self, codigo): 163 | self.codigo = codigo 164 | self.saldo = 0 165 | 166 | def deposita(self, valor): 167 | self.saldo += valor 168 | 169 | def __str__(self): 170 | return "[>>Codigo {} Saldo {}<<]".format(self.codigo, self.saldo) 171 | 172 | conta_do_gui = ContaCorrente(15) 173 | print(conta_do_gui) 174 | 175 | conta_do_gui.deposita(500) 176 | print(conta_do_gui) 177 | 178 | conta_da_dani = ContaCorrente(47685) 179 | conta_da_dani.deposita(1000) 180 | print(conta_da_dani) 181 | 182 | contas = [conta_do_gui, conta_da_dani] 183 | for conta in contas: 184 | print(conta) 185 | 186 | contas = [conta_do_gui, conta_da_dani, conta_do_gui] 187 | 188 | print(contas[0]) 189 | 190 | conta_do_gui.deposita(100) 191 | 192 | print(contas[0]) 193 | 194 | print(conta_do_gui) 195 | 196 | print(contas[2]) 197 | 198 | contas[2].deposita(300) 199 | 200 | print(conta_do_gui) 201 | 202 | def deposita_para_todas(contas): 203 | for conta in contas: 204 | conta.deposita(100) 205 | 206 | contas = [conta_do_gui, conta_da_dani] 207 | print(contas[0], contas[1]) 208 | deposita_para_todas(contas) 209 | print(contas[0], contas[1]) 210 | 211 | contas.insert(0,76) 212 | print(contas[0], contas[1], contas[2]) 213 | 214 | deposita_para_todas(contas) 215 | print(contas[0], contas[1], contas[2]) 216 | 217 | guilherme = ('Guilherme', 37, 1981) # tupla 218 | daniela = ('Daniela', 31, 1987) 219 | # paulo = (39, 'Paulo', 1979) # ruim 220 | 221 | guilherme.append(6754) 222 | 223 | conta_do_gui = (15, 1000) 224 | # conta_do_gui.deposita() # variação OO 225 | conta_do_gui[1] 226 | 227 | conta_do_gui[1] += 100 228 | 229 | def deposita(conta): # variação "funcional"(separando o comportamento dos dados) 230 | novo_saldo = conta[1] + 100 231 | codigo = conta[0] 232 | return (codigo, novo_saldo) 233 | 234 | deposita(conta_do_gui) 235 | 236 | conta_do_gui 237 | 238 | conta_do_gui = deposita(conta_do_gui) 239 | conta_do_gui 240 | 241 | usuarios = [guilherme, daniela] 242 | usuarios 243 | 244 | usuarios.append(('Paulo', 39, 1979)) 245 | 246 | usuarios 247 | 248 | usuarios[0][0] = 'Guilherme Silveira' 249 | 250 | conta_do_gui = ContaCorrente(15) 251 | conta_do_gui.deposita(500) 252 | conta_da_dani = ContaCorrente(234876) 253 | conta_da_dani.deposita(1000) 254 | 255 | contas = (conta_do_gui, conta_da_dani) 256 | 257 | for conta in contas: 258 | print(conta) 259 | 260 | contas.append(423768) 261 | 262 | contas[0].deposita(300) 263 | 264 | for conta in contas: 265 | print(conta) 266 | 267 | """# Herança e polimorfismo""" 268 | 269 | from abc import ABCMeta, abstractmethod 270 | 271 | class Conta(metaclass=ABCMeta): 272 | 273 | def __init__(self, codigo): 274 | self._codigo = codigo 275 | self._saldo = 0 276 | 277 | def deposita(self, valor): 278 | self._saldo += valor 279 | 280 | @abstractmethod 281 | def passa_o_mes(self): 282 | pass 283 | 284 | def __str__(self): 285 | return "[>>Codigo {} Saldo {}<<]".format(self._codigo, self._saldo) 286 | 287 | print(Conta(88)) 288 | 289 | class ContaCorrente(Conta): 290 | 291 | def passa_o_mes(self): 292 | self._saldo -= 2 293 | 294 | class ContaPoupanca(Conta): 295 | 296 | def passa_o_mes(self): 297 | self._saldo *= 1.01 298 | self._saldo -= 3 299 | 300 | class ContaInvestimento(Conta): 301 | pass 302 | 303 | ContaInvestimento(764) 304 | 305 | conta16 = ContaCorrente(16) 306 | conta16.deposita(1000) 307 | conta16.passa_o_mes() 308 | print(conta16) 309 | 310 | conta17 = ContaPoupanca(17) 311 | conta17.deposita(1000) 312 | conta17.passa_o_mes() 313 | print(conta17) 314 | 315 | conta16 = ContaCorrente(16) 316 | conta16.deposita(1000) 317 | conta17 = ContaPoupanca(17) 318 | conta17.deposita(1000) 319 | contas = [conta16, conta17] 320 | 321 | for conta in contas: 322 | conta.passa_o_mes() # duck typing 323 | print(conta) 324 | 325 | """# evitaremos usar array puro. se precisamos de trabalho numérico, é costume usar o numpy""" 326 | 327 | import array as arr 328 | 329 | arr.array('d', [1, 3.5]) 330 | 331 | arr.array('d', [1, 3.5, 'Guilherme']) 332 | 333 | !pip install numpy 334 | 335 | import numpy as np 336 | 337 | numeros = np.array([1, 3.5]) 338 | numeros 339 | 340 | numeros + 3 341 | 342 | class ContaSalario: 343 | 344 | def __init__(self, codigo): 345 | self._codigo = codigo 346 | self._saldo = 0 347 | 348 | def deposita(self, valor): 349 | self._saldo += valor 350 | 351 | def __str__(self): 352 | return "[>>Codigo {} Saldo {}<<]".format(self._codigo, self._saldo) 353 | 354 | conta1 = ContaSalario(37) 355 | print(conta1) 356 | 357 | conta2 = ContaSalario(37) 358 | print(conta2) 359 | 360 | conta1 == conta2 361 | 362 | contas = [conta1] 363 | conta1 in contas 364 | 365 | conta2 in contas 366 | 367 | class ContaSalario: 368 | 369 | def __init__(self, codigo): 370 | self._codigo = codigo 371 | self._saldo = 0 372 | 373 | def __eq__(self, outro): 374 | return self._codigo == outro._codigo 375 | 376 | def deposita(self, valor): 377 | self._saldo += valor 378 | 379 | def __str__(self): 380 | return "[>>Codigo {} Saldo {}<<]".format(self._codigo, self._saldo) 381 | 382 | conta1 = ContaSalario(37) 383 | conta2 = ContaSalario(37) 384 | conta1 == conta2 385 | 386 | conta1 != conta2 387 | 388 | conta1 in [conta2] 389 | 390 | conta2 in [conta1] 391 | 392 | class ContaSalario: 393 | 394 | def __init__(self, codigo): 395 | self._codigo = codigo 396 | self._saldo = 0 397 | 398 | def __eq__(self, outro): 399 | return self._codigo == outro._codigo and self._saldo == outro._saldo 400 | 401 | def deposita(self, valor): 402 | self._saldo += valor 403 | 404 | def __str__(self): 405 | return "[>>Codigo {} Saldo {}<<]".format(self._codigo, self._saldo) 406 | 407 | conta1 = ContaSalario(37) 408 | conta2 = ContaSalario(37) 409 | conta1 == conta2 410 | 411 | conta1.deposita(10) 412 | 413 | conta1 == conta2 414 | 415 | class ContaSalario: 416 | 417 | def __init__(self, codigo): 418 | self._codigo = codigo 419 | self._saldo = 0 420 | 421 | def __eq__(self, outro): 422 | if type(outro) != ContaSalario: 423 | return False 424 | 425 | return self._codigo == outro._codigo and self._saldo == outro._saldo 426 | 427 | def deposita(self, valor): 428 | self._saldo += valor 429 | 430 | def __str__(self): 431 | return "[>>Codigo {} Saldo {}<<]".format(self._codigo, self._saldo) 432 | 433 | conta1 = ContaSalario(37) 434 | conta2 = ContaCorrente(37) 435 | 436 | conta1 == conta2 437 | 438 | isinstance(ContaCorrente(34), ContaCorrente) 439 | 440 | isinstance(ContaCorrente(34), Conta) 441 | 442 | idades = [15, 87, 32, 65, 56, 32, 49, 37] 443 | 444 | for i in range(len(idades)): 445 | print(i, idades[i]) 446 | 447 | range(len(idades)) # lazy... 448 | 449 | enumerate(idades) # lazy 450 | 451 | list(range(len(idades))) # forcei a geração dos valores 452 | 453 | list(enumerate(idades)) 454 | 455 | for indice, idade in enumerate(idades): # unpacking da nossa tupla 456 | print(indice, "x", idade) 457 | 458 | usuarios = [ 459 | ("Guilherme", 37, 1981), 460 | ("Daniela", 31, 1987), 461 | ("Paulo", 39, 1979) 462 | ] 463 | 464 | for nome, idade, nascimento in usuarios: # ja desempacotando 465 | print(nome) 466 | 467 | for nome, _, _ in usuarios: # ja desempacotando, ignorando o resto 468 | print(nome) 469 | 470 | idades 471 | 472 | sorted(idades) 473 | 474 | 15 < 32 475 | 476 | list(reversed(idades)) 477 | 478 | sorted(idades, reverse=True) 479 | 480 | list(reversed(sorted(idades))) 481 | 482 | idades 483 | 484 | idades.sort() 485 | 486 | idades 487 | 488 | 15 < 32 489 | 490 | nomes = ["guilherme", "Daniela", "Paulo"] 491 | sorted(nomes) 492 | 493 | class ContaSalario: 494 | 495 | def __init__(self, codigo): 496 | self._codigo = codigo 497 | self._saldo = 0 498 | 499 | def __eq__(self, outro): 500 | if type(outro) != ContaSalario: 501 | return False 502 | 503 | return self._codigo == outro._codigo and self._saldo == outro._saldo 504 | 505 | def deposita(self, valor): 506 | self._saldo += valor 507 | 508 | def __str__(self): 509 | return "[>>Codigo {} Saldo {}<<]".format(self._codigo, self._saldo) 510 | 511 | conta_do_guilherme = ContaSalario(17) 512 | conta_do_guilherme.deposita(500) 513 | 514 | conta_da_daniela = ContaSalario(3) 515 | conta_da_daniela.deposita(1000) 516 | 517 | conta_do_paulo = ContaSalario(133) 518 | conta_do_paulo.deposita(510) 519 | 520 | contas = [conta_do_guilherme, conta_da_daniela, conta_do_paulo] 521 | 522 | for conta in contas: 523 | print(conta) 524 | 525 | sorted(contas) 526 | 527 | conta_do_guilherme < conta_da_daniela 528 | 529 | def extrai_saldo(conta): 530 | return conta._saldo 531 | 532 | for conta in sorted(contas, key=extrai_saldo): 533 | print(conta) 534 | 535 | from operator import attrgetter 536 | 537 | for conta in sorted(contas, key=attrgetter("_saldo")): 538 | print(conta) 539 | 540 | conta_do_guilherme < conta_da_daniela 541 | 542 | class ContaSalario: 543 | 544 | def __init__(self, codigo): 545 | self._codigo = codigo 546 | self._saldo = 0 547 | 548 | def __eq__(self, outro): 549 | if type(outro) != ContaSalario: 550 | return False 551 | 552 | return self._codigo == outro._codigo and self._saldo == outro._saldo 553 | 554 | def __lt__(self, outro): 555 | return self._saldo < outro._saldo 556 | 557 | def deposita(self, valor): 558 | self._saldo += valor 559 | 560 | def __str__(self): 561 | return "[>>Codigo {} Saldo {}<<]".format(self._codigo, self._saldo) 562 | 563 | conta_do_guilherme = ContaSalario(17) 564 | conta_do_guilherme.deposita(500) 565 | 566 | conta_da_daniela = ContaSalario(3) 567 | conta_da_daniela.deposita(1000) 568 | 569 | conta_do_paulo = ContaSalario(133) 570 | conta_do_paulo.deposita(510) 571 | 572 | contas = [conta_do_guilherme, conta_da_daniela, conta_do_paulo] 573 | 574 | conta_do_guilherme < conta_da_daniela 575 | 576 | conta_do_guilherme > conta_da_daniela 577 | 578 | for conta in sorted(contas): 579 | print(conta) 580 | 581 | for conta in sorted(contas,reverse=True): 582 | print(conta) 583 | 584 | -------------------------------------------------------------------------------- /aula1.2/Introdução_a_Collections.ipynb: -------------------------------------------------------------------------------- 1 | { 2 | "nbformat": 4, 3 | "nbformat_minor": 0, 4 | "metadata": { 5 | "colab": { 6 | "name": "Introdução a Collections", 7 | "version": "0.3.2", 8 | "provenance": [] 9 | }, 10 | "kernelspec": { 11 | "name": "python3", 12 | "display_name": "Python 3" 13 | } 14 | }, 15 | "cells": [ 16 | { 17 | "metadata": { 18 | "id": "i92eaEWHL_tu", 19 | "colab_type": "code", 20 | "colab": { 21 | "base_uri": "https://localhost:8080/", 22 | "height": 84 23 | }, 24 | "outputId": "d871b668-3fcf-4b70-b76f-d0fd18a3cbfb" 25 | }, 26 | "cell_type": "code", 27 | "source": [ 28 | "idade1 = 39\n", 29 | "idade2 = 30\n", 30 | "idade3 = 27\n", 31 | "idade4 = 18\n", 32 | "\n", 33 | "print(idade1)\n", 34 | "print(idade2)\n", 35 | "print(idade3)\n", 36 | "print(idade4)" 37 | ], 38 | "execution_count": 3, 39 | "outputs": [ 40 | { 41 | "output_type": "stream", 42 | "text": [ 43 | "39\n", 44 | "30\n", 45 | "27\n", 46 | "18\n" 47 | ], 48 | "name": "stdout" 49 | } 50 | ] 51 | }, 52 | { 53 | "metadata": { 54 | "id": "27g6sNsIMZEL", 55 | "colab_type": "code", 56 | "colab": {} 57 | }, 58 | "cell_type": "code", 59 | "source": [ 60 | "idades = [39, 30, 27, 18]" 61 | ], 62 | "execution_count": 0, 63 | "outputs": [] 64 | }, 65 | { 66 | "metadata": { 67 | "id": "nMoUaGF8MmuM", 68 | "colab_type": "code", 69 | "colab": { 70 | "base_uri": "https://localhost:8080/", 71 | "height": 34 72 | }, 73 | "outputId": "873010d9-0c3b-4de9-8f2e-0df91484406d" 74 | }, 75 | "cell_type": "code", 76 | "source": [ 77 | "type(idades)" 78 | ], 79 | "execution_count": 5, 80 | "outputs": [ 81 | { 82 | "output_type": "execute_result", 83 | "data": { 84 | "text/plain": [ 85 | "list" 86 | ] 87 | }, 88 | "metadata": { 89 | "tags": [] 90 | }, 91 | "execution_count": 5 92 | } 93 | ] 94 | }, 95 | { 96 | "metadata": { 97 | "id": "693125bLMoQo", 98 | "colab_type": "code", 99 | "colab": { 100 | "base_uri": "https://localhost:8080/", 101 | "height": 34 102 | }, 103 | "outputId": "76f23b9d-f84b-4810-c835-3cf8e988e13a" 104 | }, 105 | "cell_type": "code", 106 | "source": [ 107 | "len(idades)" 108 | ], 109 | "execution_count": 6, 110 | "outputs": [ 111 | { 112 | "output_type": "execute_result", 113 | "data": { 114 | "text/plain": [ 115 | "4" 116 | ] 117 | }, 118 | "metadata": { 119 | "tags": [] 120 | }, 121 | "execution_count": 6 122 | } 123 | ] 124 | }, 125 | { 126 | "metadata": { 127 | "id": "HhRSkKaNM70v", 128 | "colab_type": "code", 129 | "colab": { 130 | "base_uri": "https://localhost:8080/", 131 | "height": 34 132 | }, 133 | "outputId": "f0eb0381-e6cb-46b9-d80a-e5fb93ffda20" 134 | }, 135 | "cell_type": "code", 136 | "source": [ 137 | "idades[0]" 138 | ], 139 | "execution_count": 7, 140 | "outputs": [ 141 | { 142 | "output_type": "execute_result", 143 | "data": { 144 | "text/plain": [ 145 | "39" 146 | ] 147 | }, 148 | "metadata": { 149 | "tags": [] 150 | }, 151 | "execution_count": 7 152 | } 153 | ] 154 | }, 155 | { 156 | "metadata": { 157 | "id": "7Wra5jZLM_6e", 158 | "colab_type": "code", 159 | "colab": { 160 | "base_uri": "https://localhost:8080/", 161 | "height": 34 162 | }, 163 | "outputId": "87f8d517-a653-4164-e621-982ceeae6f8b" 164 | }, 165 | "cell_type": "code", 166 | "source": [ 167 | "idades" 168 | ], 169 | "execution_count": 8, 170 | "outputs": [ 171 | { 172 | "output_type": "execute_result", 173 | "data": { 174 | "text/plain": [ 175 | "[39, 30, 27, 18]" 176 | ] 177 | }, 178 | "metadata": { 179 | "tags": [] 180 | }, 181 | "execution_count": 8 182 | } 183 | ] 184 | }, 185 | { 186 | "metadata": { 187 | "id": "NXyDZcsZNBJm", 188 | "colab_type": "code", 189 | "colab": { 190 | "base_uri": "https://localhost:8080/", 191 | "height": 67 192 | }, 193 | "outputId": "a06e0ef7-5766-428e-fc3d-98c893cb2ba9" 194 | }, 195 | "cell_type": "code", 196 | "source": [ 197 | "print(idades[1])\n", 198 | "print(idades[2])\n", 199 | "print(idades[3])" 200 | ], 201 | "execution_count": 10, 202 | "outputs": [ 203 | { 204 | "output_type": "stream", 205 | "text": [ 206 | "30\n", 207 | "27\n", 208 | "18\n" 209 | ], 210 | "name": "stdout" 211 | } 212 | ] 213 | }, 214 | { 215 | "metadata": { 216 | "id": "60CS-6vnNEzX", 217 | "colab_type": "code", 218 | "colab": {} 219 | }, 220 | "cell_type": "code", 221 | "source": [ 222 | "idades.append(15)" 223 | ], 224 | "execution_count": 0, 225 | "outputs": [] 226 | }, 227 | { 228 | "metadata": { 229 | "id": "LgNGaf7FNSr-", 230 | "colab_type": "code", 231 | "colab": { 232 | "base_uri": "https://localhost:8080/", 233 | "height": 34 234 | }, 235 | "outputId": "b4118e96-3abc-44f9-eb97-a187b86dcdf0" 236 | }, 237 | "cell_type": "code", 238 | "source": [ 239 | "idades" 240 | ], 241 | "execution_count": 12, 242 | "outputs": [ 243 | { 244 | "output_type": "execute_result", 245 | "data": { 246 | "text/plain": [ 247 | "[39, 30, 27, 18, 15]" 248 | ] 249 | }, 250 | "metadata": { 251 | "tags": [] 252 | }, 253 | "execution_count": 12 254 | } 255 | ] 256 | }, 257 | { 258 | "metadata": { 259 | "id": "PqFCqcOvNT7h", 260 | "colab_type": "code", 261 | "colab": { 262 | "base_uri": "https://localhost:8080/", 263 | "height": 34 264 | }, 265 | "outputId": "3484bb85-8703-481d-d669-f499397c8741" 266 | }, 267 | "cell_type": "code", 268 | "source": [ 269 | "idades[4]" 270 | ], 271 | "execution_count": 13, 272 | "outputs": [ 273 | { 274 | "output_type": "execute_result", 275 | "data": { 276 | "text/plain": [ 277 | "15" 278 | ] 279 | }, 280 | "metadata": { 281 | "tags": [] 282 | }, 283 | "execution_count": 13 284 | } 285 | ] 286 | }, 287 | { 288 | "metadata": { 289 | "id": "aCzxDZ0CNVti", 290 | "colab_type": "code", 291 | "colab": { 292 | "base_uri": "https://localhost:8080/", 293 | "height": 162 294 | }, 295 | "outputId": "da86fe7c-9f23-4f9e-cf57-a7d85750260b" 296 | }, 297 | "cell_type": "code", 298 | "source": [ 299 | "idades[5]" 300 | ], 301 | "execution_count": 14, 302 | "outputs": [ 303 | { 304 | "output_type": "error", 305 | "ename": "IndexError", 306 | "evalue": "ignored", 307 | "traceback": [ 308 | "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", 309 | "\u001b[0;31mIndexError\u001b[0m Traceback (most recent call last)", 310 | "\u001b[0;32m\u001b[0m in \u001b[0;36m\u001b[0;34m()\u001b[0m\n\u001b[0;32m----> 1\u001b[0;31m \u001b[0midades\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;36m5\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m", 311 | "\u001b[0;31mIndexError\u001b[0m: list index out of range" 312 | ] 313 | } 314 | ] 315 | }, 316 | { 317 | "metadata": { 318 | "id": "AXKjngwvNXLM", 319 | "colab_type": "code", 320 | "colab": { 321 | "base_uri": "https://localhost:8080/", 322 | "height": 101 323 | }, 324 | "outputId": "8e4c3efa-3cd1-424f-ef20-0ae9c306b927" 325 | }, 326 | "cell_type": "code", 327 | "source": [ 328 | "for idade in idades:\n", 329 | " print(idade)" 330 | ], 331 | "execution_count": 17, 332 | "outputs": [ 333 | { 334 | "output_type": "stream", 335 | "text": [ 336 | "39\n", 337 | "30\n", 338 | "27\n", 339 | "18\n", 340 | "15\n" 341 | ], 342 | "name": "stdout" 343 | } 344 | ] 345 | }, 346 | { 347 | "metadata": { 348 | "id": "e086OjeaNmWj", 349 | "colab_type": "code", 350 | "colab": {} 351 | }, 352 | "cell_type": "code", 353 | "source": [ 354 | "idades.remove(30)" 355 | ], 356 | "execution_count": 0, 357 | "outputs": [] 358 | }, 359 | { 360 | "metadata": { 361 | "id": "5A6pLLh4No8s", 362 | "colab_type": "code", 363 | "colab": { 364 | "base_uri": "https://localhost:8080/", 365 | "height": 34 366 | }, 367 | "outputId": "83eb8f32-033e-410c-9aac-a17e5cea45b2" 368 | }, 369 | "cell_type": "code", 370 | "source": [ 371 | "idades" 372 | ], 373 | "execution_count": 19, 374 | "outputs": [ 375 | { 376 | "output_type": "execute_result", 377 | "data": { 378 | "text/plain": [ 379 | "[39, 27, 18, 15]" 380 | ] 381 | }, 382 | "metadata": { 383 | "tags": [] 384 | }, 385 | "execution_count": 19 386 | } 387 | ] 388 | }, 389 | { 390 | "metadata": { 391 | "id": "ojsePmRwNpy2", 392 | "colab_type": "code", 393 | "colab": { 394 | "base_uri": "https://localhost:8080/", 395 | "height": 164 396 | }, 397 | "outputId": "2beab908-ba71-4dff-dc8a-dd94b70f8bb4" 398 | }, 399 | "cell_type": "code", 400 | "source": [ 401 | "idades.remove(30)" 402 | ], 403 | "execution_count": 20, 404 | "outputs": [ 405 | { 406 | "output_type": "error", 407 | "ename": "ValueError", 408 | "evalue": "ignored", 409 | "traceback": [ 410 | "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", 411 | "\u001b[0;31mValueError\u001b[0m Traceback (most recent call last)", 412 | "\u001b[0;32m\u001b[0m in \u001b[0;36m\u001b[0;34m()\u001b[0m\n\u001b[0;32m----> 1\u001b[0;31m \u001b[0midades\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mremove\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;36m30\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m", 413 | "\u001b[0;31mValueError\u001b[0m: list.remove(x): x not in list" 414 | ] 415 | } 416 | ] 417 | }, 418 | { 419 | "metadata": { 420 | "id": "kkdK3t6nNsXW", 421 | "colab_type": "code", 422 | "colab": {} 423 | }, 424 | "cell_type": "code", 425 | "source": [ 426 | "idades.append(15)" 427 | ], 428 | "execution_count": 0, 429 | "outputs": [] 430 | }, 431 | { 432 | "metadata": { 433 | "id": "caaWvENvNv8N", 434 | "colab_type": "code", 435 | "colab": { 436 | "base_uri": "https://localhost:8080/", 437 | "height": 34 438 | }, 439 | "outputId": "19bf6599-f2d8-4cbd-e9a5-af1968e614e3" 440 | }, 441 | "cell_type": "code", 442 | "source": [ 443 | "idades" 444 | ], 445 | "execution_count": 22, 446 | "outputs": [ 447 | { 448 | "output_type": "execute_result", 449 | "data": { 450 | "text/plain": [ 451 | "[39, 27, 18, 15, 15]" 452 | ] 453 | }, 454 | "metadata": { 455 | "tags": [] 456 | }, 457 | "execution_count": 22 458 | } 459 | ] 460 | }, 461 | { 462 | "metadata": { 463 | "id": "IZC0ENA1Nwso", 464 | "colab_type": "code", 465 | "colab": {} 466 | }, 467 | "cell_type": "code", 468 | "source": [ 469 | "idades.remove(15)" 470 | ], 471 | "execution_count": 0, 472 | "outputs": [] 473 | }, 474 | { 475 | "metadata": { 476 | "id": "80fchrRGNx4A", 477 | "colab_type": "code", 478 | "colab": { 479 | "base_uri": "https://localhost:8080/", 480 | "height": 34 481 | }, 482 | "outputId": "5a7258c1-dd6b-46d9-c468-0b7b58819d73" 483 | }, 484 | "cell_type": "code", 485 | "source": [ 486 | "idades" 487 | ], 488 | "execution_count": 24, 489 | "outputs": [ 490 | { 491 | "output_type": "execute_result", 492 | "data": { 493 | "text/plain": [ 494 | "[39, 27, 18, 15]" 495 | ] 496 | }, 497 | "metadata": { 498 | "tags": [] 499 | }, 500 | "execution_count": 24 501 | } 502 | ] 503 | }, 504 | { 505 | "metadata": { 506 | "id": "yNWCUQupNycy", 507 | "colab_type": "code", 508 | "colab": { 509 | "base_uri": "https://localhost:8080/", 510 | "height": 34 511 | }, 512 | "outputId": "afde6e30-a7f1-451e-afd4-ec6e03d52cf0" 513 | }, 514 | "cell_type": "code", 515 | "source": [ 516 | "idades.append(27)\n", 517 | "idades.remove(27)\n", 518 | "idades" 519 | ], 520 | "execution_count": 25, 521 | "outputs": [ 522 | { 523 | "output_type": "execute_result", 524 | "data": { 525 | "text/plain": [ 526 | "[39, 18, 15, 27]" 527 | ] 528 | }, 529 | "metadata": { 530 | "tags": [] 531 | }, 532 | "execution_count": 25 533 | } 534 | ] 535 | }, 536 | { 537 | "metadata": { 538 | "id": "Kot_FAOkN3g3", 539 | "colab_type": "code", 540 | "colab": {} 541 | }, 542 | "cell_type": "code", 543 | "source": [ 544 | "" 545 | ], 546 | "execution_count": 0, 547 | "outputs": [] 548 | } 549 | ] 550 | } -------------------------------------------------------------------------------- /aula8.1/introdução_a_collections.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | """Introdução a Collections 3 | 4 | Automatically generated by Colaboratory. 5 | 6 | Original file is located at 7 | https://colab.research.google.com/drive/1Xajf8Uy5Mm_1ZfpSHj5JaHtw9TiSgV0u 8 | """ 9 | 10 | idade1 = 39 11 | idade2 = 30 12 | idade3 = 27 13 | idade4 = 18 14 | 15 | print(idade1) 16 | print(idade2) 17 | print(idade3) 18 | print(idade4) 19 | 20 | idades = [39, 30, 27, 18] 21 | 22 | type(idades) 23 | 24 | len(idades) 25 | 26 | idades[0] 27 | 28 | idades 29 | 30 | print(idades[1]) 31 | print(idades[2]) 32 | print(idades[3]) 33 | 34 | idades.append(15) 35 | 36 | idades 37 | 38 | idades[4] 39 | 40 | idades[5] 41 | 42 | for idade in idades: 43 | print(idade) 44 | 45 | idades.remove(30) 46 | 47 | idades 48 | 49 | idades.remove(30) 50 | 51 | idades.append(15) 52 | 53 | idades 54 | 55 | idades.remove(15) 56 | 57 | idades 58 | 59 | idades.append(27) 60 | idades.remove(27) 61 | idades 62 | 63 | 28 in idades 64 | 65 | 15 in idades 66 | 67 | if 15 in idades: 68 | idades.remove(15) 69 | 70 | idades 71 | 72 | if 28 in idades: 73 | idades.remove(28) 74 | 75 | idades 76 | 77 | idades.append(19) 78 | idades 79 | 80 | idades.insert(0, 20) 81 | idades 82 | 83 | idades = [20, 39, 18] 84 | idades 85 | 86 | idades.append([27, 19]) 87 | 88 | idades 89 | 90 | for elemento in idades: 91 | print("Recebi o elemento", elemento) 92 | 93 | idades = [20, 39, 18] 94 | idades.extend([27, 19]) 95 | idades 96 | 97 | for idade in idades: 98 | print(idade + 1) 99 | 100 | idades_no_ano_que_vem = [] 101 | for idade in idades: 102 | idades_no_ano_que_vem.append(idade+1) 103 | idades_no_ano_que_vem 104 | 105 | idades_no_ano_que_vem = [idade+1 for idade in idades] 106 | idades_no_ano_que_vem 107 | 108 | [idade for idade in idades if idade > 21] 109 | 110 | idades 111 | 112 | def proximo_ano(idade): 113 | return idade+1 114 | 115 | [proximo_ano(idade) for idade in idades if idade > 21] 116 | 117 | def faz_processamento_de_visualizacao(lista): 118 | print(len(lista)) 119 | lista.append(13) 120 | 121 | idades = [16, 21, 29, 56, 43] 122 | faz_processamento_de_visualizacao(idades) 123 | idades 124 | 125 | def faz_processamento_de_visualizacao(lista = []): 126 | print(len(lista)) 127 | print(lista) 128 | lista.append(13) 129 | 130 | faz_processamento_de_visualizacao() 131 | 132 | faz_processamento_de_visualizacao() 133 | 134 | faz_processamento_de_visualizacao() 135 | 136 | faz_processamento_de_visualizacao() 137 | 138 | def faz_processamento_de_visualizacao(lista = list()): 139 | print(len(lista)) 140 | print(lista) 141 | lista.append(13) 142 | 143 | faz_processamento_de_visualizacao() 144 | faz_processamento_de_visualizacao() 145 | 146 | def faz_processamento_de_visualizacao(lista = None): 147 | if lista == None: 148 | lista = list() 149 | print(len(lista)) 150 | print(lista) 151 | lista.append(13) 152 | 153 | faz_processamento_de_visualizacao() 154 | faz_processamento_de_visualizacao() 155 | faz_processamento_de_visualizacao() 156 | faz_processamento_de_visualizacao() 157 | 158 | """# Objetos próprios""" 159 | 160 | class ContaCorrente: 161 | 162 | def __init__(self, codigo): 163 | self.codigo = codigo 164 | self.saldo = 0 165 | 166 | def deposita(self, valor): 167 | self.saldo += valor 168 | 169 | def __str__(self): 170 | return "[>>Codigo {} Saldo {}<<]".format(self.codigo, self.saldo) 171 | 172 | conta_do_gui = ContaCorrente(15) 173 | print(conta_do_gui) 174 | 175 | conta_do_gui.deposita(500) 176 | print(conta_do_gui) 177 | 178 | conta_da_dani = ContaCorrente(47685) 179 | conta_da_dani.deposita(1000) 180 | print(conta_da_dani) 181 | 182 | contas = [conta_do_gui, conta_da_dani] 183 | for conta in contas: 184 | print(conta) 185 | 186 | contas = [conta_do_gui, conta_da_dani, conta_do_gui] 187 | 188 | print(contas[0]) 189 | 190 | conta_do_gui.deposita(100) 191 | 192 | print(contas[0]) 193 | 194 | print(conta_do_gui) 195 | 196 | print(contas[2]) 197 | 198 | contas[2].deposita(300) 199 | 200 | print(conta_do_gui) 201 | 202 | def deposita_para_todas(contas): 203 | for conta in contas: 204 | conta.deposita(100) 205 | 206 | contas = [conta_do_gui, conta_da_dani] 207 | print(contas[0], contas[1]) 208 | deposita_para_todas(contas) 209 | print(contas[0], contas[1]) 210 | 211 | contas.insert(0,76) 212 | print(contas[0], contas[1], contas[2]) 213 | 214 | deposita_para_todas(contas) 215 | print(contas[0], contas[1], contas[2]) 216 | 217 | guilherme = ('Guilherme', 37, 1981) # tupla 218 | daniela = ('Daniela', 31, 1987) 219 | # paulo = (39, 'Paulo', 1979) # ruim 220 | 221 | guilherme.append(6754) 222 | 223 | conta_do_gui = (15, 1000) 224 | # conta_do_gui.deposita() # variação OO 225 | conta_do_gui[1] 226 | 227 | conta_do_gui[1] += 100 228 | 229 | def deposita(conta): # variação "funcional"(separando o comportamento dos dados) 230 | novo_saldo = conta[1] + 100 231 | codigo = conta[0] 232 | return (codigo, novo_saldo) 233 | 234 | deposita(conta_do_gui) 235 | 236 | conta_do_gui 237 | 238 | conta_do_gui = deposita(conta_do_gui) 239 | conta_do_gui 240 | 241 | usuarios = [guilherme, daniela] 242 | usuarios 243 | 244 | usuarios.append(('Paulo', 39, 1979)) 245 | 246 | usuarios 247 | 248 | usuarios[0][0] = 'Guilherme Silveira' 249 | 250 | conta_do_gui = ContaCorrente(15) 251 | conta_do_gui.deposita(500) 252 | conta_da_dani = ContaCorrente(234876) 253 | conta_da_dani.deposita(1000) 254 | 255 | contas = (conta_do_gui, conta_da_dani) 256 | 257 | for conta in contas: 258 | print(conta) 259 | 260 | contas.append(423768) 261 | 262 | contas[0].deposita(300) 263 | 264 | for conta in contas: 265 | print(conta) 266 | 267 | """# Herança e polimorfismo""" 268 | 269 | from abc import ABCMeta, abstractmethod 270 | 271 | class Conta(metaclass=ABCMeta): 272 | 273 | def __init__(self, codigo): 274 | self._codigo = codigo 275 | self._saldo = 0 276 | 277 | def deposita(self, valor): 278 | self._saldo += valor 279 | 280 | @abstractmethod 281 | def passa_o_mes(self): 282 | pass 283 | 284 | def __str__(self): 285 | return "[>>Codigo {} Saldo {}<<]".format(self._codigo, self._saldo) 286 | 287 | print(Conta(88)) 288 | 289 | class ContaCorrente(Conta): 290 | 291 | def passa_o_mes(self): 292 | self._saldo -= 2 293 | 294 | class ContaPoupanca(Conta): 295 | 296 | def passa_o_mes(self): 297 | self._saldo *= 1.01 298 | self._saldo -= 3 299 | 300 | class ContaInvestimento(Conta): 301 | pass 302 | 303 | ContaInvestimento(764) 304 | 305 | conta16 = ContaCorrente(16) 306 | conta16.deposita(1000) 307 | conta16.passa_o_mes() 308 | print(conta16) 309 | 310 | conta17 = ContaPoupanca(17) 311 | conta17.deposita(1000) 312 | conta17.passa_o_mes() 313 | print(conta17) 314 | 315 | conta16 = ContaCorrente(16) 316 | conta16.deposita(1000) 317 | conta17 = ContaPoupanca(17) 318 | conta17.deposita(1000) 319 | contas = [conta16, conta17] 320 | 321 | for conta in contas: 322 | conta.passa_o_mes() # duck typing 323 | print(conta) 324 | 325 | """# evitaremos usar array puro. se precisamos de trabalho numérico, é costume usar o numpy""" 326 | 327 | import array as arr 328 | 329 | arr.array('d', [1, 3.5]) 330 | 331 | arr.array('d', [1, 3.5, 'Guilherme']) 332 | 333 | !pip install numpy 334 | 335 | import numpy as np 336 | 337 | numeros = np.array([1, 3.5]) 338 | numeros 339 | 340 | numeros + 3 341 | 342 | class ContaSalario: 343 | 344 | def __init__(self, codigo): 345 | self._codigo = codigo 346 | self._saldo = 0 347 | 348 | def deposita(self, valor): 349 | self._saldo += valor 350 | 351 | def __str__(self): 352 | return "[>>Codigo {} Saldo {}<<]".format(self._codigo, self._saldo) 353 | 354 | conta1 = ContaSalario(37) 355 | print(conta1) 356 | 357 | conta2 = ContaSalario(37) 358 | print(conta2) 359 | 360 | conta1 == conta2 361 | 362 | contas = [conta1] 363 | conta1 in contas 364 | 365 | conta2 in contas 366 | 367 | class ContaSalario: 368 | 369 | def __init__(self, codigo): 370 | self._codigo = codigo 371 | self._saldo = 0 372 | 373 | def __eq__(self, outro): 374 | return self._codigo == outro._codigo 375 | 376 | def deposita(self, valor): 377 | self._saldo += valor 378 | 379 | def __str__(self): 380 | return "[>>Codigo {} Saldo {}<<]".format(self._codigo, self._saldo) 381 | 382 | conta1 = ContaSalario(37) 383 | conta2 = ContaSalario(37) 384 | conta1 == conta2 385 | 386 | conta1 != conta2 387 | 388 | conta1 in [conta2] 389 | 390 | conta2 in [conta1] 391 | 392 | class ContaSalario: 393 | 394 | def __init__(self, codigo): 395 | self._codigo = codigo 396 | self._saldo = 0 397 | 398 | def __eq__(self, outro): 399 | return self._codigo == outro._codigo and self._saldo == outro._saldo 400 | 401 | def deposita(self, valor): 402 | self._saldo += valor 403 | 404 | def __str__(self): 405 | return "[>>Codigo {} Saldo {}<<]".format(self._codigo, self._saldo) 406 | 407 | conta1 = ContaSalario(37) 408 | conta2 = ContaSalario(37) 409 | conta1 == conta2 410 | 411 | conta1.deposita(10) 412 | 413 | conta1 == conta2 414 | 415 | class ContaSalario: 416 | 417 | def __init__(self, codigo): 418 | self._codigo = codigo 419 | self._saldo = 0 420 | 421 | def __eq__(self, outro): 422 | if type(outro) != ContaSalario: 423 | return False 424 | 425 | return self._codigo == outro._codigo and self._saldo == outro._saldo 426 | 427 | def deposita(self, valor): 428 | self._saldo += valor 429 | 430 | def __str__(self): 431 | return "[>>Codigo {} Saldo {}<<]".format(self._codigo, self._saldo) 432 | 433 | conta1 = ContaSalario(37) 434 | conta2 = ContaCorrente(37) 435 | 436 | conta1 == conta2 437 | 438 | isinstance(ContaCorrente(34), ContaCorrente) 439 | 440 | isinstance(ContaCorrente(34), Conta) 441 | 442 | idades = [15, 87, 32, 65, 56, 32, 49, 37] 443 | 444 | for i in range(len(idades)): 445 | print(i, idades[i]) 446 | 447 | range(len(idades)) # lazy... 448 | 449 | enumerate(idades) # lazy 450 | 451 | list(range(len(idades))) # forcei a geração dos valores 452 | 453 | list(enumerate(idades)) 454 | 455 | for indice, idade in enumerate(idades): # unpacking da nossa tupla 456 | print(indice, "x", idade) 457 | 458 | usuarios = [ 459 | ("Guilherme", 37, 1981), 460 | ("Daniela", 31, 1987), 461 | ("Paulo", 39, 1979) 462 | ] 463 | 464 | for nome, idade, nascimento in usuarios: # ja desempacotando 465 | print(nome) 466 | 467 | for nome, _, _ in usuarios: # ja desempacotando, ignorando o resto 468 | print(nome) 469 | 470 | idades 471 | 472 | sorted(idades) 473 | 474 | 15 < 32 475 | 476 | list(reversed(idades)) 477 | 478 | sorted(idades, reverse=True) 479 | 480 | list(reversed(sorted(idades))) 481 | 482 | idades 483 | 484 | idades.sort() 485 | 486 | idades 487 | 488 | 15 < 32 489 | 490 | nomes = ["guilherme", "Daniela", "Paulo"] 491 | sorted(nomes) 492 | 493 | class ContaSalario: 494 | 495 | def __init__(self, codigo): 496 | self._codigo = codigo 497 | self._saldo = 0 498 | 499 | def __eq__(self, outro): 500 | if type(outro) != ContaSalario: 501 | return False 502 | 503 | return self._codigo == outro._codigo and self._saldo == outro._saldo 504 | 505 | def deposita(self, valor): 506 | self._saldo += valor 507 | 508 | def __str__(self): 509 | return "[>>Codigo {} Saldo {}<<]".format(self._codigo, self._saldo) 510 | 511 | conta_do_guilherme = ContaSalario(17) 512 | conta_do_guilherme.deposita(500) 513 | 514 | conta_da_daniela = ContaSalario(3) 515 | conta_da_daniela.deposita(1000) 516 | 517 | conta_do_paulo = ContaSalario(133) 518 | conta_do_paulo.deposita(510) 519 | 520 | contas = [conta_do_guilherme, conta_da_daniela, conta_do_paulo] 521 | 522 | for conta in contas: 523 | print(conta) 524 | 525 | sorted(contas) 526 | 527 | conta_do_guilherme < conta_da_daniela 528 | 529 | def extrai_saldo(conta): 530 | return conta._saldo 531 | 532 | for conta in sorted(contas, key=extrai_saldo): 533 | print(conta) 534 | 535 | from operator import attrgetter 536 | 537 | for conta in sorted(contas, key=attrgetter("_saldo")): 538 | print(conta) 539 | 540 | conta_do_guilherme < conta_da_daniela 541 | 542 | class ContaSalario: 543 | 544 | def __init__(self, codigo): 545 | self._codigo = codigo 546 | self._saldo = 0 547 | 548 | def __eq__(self, outro): 549 | if type(outro) != ContaSalario: 550 | return False 551 | 552 | return self._codigo == outro._codigo and self._saldo == outro._saldo 553 | 554 | def __lt__(self, outro): 555 | return self._saldo < outro._saldo 556 | 557 | def deposita(self, valor): 558 | self._saldo += valor 559 | 560 | def __str__(self): 561 | return "[>>Codigo {} Saldo {}<<]".format(self._codigo, self._saldo) 562 | 563 | conta_do_guilherme = ContaSalario(17) 564 | conta_do_guilherme.deposita(500) 565 | 566 | conta_da_daniela = ContaSalario(3) 567 | conta_da_daniela.deposita(1000) 568 | 569 | conta_do_paulo = ContaSalario(133) 570 | conta_do_paulo.deposita(510) 571 | 572 | contas = [conta_do_guilherme, conta_da_daniela, conta_do_paulo] 573 | 574 | conta_do_guilherme < conta_da_daniela 575 | 576 | conta_do_guilherme > conta_da_daniela 577 | 578 | for conta in sorted(contas): 579 | print(conta) 580 | 581 | for conta in sorted(contas,reverse=True): 582 | print(conta) 583 | 584 | conta_do_guilherme = ContaSalario(1700) 585 | conta_do_guilherme.deposita(500) 586 | 587 | conta_da_daniela = ContaSalario(3) 588 | conta_da_daniela.deposita(1000) 589 | 590 | conta_do_paulo = ContaSalario(133) 591 | conta_do_paulo.deposita(500) 592 | 593 | contas = [conta_do_guilherme, conta_da_daniela, conta_do_paulo] 594 | 595 | for conta in sorted(contas, key=attrgetter("_saldo", "_codigo")): 596 | print(conta) 597 | 598 | conta_do_guilherme = ContaSalario(1700) 599 | conta_do_guilherme.deposita(500) 600 | 601 | conta_da_daniela = ContaSalario(3) 602 | conta_da_daniela.deposita(500) 603 | 604 | conta_do_paulo = ContaSalario(133) 605 | conta_do_paulo.deposita(500) 606 | 607 | contas = [conta_do_guilherme, conta_da_daniela, conta_do_paulo] 608 | 609 | for conta in sorted(contas, key=attrgetter("_saldo", "_codigo")): 610 | print(conta) 611 | 612 | class ContaSalario: 613 | 614 | def __init__(self, codigo): 615 | self._codigo = codigo 616 | self._saldo = 0 617 | 618 | def __eq__(self, outro): 619 | if type(outro) != ContaSalario: 620 | return False 621 | 622 | return self._codigo == outro._codigo and self._saldo == outro._saldo 623 | 624 | def __lt__(self, outro): 625 | if self._saldo != outro._saldo: 626 | return self._saldo < outro._saldo 627 | 628 | return self._codigo < outro._codigo 629 | 630 | def deposita(self, valor): 631 | self._saldo += valor 632 | 633 | def __str__(self): 634 | return "[>>Codigo {} Saldo {}<<]".format(self._codigo, self._saldo) 635 | 636 | conta_do_guilherme = ContaSalario(1700) 637 | conta_do_guilherme.deposita(500) 638 | 639 | conta_da_daniela = ContaSalario(3) 640 | conta_da_daniela.deposita(500) 641 | 642 | conta_do_paulo = ContaSalario(133) 643 | conta_do_paulo.deposita(500) 644 | 645 | contas = [conta_do_guilherme, conta_da_daniela, conta_do_paulo] 646 | 647 | for conta in sorted(contas): 648 | print(conta) 649 | 650 | conta_do_guilherme = ContaSalario(1700) 651 | conta_do_guilherme.deposita(500) 652 | 653 | conta_da_daniela = ContaSalario(3) 654 | conta_da_daniela.deposita(1000) 655 | 656 | conta_do_paulo = ContaSalario(133) 657 | conta_do_paulo.deposita(500) 658 | 659 | contas = [conta_do_guilherme, conta_da_daniela, conta_do_paulo] 660 | 661 | for conta in sorted(contas): 662 | print(conta) 663 | 664 | conta_do_guilherme < conta_da_daniela 665 | 666 | conta_do_guilherme <= conta_da_daniela 667 | 668 | from functools import total_ordering 669 | 670 | @total_ordering 671 | class ContaSalario: 672 | 673 | def __init__(self, codigo): 674 | self._codigo = codigo 675 | self._saldo = 0 676 | 677 | def __eq__(self, outro): 678 | if type(outro) != ContaSalario: 679 | return False 680 | 681 | return self._codigo == outro._codigo and self._saldo == outro._saldo 682 | 683 | def __lt__(self, outro): 684 | if self._saldo != outro._saldo: 685 | return self._saldo < outro._saldo 686 | 687 | return self._codigo < outro._codigo 688 | 689 | def deposita(self, valor): 690 | self._saldo += valor 691 | 692 | def __str__(self): 693 | return "[>>Codigo {} Saldo {}<<]".format(self._codigo, self._saldo) 694 | 695 | conta_do_guilherme = ContaSalario(1700) 696 | conta_do_guilherme.deposita(500) 697 | 698 | conta_da_daniela = ContaSalario(3) 699 | conta_da_daniela.deposita(1000) 700 | 701 | conta_do_paulo = ContaSalario(133) 702 | conta_do_paulo.deposita(500) 703 | 704 | contas = [conta_do_guilherme, conta_da_daniela, conta_do_paulo] 705 | 706 | conta_do_guilherme <= conta_da_daniela 707 | 708 | conta_do_guilherme <= conta_do_paulo 709 | 710 | conta_do_guilherme < conta_do_guilherme 711 | 712 | conta_do_guilherme == conta_do_guilherme 713 | 714 | conta_do_guilherme <= conta_do_guilherme 715 | 716 | -------------------------------------------------------------------------------- /aula1.3/Introdução_a_Collections (1).ipynb: -------------------------------------------------------------------------------- 1 | { 2 | "nbformat": 4, 3 | "nbformat_minor": 0, 4 | "metadata": { 5 | "colab": { 6 | "name": "Introdução a Collections", 7 | "version": "0.3.2", 8 | "provenance": [] 9 | }, 10 | "kernelspec": { 11 | "name": "python3", 12 | "display_name": "Python 3" 13 | } 14 | }, 15 | "cells": [ 16 | { 17 | "metadata": { 18 | "id": "i92eaEWHL_tu", 19 | "colab_type": "code", 20 | "colab": { 21 | "base_uri": "https://localhost:8080/", 22 | "height": 84 23 | }, 24 | "outputId": "d871b668-3fcf-4b70-b76f-d0fd18a3cbfb" 25 | }, 26 | "cell_type": "code", 27 | "source": [ 28 | "idade1 = 39\n", 29 | "idade2 = 30\n", 30 | "idade3 = 27\n", 31 | "idade4 = 18\n", 32 | "\n", 33 | "print(idade1)\n", 34 | "print(idade2)\n", 35 | "print(idade3)\n", 36 | "print(idade4)" 37 | ], 38 | "execution_count": 3, 39 | "outputs": [ 40 | { 41 | "output_type": "stream", 42 | "text": [ 43 | "39\n", 44 | "30\n", 45 | "27\n", 46 | "18\n" 47 | ], 48 | "name": "stdout" 49 | } 50 | ] 51 | }, 52 | { 53 | "metadata": { 54 | "id": "27g6sNsIMZEL", 55 | "colab_type": "code", 56 | "colab": {} 57 | }, 58 | "cell_type": "code", 59 | "source": [ 60 | "idades = [39, 30, 27, 18]" 61 | ], 62 | "execution_count": 0, 63 | "outputs": [] 64 | }, 65 | { 66 | "metadata": { 67 | "id": "nMoUaGF8MmuM", 68 | "colab_type": "code", 69 | "colab": { 70 | "base_uri": "https://localhost:8080/", 71 | "height": 34 72 | }, 73 | "outputId": "873010d9-0c3b-4de9-8f2e-0df91484406d" 74 | }, 75 | "cell_type": "code", 76 | "source": [ 77 | "type(idades)" 78 | ], 79 | "execution_count": 5, 80 | "outputs": [ 81 | { 82 | "output_type": "execute_result", 83 | "data": { 84 | "text/plain": [ 85 | "list" 86 | ] 87 | }, 88 | "metadata": { 89 | "tags": [] 90 | }, 91 | "execution_count": 5 92 | } 93 | ] 94 | }, 95 | { 96 | "metadata": { 97 | "id": "693125bLMoQo", 98 | "colab_type": "code", 99 | "colab": { 100 | "base_uri": "https://localhost:8080/", 101 | "height": 34 102 | }, 103 | "outputId": "76f23b9d-f84b-4810-c835-3cf8e988e13a" 104 | }, 105 | "cell_type": "code", 106 | "source": [ 107 | "len(idades)" 108 | ], 109 | "execution_count": 6, 110 | "outputs": [ 111 | { 112 | "output_type": "execute_result", 113 | "data": { 114 | "text/plain": [ 115 | "4" 116 | ] 117 | }, 118 | "metadata": { 119 | "tags": [] 120 | }, 121 | "execution_count": 6 122 | } 123 | ] 124 | }, 125 | { 126 | "metadata": { 127 | "id": "HhRSkKaNM70v", 128 | "colab_type": "code", 129 | "colab": { 130 | "base_uri": "https://localhost:8080/", 131 | "height": 34 132 | }, 133 | "outputId": "f0eb0381-e6cb-46b9-d80a-e5fb93ffda20" 134 | }, 135 | "cell_type": "code", 136 | "source": [ 137 | "idades[0]" 138 | ], 139 | "execution_count": 7, 140 | "outputs": [ 141 | { 142 | "output_type": "execute_result", 143 | "data": { 144 | "text/plain": [ 145 | "39" 146 | ] 147 | }, 148 | "metadata": { 149 | "tags": [] 150 | }, 151 | "execution_count": 7 152 | } 153 | ] 154 | }, 155 | { 156 | "metadata": { 157 | "id": "7Wra5jZLM_6e", 158 | "colab_type": "code", 159 | "colab": { 160 | "base_uri": "https://localhost:8080/", 161 | "height": 34 162 | }, 163 | "outputId": "87f8d517-a653-4164-e621-982ceeae6f8b" 164 | }, 165 | "cell_type": "code", 166 | "source": [ 167 | "idades" 168 | ], 169 | "execution_count": 8, 170 | "outputs": [ 171 | { 172 | "output_type": "execute_result", 173 | "data": { 174 | "text/plain": [ 175 | "[39, 30, 27, 18]" 176 | ] 177 | }, 178 | "metadata": { 179 | "tags": [] 180 | }, 181 | "execution_count": 8 182 | } 183 | ] 184 | }, 185 | { 186 | "metadata": { 187 | "id": "NXyDZcsZNBJm", 188 | "colab_type": "code", 189 | "colab": { 190 | "base_uri": "https://localhost:8080/", 191 | "height": 67 192 | }, 193 | "outputId": "a06e0ef7-5766-428e-fc3d-98c893cb2ba9" 194 | }, 195 | "cell_type": "code", 196 | "source": [ 197 | "print(idades[1])\n", 198 | "print(idades[2])\n", 199 | "print(idades[3])" 200 | ], 201 | "execution_count": 10, 202 | "outputs": [ 203 | { 204 | "output_type": "stream", 205 | "text": [ 206 | "30\n", 207 | "27\n", 208 | "18\n" 209 | ], 210 | "name": "stdout" 211 | } 212 | ] 213 | }, 214 | { 215 | "metadata": { 216 | "id": "60CS-6vnNEzX", 217 | "colab_type": "code", 218 | "colab": {} 219 | }, 220 | "cell_type": "code", 221 | "source": [ 222 | "idades.append(15)" 223 | ], 224 | "execution_count": 0, 225 | "outputs": [] 226 | }, 227 | { 228 | "metadata": { 229 | "id": "LgNGaf7FNSr-", 230 | "colab_type": "code", 231 | "colab": { 232 | "base_uri": "https://localhost:8080/", 233 | "height": 34 234 | }, 235 | "outputId": "b4118e96-3abc-44f9-eb97-a187b86dcdf0" 236 | }, 237 | "cell_type": "code", 238 | "source": [ 239 | "idades" 240 | ], 241 | "execution_count": 12, 242 | "outputs": [ 243 | { 244 | "output_type": "execute_result", 245 | "data": { 246 | "text/plain": [ 247 | "[39, 30, 27, 18, 15]" 248 | ] 249 | }, 250 | "metadata": { 251 | "tags": [] 252 | }, 253 | "execution_count": 12 254 | } 255 | ] 256 | }, 257 | { 258 | "metadata": { 259 | "id": "PqFCqcOvNT7h", 260 | "colab_type": "code", 261 | "colab": { 262 | "base_uri": "https://localhost:8080/", 263 | "height": 34 264 | }, 265 | "outputId": "3484bb85-8703-481d-d669-f499397c8741" 266 | }, 267 | "cell_type": "code", 268 | "source": [ 269 | "idades[4]" 270 | ], 271 | "execution_count": 13, 272 | "outputs": [ 273 | { 274 | "output_type": "execute_result", 275 | "data": { 276 | "text/plain": [ 277 | "15" 278 | ] 279 | }, 280 | "metadata": { 281 | "tags": [] 282 | }, 283 | "execution_count": 13 284 | } 285 | ] 286 | }, 287 | { 288 | "metadata": { 289 | "id": "aCzxDZ0CNVti", 290 | "colab_type": "code", 291 | "colab": { 292 | "base_uri": "https://localhost:8080/", 293 | "height": 162 294 | }, 295 | "outputId": "da86fe7c-9f23-4f9e-cf57-a7d85750260b" 296 | }, 297 | "cell_type": "code", 298 | "source": [ 299 | "idades[5]" 300 | ], 301 | "execution_count": 14, 302 | "outputs": [ 303 | { 304 | "output_type": "error", 305 | "ename": "IndexError", 306 | "evalue": "ignored", 307 | "traceback": [ 308 | "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", 309 | "\u001b[0;31mIndexError\u001b[0m Traceback (most recent call last)", 310 | "\u001b[0;32m\u001b[0m in \u001b[0;36m\u001b[0;34m()\u001b[0m\n\u001b[0;32m----> 1\u001b[0;31m \u001b[0midades\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;36m5\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m", 311 | "\u001b[0;31mIndexError\u001b[0m: list index out of range" 312 | ] 313 | } 314 | ] 315 | }, 316 | { 317 | "metadata": { 318 | "id": "AXKjngwvNXLM", 319 | "colab_type": "code", 320 | "colab": { 321 | "base_uri": "https://localhost:8080/", 322 | "height": 101 323 | }, 324 | "outputId": "8e4c3efa-3cd1-424f-ef20-0ae9c306b927" 325 | }, 326 | "cell_type": "code", 327 | "source": [ 328 | "for idade in idades:\n", 329 | " print(idade)" 330 | ], 331 | "execution_count": 17, 332 | "outputs": [ 333 | { 334 | "output_type": "stream", 335 | "text": [ 336 | "39\n", 337 | "30\n", 338 | "27\n", 339 | "18\n", 340 | "15\n" 341 | ], 342 | "name": "stdout" 343 | } 344 | ] 345 | }, 346 | { 347 | "metadata": { 348 | "id": "e086OjeaNmWj", 349 | "colab_type": "code", 350 | "colab": {} 351 | }, 352 | "cell_type": "code", 353 | "source": [ 354 | "idades.remove(30)" 355 | ], 356 | "execution_count": 0, 357 | "outputs": [] 358 | }, 359 | { 360 | "metadata": { 361 | "id": "5A6pLLh4No8s", 362 | "colab_type": "code", 363 | "colab": { 364 | "base_uri": "https://localhost:8080/", 365 | "height": 34 366 | }, 367 | "outputId": "83eb8f32-033e-410c-9aac-a17e5cea45b2" 368 | }, 369 | "cell_type": "code", 370 | "source": [ 371 | "idades" 372 | ], 373 | "execution_count": 19, 374 | "outputs": [ 375 | { 376 | "output_type": "execute_result", 377 | "data": { 378 | "text/plain": [ 379 | "[39, 27, 18, 15]" 380 | ] 381 | }, 382 | "metadata": { 383 | "tags": [] 384 | }, 385 | "execution_count": 19 386 | } 387 | ] 388 | }, 389 | { 390 | "metadata": { 391 | "id": "ojsePmRwNpy2", 392 | "colab_type": "code", 393 | "colab": { 394 | "base_uri": "https://localhost:8080/", 395 | "height": 162 396 | }, 397 | "outputId": "2beab908-ba71-4dff-dc8a-dd94b70f8bb4" 398 | }, 399 | "cell_type": "code", 400 | "source": [ 401 | "idades.remove(30)" 402 | ], 403 | "execution_count": 20, 404 | "outputs": [ 405 | { 406 | "output_type": "error", 407 | "ename": "ValueError", 408 | "evalue": "ignored", 409 | "traceback": [ 410 | "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", 411 | "\u001b[0;31mValueError\u001b[0m Traceback (most recent call last)", 412 | "\u001b[0;32m\u001b[0m in \u001b[0;36m\u001b[0;34m()\u001b[0m\n\u001b[0;32m----> 1\u001b[0;31m \u001b[0midades\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mremove\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;36m30\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m", 413 | "\u001b[0;31mValueError\u001b[0m: list.remove(x): x not in list" 414 | ] 415 | } 416 | ] 417 | }, 418 | { 419 | "metadata": { 420 | "id": "kkdK3t6nNsXW", 421 | "colab_type": "code", 422 | "colab": {} 423 | }, 424 | "cell_type": "code", 425 | "source": [ 426 | "idades.append(15)" 427 | ], 428 | "execution_count": 0, 429 | "outputs": [] 430 | }, 431 | { 432 | "metadata": { 433 | "id": "caaWvENvNv8N", 434 | "colab_type": "code", 435 | "colab": { 436 | "base_uri": "https://localhost:8080/", 437 | "height": 34 438 | }, 439 | "outputId": "19bf6599-f2d8-4cbd-e9a5-af1968e614e3" 440 | }, 441 | "cell_type": "code", 442 | "source": [ 443 | "idades" 444 | ], 445 | "execution_count": 22, 446 | "outputs": [ 447 | { 448 | "output_type": "execute_result", 449 | "data": { 450 | "text/plain": [ 451 | "[39, 27, 18, 15, 15]" 452 | ] 453 | }, 454 | "metadata": { 455 | "tags": [] 456 | }, 457 | "execution_count": 22 458 | } 459 | ] 460 | }, 461 | { 462 | "metadata": { 463 | "id": "IZC0ENA1Nwso", 464 | "colab_type": "code", 465 | "colab": {} 466 | }, 467 | "cell_type": "code", 468 | "source": [ 469 | "idades.remove(15)" 470 | ], 471 | "execution_count": 0, 472 | "outputs": [] 473 | }, 474 | { 475 | "metadata": { 476 | "id": "80fchrRGNx4A", 477 | "colab_type": "code", 478 | "colab": { 479 | "base_uri": "https://localhost:8080/", 480 | "height": 34 481 | }, 482 | "outputId": "5a7258c1-dd6b-46d9-c468-0b7b58819d73" 483 | }, 484 | "cell_type": "code", 485 | "source": [ 486 | "idades" 487 | ], 488 | "execution_count": 24, 489 | "outputs": [ 490 | { 491 | "output_type": "execute_result", 492 | "data": { 493 | "text/plain": [ 494 | "[39, 27, 18, 15]" 495 | ] 496 | }, 497 | "metadata": { 498 | "tags": [] 499 | }, 500 | "execution_count": 24 501 | } 502 | ] 503 | }, 504 | { 505 | "metadata": { 506 | "id": "yNWCUQupNycy", 507 | "colab_type": "code", 508 | "colab": { 509 | "base_uri": "https://localhost:8080/", 510 | "height": 34 511 | }, 512 | "outputId": "afde6e30-a7f1-451e-afd4-ec6e03d52cf0" 513 | }, 514 | "cell_type": "code", 515 | "source": [ 516 | "idades.append(27)\n", 517 | "idades.remove(27)\n", 518 | "idades" 519 | ], 520 | "execution_count": 25, 521 | "outputs": [ 522 | { 523 | "output_type": "execute_result", 524 | "data": { 525 | "text/plain": [ 526 | "[39, 18, 15, 27]" 527 | ] 528 | }, 529 | "metadata": { 530 | "tags": [] 531 | }, 532 | "execution_count": 25 533 | } 534 | ] 535 | }, 536 | { 537 | "metadata": { 538 | "id": "Kot_FAOkN3g3", 539 | "colab_type": "code", 540 | "colab": { 541 | "base_uri": "https://localhost:8080/", 542 | "height": 34 543 | }, 544 | "outputId": "9d6ff2b1-382b-4953-bdef-7b115474d749" 545 | }, 546 | "cell_type": "code", 547 | "source": [ 548 | "28 in idades" 549 | ], 550 | "execution_count": 26, 551 | "outputs": [ 552 | { 553 | "output_type": "execute_result", 554 | "data": { 555 | "text/plain": [ 556 | "False" 557 | ] 558 | }, 559 | "metadata": { 560 | "tags": [] 561 | }, 562 | "execution_count": 26 563 | } 564 | ] 565 | }, 566 | { 567 | "metadata": { 568 | "id": "DMmSks6eOmaX", 569 | "colab_type": "code", 570 | "colab": { 571 | "base_uri": "https://localhost:8080/", 572 | "height": 34 573 | }, 574 | "outputId": "4d6cfb43-e8d1-43aa-8355-842c7a2b337e" 575 | }, 576 | "cell_type": "code", 577 | "source": [ 578 | "15 in idades" 579 | ], 580 | "execution_count": 27, 581 | "outputs": [ 582 | { 583 | "output_type": "execute_result", 584 | "data": { 585 | "text/plain": [ 586 | "True" 587 | ] 588 | }, 589 | "metadata": { 590 | "tags": [] 591 | }, 592 | "execution_count": 27 593 | } 594 | ] 595 | }, 596 | { 597 | "metadata": { 598 | "id": "N01sbE4xOoAF", 599 | "colab_type": "code", 600 | "colab": {} 601 | }, 602 | "cell_type": "code", 603 | "source": [ 604 | "if 15 in idades:\n", 605 | " idades.remove(15)" 606 | ], 607 | "execution_count": 0, 608 | "outputs": [] 609 | }, 610 | { 611 | "metadata": { 612 | "id": "U4Ozd7ZxOukR", 613 | "colab_type": "code", 614 | "colab": { 615 | "base_uri": "https://localhost:8080/", 616 | "height": 34 617 | }, 618 | "outputId": "6b205258-fa04-43b2-b9e9-7000c158a318" 619 | }, 620 | "cell_type": "code", 621 | "source": [ 622 | "idades" 623 | ], 624 | "execution_count": 29, 625 | "outputs": [ 626 | { 627 | "output_type": "execute_result", 628 | "data": { 629 | "text/plain": [ 630 | "[39, 18, 27]" 631 | ] 632 | }, 633 | "metadata": { 634 | "tags": [] 635 | }, 636 | "execution_count": 29 637 | } 638 | ] 639 | }, 640 | { 641 | "metadata": { 642 | "id": "SMgSWfVsOvrr", 643 | "colab_type": "code", 644 | "colab": {} 645 | }, 646 | "cell_type": "code", 647 | "source": [ 648 | "if 28 in idades:\n", 649 | " idades.remove(28)" 650 | ], 651 | "execution_count": 0, 652 | "outputs": [] 653 | }, 654 | { 655 | "metadata": { 656 | "id": "feOCw2UEOzaf", 657 | "colab_type": "code", 658 | "colab": { 659 | "base_uri": "https://localhost:8080/", 660 | "height": 34 661 | }, 662 | "outputId": "c422c2ec-8203-4ca2-f680-4d517ed2a340" 663 | }, 664 | "cell_type": "code", 665 | "source": [ 666 | "idades" 667 | ], 668 | "execution_count": 31, 669 | "outputs": [ 670 | { 671 | "output_type": "execute_result", 672 | "data": { 673 | "text/plain": [ 674 | "[39, 18, 27]" 675 | ] 676 | }, 677 | "metadata": { 678 | "tags": [] 679 | }, 680 | "execution_count": 31 681 | } 682 | ] 683 | }, 684 | { 685 | "metadata": { 686 | "id": "v9GOmJkDO0QH", 687 | "colab_type": "code", 688 | "colab": { 689 | "base_uri": "https://localhost:8080/", 690 | "height": 34 691 | }, 692 | "outputId": "4328f9e5-29f0-483e-8e1f-de9cbc459284" 693 | }, 694 | "cell_type": "code", 695 | "source": [ 696 | "idades.append(19)\n", 697 | "idades" 698 | ], 699 | "execution_count": 32, 700 | "outputs": [ 701 | { 702 | "output_type": "execute_result", 703 | "data": { 704 | "text/plain": [ 705 | "[39, 18, 27, 19]" 706 | ] 707 | }, 708 | "metadata": { 709 | "tags": [] 710 | }, 711 | "execution_count": 32 712 | } 713 | ] 714 | }, 715 | { 716 | "metadata": { 717 | "id": "EXZzTRCWO6LU", 718 | "colab_type": "code", 719 | "colab": { 720 | "base_uri": "https://localhost:8080/", 721 | "height": 34 722 | }, 723 | "outputId": "986d05a8-b345-4bbc-f34f-b087f9d4957d" 724 | }, 725 | "cell_type": "code", 726 | "source": [ 727 | "idades.insert(0, 20)\n", 728 | "idades" 729 | ], 730 | "execution_count": 33, 731 | "outputs": [ 732 | { 733 | "output_type": "execute_result", 734 | "data": { 735 | "text/plain": [ 736 | "[20, 39, 18, 27, 19]" 737 | ] 738 | }, 739 | "metadata": { 740 | "tags": [] 741 | }, 742 | "execution_count": 33 743 | } 744 | ] 745 | }, 746 | { 747 | "metadata": { 748 | "id": "yQ6QIHbVPDJm", 749 | "colab_type": "code", 750 | "colab": { 751 | "base_uri": "https://localhost:8080/", 752 | "height": 34 753 | }, 754 | "outputId": "22d62c05-88e7-4041-be71-eeba0d17e932" 755 | }, 756 | "cell_type": "code", 757 | "source": [ 758 | "idades = [20, 39, 18]\n", 759 | "idades" 760 | ], 761 | "execution_count": 34, 762 | "outputs": [ 763 | { 764 | "output_type": "execute_result", 765 | "data": { 766 | "text/plain": [ 767 | "[20, 39, 18]" 768 | ] 769 | }, 770 | "metadata": { 771 | "tags": [] 772 | }, 773 | "execution_count": 34 774 | } 775 | ] 776 | }, 777 | { 778 | "metadata": { 779 | "id": "1x5IZ3LxPKFw", 780 | "colab_type": "code", 781 | "colab": {} 782 | }, 783 | "cell_type": "code", 784 | "source": [ 785 | "idades.append([27, 19])" 786 | ], 787 | "execution_count": 0, 788 | "outputs": [] 789 | }, 790 | { 791 | "metadata": { 792 | "id": "pbjqVYWcPNfa", 793 | "colab_type": "code", 794 | "colab": { 795 | "base_uri": "https://localhost:8080/", 796 | "height": 34 797 | }, 798 | "outputId": "5a1b5d0b-66b9-40a0-a820-94842fe5d1ca" 799 | }, 800 | "cell_type": "code", 801 | "source": [ 802 | "idades" 803 | ], 804 | "execution_count": 37, 805 | "outputs": [ 806 | { 807 | "output_type": "execute_result", 808 | "data": { 809 | "text/plain": [ 810 | "[20, 39, 18, [27, 19]]" 811 | ] 812 | }, 813 | "metadata": { 814 | "tags": [] 815 | }, 816 | "execution_count": 37 817 | } 818 | ] 819 | }, 820 | { 821 | "metadata": { 822 | "id": "YJndRY-ZPTb8", 823 | "colab_type": "code", 824 | "colab": { 825 | "base_uri": "https://localhost:8080/", 826 | "height": 84 827 | }, 828 | "outputId": "325e4c82-69ed-432d-f692-0030bf920a09" 829 | }, 830 | "cell_type": "code", 831 | "source": [ 832 | "for elemento in idades:\n", 833 | " print(\"Recebi o elemento\", elemento)" 834 | ], 835 | "execution_count": 38, 836 | "outputs": [ 837 | { 838 | "output_type": "stream", 839 | "text": [ 840 | "Recebi o elemento 20\n", 841 | "Recebi o elemento 39\n", 842 | "Recebi o elemento 18\n", 843 | "Recebi o elemento [27, 19]\n" 844 | ], 845 | "name": "stdout" 846 | } 847 | ] 848 | }, 849 | { 850 | "metadata": { 851 | "id": "Rt1JRcrIPZVL", 852 | "colab_type": "code", 853 | "colab": { 854 | "base_uri": "https://localhost:8080/", 855 | "height": 34 856 | }, 857 | "outputId": "34ef7b0d-bc95-4ec6-99eb-71ecfeca83d2" 858 | }, 859 | "cell_type": "code", 860 | "source": [ 861 | "idades = [20, 39, 18]\n", 862 | "idades.extend([27, 19])\n", 863 | "idades" 864 | ], 865 | "execution_count": 39, 866 | "outputs": [ 867 | { 868 | "output_type": "execute_result", 869 | "data": { 870 | "text/plain": [ 871 | "[20, 39, 18, 27, 19]" 872 | ] 873 | }, 874 | "metadata": { 875 | "tags": [] 876 | }, 877 | "execution_count": 39 878 | } 879 | ] 880 | }, 881 | { 882 | "metadata": { 883 | "id": "2TqBUj41PwzS", 884 | "colab_type": "code", 885 | "colab": { 886 | "base_uri": "https://localhost:8080/", 887 | "height": 101 888 | }, 889 | "outputId": "f6e4e9bb-f866-4fb0-bc5a-2be373185544" 890 | }, 891 | "cell_type": "code", 892 | "source": [ 893 | "for idade in idades:\n", 894 | " print(idade + 1)" 895 | ], 896 | "execution_count": 40, 897 | "outputs": [ 898 | { 899 | "output_type": "stream", 900 | "text": [ 901 | "21\n", 902 | "40\n", 903 | "19\n", 904 | "28\n", 905 | "20\n" 906 | ], 907 | "name": "stdout" 908 | } 909 | ] 910 | }, 911 | { 912 | "metadata": { 913 | "id": "-zU67OikQCJq", 914 | "colab_type": "code", 915 | "colab": { 916 | "base_uri": "https://localhost:8080/", 917 | "height": 34 918 | }, 919 | "outputId": "93a76c21-4b69-47a4-dcd9-5b42fce70b30" 920 | }, 921 | "cell_type": "code", 922 | "source": [ 923 | "idades_no_ano_que_vem = []\n", 924 | "for idade in idades:\n", 925 | " idades_no_ano_que_vem.append(idade+1)\n", 926 | "idades_no_ano_que_vem" 927 | ], 928 | "execution_count": 41, 929 | "outputs": [ 930 | { 931 | "output_type": "execute_result", 932 | "data": { 933 | "text/plain": [ 934 | "[21, 40, 19, 28, 20]" 935 | ] 936 | }, 937 | "metadata": { 938 | "tags": [] 939 | }, 940 | "execution_count": 41 941 | } 942 | ] 943 | }, 944 | { 945 | "metadata": { 946 | "id": "P50Oyp-EQQrC", 947 | "colab_type": "code", 948 | "colab": { 949 | "base_uri": "https://localhost:8080/", 950 | "height": 34 951 | }, 952 | "outputId": "bc1c0261-05af-46d1-a8d5-fc9957afdf9d" 953 | }, 954 | "cell_type": "code", 955 | "source": [ 956 | "idades_no_ano_que_vem = [idade+1 for idade in idades]\n", 957 | "idades_no_ano_que_vem" 958 | ], 959 | "execution_count": 43, 960 | "outputs": [ 961 | { 962 | "output_type": "execute_result", 963 | "data": { 964 | "text/plain": [ 965 | "[21, 40, 19, 28, 20]" 966 | ] 967 | }, 968 | "metadata": { 969 | "tags": [] 970 | }, 971 | "execution_count": 43 972 | } 973 | ] 974 | }, 975 | { 976 | "metadata": { 977 | "id": "KGqotm2iRxfz", 978 | "colab_type": "text" 979 | }, 980 | "cell_type": "markdown", 981 | "source": [ 982 | "" 983 | ] 984 | }, 985 | { 986 | "metadata": { 987 | "id": "QdPT5ougQmvS", 988 | "colab_type": "code", 989 | "colab": { 990 | "base_uri": "https://localhost:8080/", 991 | "height": 34 992 | }, 993 | "outputId": "e6f6defd-e799-4208-dcd4-7477944a123e" 994 | }, 995 | "cell_type": "code", 996 | "source": [ 997 | "[idade for idade in idades if idade > 21]" 998 | ], 999 | "execution_count": 44, 1000 | "outputs": [ 1001 | { 1002 | "output_type": "execute_result", 1003 | "data": { 1004 | "text/plain": [ 1005 | "[39, 27]" 1006 | ] 1007 | }, 1008 | "metadata": { 1009 | "tags": [] 1010 | }, 1011 | "execution_count": 44 1012 | } 1013 | ] 1014 | }, 1015 | { 1016 | "metadata": { 1017 | "id": "25Mg6X9zQ-U5", 1018 | "colab_type": "code", 1019 | "colab": { 1020 | "base_uri": "https://localhost:8080/", 1021 | "height": 34 1022 | }, 1023 | "outputId": "ff1c9ce9-0df4-434c-cd70-0c78d28c23df" 1024 | }, 1025 | "cell_type": "code", 1026 | "source": [ 1027 | "idades" 1028 | ], 1029 | "execution_count": 45, 1030 | "outputs": [ 1031 | { 1032 | "output_type": "execute_result", 1033 | "data": { 1034 | "text/plain": [ 1035 | "[20, 39, 18, 27, 19]" 1036 | ] 1037 | }, 1038 | "metadata": { 1039 | "tags": [] 1040 | }, 1041 | "execution_count": 45 1042 | } 1043 | ] 1044 | }, 1045 | { 1046 | "metadata": { 1047 | "id": "feAiRsuTRAQ0", 1048 | "colab_type": "code", 1049 | "colab": { 1050 | "base_uri": "https://localhost:8080/", 1051 | "height": 34 1052 | }, 1053 | "outputId": "46cfc170-4f7a-4804-b8f1-a6efcb573247" 1054 | }, 1055 | "cell_type": "code", 1056 | "source": [ 1057 | "def proximo_ano(idade):\n", 1058 | " return idade+1\n", 1059 | "\n", 1060 | "[proximo_ano(idade) for idade in idades if idade > 21]" 1061 | ], 1062 | "execution_count": 46, 1063 | "outputs": [ 1064 | { 1065 | "output_type": "execute_result", 1066 | "data": { 1067 | "text/plain": [ 1068 | "[40, 28]" 1069 | ] 1070 | }, 1071 | "metadata": { 1072 | "tags": [] 1073 | }, 1074 | "execution_count": 46 1075 | } 1076 | ] 1077 | }, 1078 | { 1079 | "metadata": { 1080 | "id": "xYjUNADiRRhF", 1081 | "colab_type": "code", 1082 | "colab": {} 1083 | }, 1084 | "cell_type": "code", 1085 | "source": [ 1086 | "" 1087 | ], 1088 | "execution_count": 0, 1089 | "outputs": [] 1090 | } 1091 | ] 1092 | } -------------------------------------------------------------------------------- /aula1.4/Introdução_a_Collections.ipynb: -------------------------------------------------------------------------------- 1 | { 2 | "nbformat": 4, 3 | "nbformat_minor": 0, 4 | "metadata": { 5 | "colab": { 6 | "name": "Introdução a Collections", 7 | "version": "0.3.2", 8 | "provenance": [], 9 | "collapsed_sections": [] 10 | }, 11 | "kernelspec": { 12 | "name": "python3", 13 | "display_name": "Python 3" 14 | } 15 | }, 16 | "cells": [ 17 | { 18 | "metadata": { 19 | "id": "i92eaEWHL_tu", 20 | "colab_type": "code", 21 | "colab": { 22 | "base_uri": "https://localhost:8080/", 23 | "height": 84 24 | }, 25 | "outputId": "d871b668-3fcf-4b70-b76f-d0fd18a3cbfb" 26 | }, 27 | "cell_type": "code", 28 | "source": [ 29 | "idade1 = 39\n", 30 | "idade2 = 30\n", 31 | "idade3 = 27\n", 32 | "idade4 = 18\n", 33 | "\n", 34 | "print(idade1)\n", 35 | "print(idade2)\n", 36 | "print(idade3)\n", 37 | "print(idade4)" 38 | ], 39 | "execution_count": 3, 40 | "outputs": [ 41 | { 42 | "output_type": "stream", 43 | "text": [ 44 | "39\n", 45 | "30\n", 46 | "27\n", 47 | "18\n" 48 | ], 49 | "name": "stdout" 50 | } 51 | ] 52 | }, 53 | { 54 | "metadata": { 55 | "id": "27g6sNsIMZEL", 56 | "colab_type": "code", 57 | "colab": {} 58 | }, 59 | "cell_type": "code", 60 | "source": [ 61 | "idades = [39, 30, 27, 18]" 62 | ], 63 | "execution_count": 0, 64 | "outputs": [] 65 | }, 66 | { 67 | "metadata": { 68 | "id": "nMoUaGF8MmuM", 69 | "colab_type": "code", 70 | "colab": { 71 | "base_uri": "https://localhost:8080/", 72 | "height": 34 73 | }, 74 | "outputId": "873010d9-0c3b-4de9-8f2e-0df91484406d" 75 | }, 76 | "cell_type": "code", 77 | "source": [ 78 | "type(idades)" 79 | ], 80 | "execution_count": 5, 81 | "outputs": [ 82 | { 83 | "output_type": "execute_result", 84 | "data": { 85 | "text/plain": [ 86 | "list" 87 | ] 88 | }, 89 | "metadata": { 90 | "tags": [] 91 | }, 92 | "execution_count": 5 93 | } 94 | ] 95 | }, 96 | { 97 | "metadata": { 98 | "id": "693125bLMoQo", 99 | "colab_type": "code", 100 | "colab": { 101 | "base_uri": "https://localhost:8080/", 102 | "height": 34 103 | }, 104 | "outputId": "76f23b9d-f84b-4810-c835-3cf8e988e13a" 105 | }, 106 | "cell_type": "code", 107 | "source": [ 108 | "len(idades)" 109 | ], 110 | "execution_count": 6, 111 | "outputs": [ 112 | { 113 | "output_type": "execute_result", 114 | "data": { 115 | "text/plain": [ 116 | "4" 117 | ] 118 | }, 119 | "metadata": { 120 | "tags": [] 121 | }, 122 | "execution_count": 6 123 | } 124 | ] 125 | }, 126 | { 127 | "metadata": { 128 | "id": "HhRSkKaNM70v", 129 | "colab_type": "code", 130 | "colab": { 131 | "base_uri": "https://localhost:8080/", 132 | "height": 34 133 | }, 134 | "outputId": "f0eb0381-e6cb-46b9-d80a-e5fb93ffda20" 135 | }, 136 | "cell_type": "code", 137 | "source": [ 138 | "idades[0]" 139 | ], 140 | "execution_count": 7, 141 | "outputs": [ 142 | { 143 | "output_type": "execute_result", 144 | "data": { 145 | "text/plain": [ 146 | "39" 147 | ] 148 | }, 149 | "metadata": { 150 | "tags": [] 151 | }, 152 | "execution_count": 7 153 | } 154 | ] 155 | }, 156 | { 157 | "metadata": { 158 | "id": "7Wra5jZLM_6e", 159 | "colab_type": "code", 160 | "colab": { 161 | "base_uri": "https://localhost:8080/", 162 | "height": 34 163 | }, 164 | "outputId": "87f8d517-a653-4164-e621-982ceeae6f8b" 165 | }, 166 | "cell_type": "code", 167 | "source": [ 168 | "idades" 169 | ], 170 | "execution_count": 8, 171 | "outputs": [ 172 | { 173 | "output_type": "execute_result", 174 | "data": { 175 | "text/plain": [ 176 | "[39, 30, 27, 18]" 177 | ] 178 | }, 179 | "metadata": { 180 | "tags": [] 181 | }, 182 | "execution_count": 8 183 | } 184 | ] 185 | }, 186 | { 187 | "metadata": { 188 | "id": "NXyDZcsZNBJm", 189 | "colab_type": "code", 190 | "colab": { 191 | "base_uri": "https://localhost:8080/", 192 | "height": 67 193 | }, 194 | "outputId": "a06e0ef7-5766-428e-fc3d-98c893cb2ba9" 195 | }, 196 | "cell_type": "code", 197 | "source": [ 198 | "print(idades[1])\n", 199 | "print(idades[2])\n", 200 | "print(idades[3])" 201 | ], 202 | "execution_count": 10, 203 | "outputs": [ 204 | { 205 | "output_type": "stream", 206 | "text": [ 207 | "30\n", 208 | "27\n", 209 | "18\n" 210 | ], 211 | "name": "stdout" 212 | } 213 | ] 214 | }, 215 | { 216 | "metadata": { 217 | "id": "60CS-6vnNEzX", 218 | "colab_type": "code", 219 | "colab": {} 220 | }, 221 | "cell_type": "code", 222 | "source": [ 223 | "idades.append(15)" 224 | ], 225 | "execution_count": 0, 226 | "outputs": [] 227 | }, 228 | { 229 | "metadata": { 230 | "id": "LgNGaf7FNSr-", 231 | "colab_type": "code", 232 | "colab": { 233 | "base_uri": "https://localhost:8080/", 234 | "height": 34 235 | }, 236 | "outputId": "b4118e96-3abc-44f9-eb97-a187b86dcdf0" 237 | }, 238 | "cell_type": "code", 239 | "source": [ 240 | "idades" 241 | ], 242 | "execution_count": 12, 243 | "outputs": [ 244 | { 245 | "output_type": "execute_result", 246 | "data": { 247 | "text/plain": [ 248 | "[39, 30, 27, 18, 15]" 249 | ] 250 | }, 251 | "metadata": { 252 | "tags": [] 253 | }, 254 | "execution_count": 12 255 | } 256 | ] 257 | }, 258 | { 259 | "metadata": { 260 | "id": "PqFCqcOvNT7h", 261 | "colab_type": "code", 262 | "colab": { 263 | "base_uri": "https://localhost:8080/", 264 | "height": 34 265 | }, 266 | "outputId": "3484bb85-8703-481d-d669-f499397c8741" 267 | }, 268 | "cell_type": "code", 269 | "source": [ 270 | "idades[4]" 271 | ], 272 | "execution_count": 13, 273 | "outputs": [ 274 | { 275 | "output_type": "execute_result", 276 | "data": { 277 | "text/plain": [ 278 | "15" 279 | ] 280 | }, 281 | "metadata": { 282 | "tags": [] 283 | }, 284 | "execution_count": 13 285 | } 286 | ] 287 | }, 288 | { 289 | "metadata": { 290 | "id": "aCzxDZ0CNVti", 291 | "colab_type": "code", 292 | "colab": { 293 | "base_uri": "https://localhost:8080/", 294 | "height": 162 295 | }, 296 | "outputId": "da86fe7c-9f23-4f9e-cf57-a7d85750260b" 297 | }, 298 | "cell_type": "code", 299 | "source": [ 300 | "idades[5]" 301 | ], 302 | "execution_count": 14, 303 | "outputs": [ 304 | { 305 | "output_type": "error", 306 | "ename": "IndexError", 307 | "evalue": "ignored", 308 | "traceback": [ 309 | "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", 310 | "\u001b[0;31mIndexError\u001b[0m Traceback (most recent call last)", 311 | "\u001b[0;32m\u001b[0m in \u001b[0;36m\u001b[0;34m()\u001b[0m\n\u001b[0;32m----> 1\u001b[0;31m \u001b[0midades\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;36m5\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m", 312 | "\u001b[0;31mIndexError\u001b[0m: list index out of range" 313 | ] 314 | } 315 | ] 316 | }, 317 | { 318 | "metadata": { 319 | "id": "AXKjngwvNXLM", 320 | "colab_type": "code", 321 | "colab": { 322 | "base_uri": "https://localhost:8080/", 323 | "height": 101 324 | }, 325 | "outputId": "8e4c3efa-3cd1-424f-ef20-0ae9c306b927" 326 | }, 327 | "cell_type": "code", 328 | "source": [ 329 | "for idade in idades:\n", 330 | " print(idade)" 331 | ], 332 | "execution_count": 17, 333 | "outputs": [ 334 | { 335 | "output_type": "stream", 336 | "text": [ 337 | "39\n", 338 | "30\n", 339 | "27\n", 340 | "18\n", 341 | "15\n" 342 | ], 343 | "name": "stdout" 344 | } 345 | ] 346 | }, 347 | { 348 | "metadata": { 349 | "id": "e086OjeaNmWj", 350 | "colab_type": "code", 351 | "colab": {} 352 | }, 353 | "cell_type": "code", 354 | "source": [ 355 | "idades.remove(30)" 356 | ], 357 | "execution_count": 0, 358 | "outputs": [] 359 | }, 360 | { 361 | "metadata": { 362 | "id": "5A6pLLh4No8s", 363 | "colab_type": "code", 364 | "colab": { 365 | "base_uri": "https://localhost:8080/", 366 | "height": 34 367 | }, 368 | "outputId": "83eb8f32-033e-410c-9aac-a17e5cea45b2" 369 | }, 370 | "cell_type": "code", 371 | "source": [ 372 | "idades" 373 | ], 374 | "execution_count": 19, 375 | "outputs": [ 376 | { 377 | "output_type": "execute_result", 378 | "data": { 379 | "text/plain": [ 380 | "[39, 27, 18, 15]" 381 | ] 382 | }, 383 | "metadata": { 384 | "tags": [] 385 | }, 386 | "execution_count": 19 387 | } 388 | ] 389 | }, 390 | { 391 | "metadata": { 392 | "id": "ojsePmRwNpy2", 393 | "colab_type": "code", 394 | "colab": { 395 | "base_uri": "https://localhost:8080/", 396 | "height": 162 397 | }, 398 | "outputId": "2beab908-ba71-4dff-dc8a-dd94b70f8bb4" 399 | }, 400 | "cell_type": "code", 401 | "source": [ 402 | "idades.remove(30)" 403 | ], 404 | "execution_count": 20, 405 | "outputs": [ 406 | { 407 | "output_type": "error", 408 | "ename": "ValueError", 409 | "evalue": "ignored", 410 | "traceback": [ 411 | "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", 412 | "\u001b[0;31mValueError\u001b[0m Traceback (most recent call last)", 413 | "\u001b[0;32m\u001b[0m in \u001b[0;36m\u001b[0;34m()\u001b[0m\n\u001b[0;32m----> 1\u001b[0;31m \u001b[0midades\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mremove\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;36m30\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m", 414 | "\u001b[0;31mValueError\u001b[0m: list.remove(x): x not in list" 415 | ] 416 | } 417 | ] 418 | }, 419 | { 420 | "metadata": { 421 | "id": "kkdK3t6nNsXW", 422 | "colab_type": "code", 423 | "colab": {} 424 | }, 425 | "cell_type": "code", 426 | "source": [ 427 | "idades.append(15)" 428 | ], 429 | "execution_count": 0, 430 | "outputs": [] 431 | }, 432 | { 433 | "metadata": { 434 | "id": "caaWvENvNv8N", 435 | "colab_type": "code", 436 | "colab": { 437 | "base_uri": "https://localhost:8080/", 438 | "height": 34 439 | }, 440 | "outputId": "19bf6599-f2d8-4cbd-e9a5-af1968e614e3" 441 | }, 442 | "cell_type": "code", 443 | "source": [ 444 | "idades" 445 | ], 446 | "execution_count": 22, 447 | "outputs": [ 448 | { 449 | "output_type": "execute_result", 450 | "data": { 451 | "text/plain": [ 452 | "[39, 27, 18, 15, 15]" 453 | ] 454 | }, 455 | "metadata": { 456 | "tags": [] 457 | }, 458 | "execution_count": 22 459 | } 460 | ] 461 | }, 462 | { 463 | "metadata": { 464 | "id": "IZC0ENA1Nwso", 465 | "colab_type": "code", 466 | "colab": {} 467 | }, 468 | "cell_type": "code", 469 | "source": [ 470 | "idades.remove(15)" 471 | ], 472 | "execution_count": 0, 473 | "outputs": [] 474 | }, 475 | { 476 | "metadata": { 477 | "id": "80fchrRGNx4A", 478 | "colab_type": "code", 479 | "colab": { 480 | "base_uri": "https://localhost:8080/", 481 | "height": 34 482 | }, 483 | "outputId": "5a7258c1-dd6b-46d9-c468-0b7b58819d73" 484 | }, 485 | "cell_type": "code", 486 | "source": [ 487 | "idades" 488 | ], 489 | "execution_count": 24, 490 | "outputs": [ 491 | { 492 | "output_type": "execute_result", 493 | "data": { 494 | "text/plain": [ 495 | "[39, 27, 18, 15]" 496 | ] 497 | }, 498 | "metadata": { 499 | "tags": [] 500 | }, 501 | "execution_count": 24 502 | } 503 | ] 504 | }, 505 | { 506 | "metadata": { 507 | "id": "yNWCUQupNycy", 508 | "colab_type": "code", 509 | "colab": { 510 | "base_uri": "https://localhost:8080/", 511 | "height": 34 512 | }, 513 | "outputId": "afde6e30-a7f1-451e-afd4-ec6e03d52cf0" 514 | }, 515 | "cell_type": "code", 516 | "source": [ 517 | "idades.append(27)\n", 518 | "idades.remove(27)\n", 519 | "idades" 520 | ], 521 | "execution_count": 25, 522 | "outputs": [ 523 | { 524 | "output_type": "execute_result", 525 | "data": { 526 | "text/plain": [ 527 | "[39, 18, 15, 27]" 528 | ] 529 | }, 530 | "metadata": { 531 | "tags": [] 532 | }, 533 | "execution_count": 25 534 | } 535 | ] 536 | }, 537 | { 538 | "metadata": { 539 | "id": "Kot_FAOkN3g3", 540 | "colab_type": "code", 541 | "colab": { 542 | "base_uri": "https://localhost:8080/", 543 | "height": 34 544 | }, 545 | "outputId": "9d6ff2b1-382b-4953-bdef-7b115474d749" 546 | }, 547 | "cell_type": "code", 548 | "source": [ 549 | "28 in idades" 550 | ], 551 | "execution_count": 26, 552 | "outputs": [ 553 | { 554 | "output_type": "execute_result", 555 | "data": { 556 | "text/plain": [ 557 | "False" 558 | ] 559 | }, 560 | "metadata": { 561 | "tags": [] 562 | }, 563 | "execution_count": 26 564 | } 565 | ] 566 | }, 567 | { 568 | "metadata": { 569 | "id": "DMmSks6eOmaX", 570 | "colab_type": "code", 571 | "colab": { 572 | "base_uri": "https://localhost:8080/", 573 | "height": 34 574 | }, 575 | "outputId": "4d6cfb43-e8d1-43aa-8355-842c7a2b337e" 576 | }, 577 | "cell_type": "code", 578 | "source": [ 579 | "15 in idades" 580 | ], 581 | "execution_count": 27, 582 | "outputs": [ 583 | { 584 | "output_type": "execute_result", 585 | "data": { 586 | "text/plain": [ 587 | "True" 588 | ] 589 | }, 590 | "metadata": { 591 | "tags": [] 592 | }, 593 | "execution_count": 27 594 | } 595 | ] 596 | }, 597 | { 598 | "metadata": { 599 | "id": "N01sbE4xOoAF", 600 | "colab_type": "code", 601 | "colab": {} 602 | }, 603 | "cell_type": "code", 604 | "source": [ 605 | "if 15 in idades:\n", 606 | " idades.remove(15)" 607 | ], 608 | "execution_count": 0, 609 | "outputs": [] 610 | }, 611 | { 612 | "metadata": { 613 | "id": "U4Ozd7ZxOukR", 614 | "colab_type": "code", 615 | "colab": { 616 | "base_uri": "https://localhost:8080/", 617 | "height": 34 618 | }, 619 | "outputId": "6b205258-fa04-43b2-b9e9-7000c158a318" 620 | }, 621 | "cell_type": "code", 622 | "source": [ 623 | "idades" 624 | ], 625 | "execution_count": 29, 626 | "outputs": [ 627 | { 628 | "output_type": "execute_result", 629 | "data": { 630 | "text/plain": [ 631 | "[39, 18, 27]" 632 | ] 633 | }, 634 | "metadata": { 635 | "tags": [] 636 | }, 637 | "execution_count": 29 638 | } 639 | ] 640 | }, 641 | { 642 | "metadata": { 643 | "id": "SMgSWfVsOvrr", 644 | "colab_type": "code", 645 | "colab": {} 646 | }, 647 | "cell_type": "code", 648 | "source": [ 649 | "if 28 in idades:\n", 650 | " idades.remove(28)" 651 | ], 652 | "execution_count": 0, 653 | "outputs": [] 654 | }, 655 | { 656 | "metadata": { 657 | "id": "feOCw2UEOzaf", 658 | "colab_type": "code", 659 | "colab": { 660 | "base_uri": "https://localhost:8080/", 661 | "height": 34 662 | }, 663 | "outputId": "c422c2ec-8203-4ca2-f680-4d517ed2a340" 664 | }, 665 | "cell_type": "code", 666 | "source": [ 667 | "idades" 668 | ], 669 | "execution_count": 31, 670 | "outputs": [ 671 | { 672 | "output_type": "execute_result", 673 | "data": { 674 | "text/plain": [ 675 | "[39, 18, 27]" 676 | ] 677 | }, 678 | "metadata": { 679 | "tags": [] 680 | }, 681 | "execution_count": 31 682 | } 683 | ] 684 | }, 685 | { 686 | "metadata": { 687 | "id": "v9GOmJkDO0QH", 688 | "colab_type": "code", 689 | "colab": { 690 | "base_uri": "https://localhost:8080/", 691 | "height": 34 692 | }, 693 | "outputId": "4328f9e5-29f0-483e-8e1f-de9cbc459284" 694 | }, 695 | "cell_type": "code", 696 | "source": [ 697 | "idades.append(19)\n", 698 | "idades" 699 | ], 700 | "execution_count": 32, 701 | "outputs": [ 702 | { 703 | "output_type": "execute_result", 704 | "data": { 705 | "text/plain": [ 706 | "[39, 18, 27, 19]" 707 | ] 708 | }, 709 | "metadata": { 710 | "tags": [] 711 | }, 712 | "execution_count": 32 713 | } 714 | ] 715 | }, 716 | { 717 | "metadata": { 718 | "id": "EXZzTRCWO6LU", 719 | "colab_type": "code", 720 | "colab": { 721 | "base_uri": "https://localhost:8080/", 722 | "height": 34 723 | }, 724 | "outputId": "986d05a8-b345-4bbc-f34f-b087f9d4957d" 725 | }, 726 | "cell_type": "code", 727 | "source": [ 728 | "idades.insert(0, 20)\n", 729 | "idades" 730 | ], 731 | "execution_count": 33, 732 | "outputs": [ 733 | { 734 | "output_type": "execute_result", 735 | "data": { 736 | "text/plain": [ 737 | "[20, 39, 18, 27, 19]" 738 | ] 739 | }, 740 | "metadata": { 741 | "tags": [] 742 | }, 743 | "execution_count": 33 744 | } 745 | ] 746 | }, 747 | { 748 | "metadata": { 749 | "id": "yQ6QIHbVPDJm", 750 | "colab_type": "code", 751 | "colab": { 752 | "base_uri": "https://localhost:8080/", 753 | "height": 34 754 | }, 755 | "outputId": "22d62c05-88e7-4041-be71-eeba0d17e932" 756 | }, 757 | "cell_type": "code", 758 | "source": [ 759 | "idades = [20, 39, 18]\n", 760 | "idades" 761 | ], 762 | "execution_count": 34, 763 | "outputs": [ 764 | { 765 | "output_type": "execute_result", 766 | "data": { 767 | "text/plain": [ 768 | "[20, 39, 18]" 769 | ] 770 | }, 771 | "metadata": { 772 | "tags": [] 773 | }, 774 | "execution_count": 34 775 | } 776 | ] 777 | }, 778 | { 779 | "metadata": { 780 | "id": "1x5IZ3LxPKFw", 781 | "colab_type": "code", 782 | "colab": {} 783 | }, 784 | "cell_type": "code", 785 | "source": [ 786 | "idades.append([27, 19])" 787 | ], 788 | "execution_count": 0, 789 | "outputs": [] 790 | }, 791 | { 792 | "metadata": { 793 | "id": "pbjqVYWcPNfa", 794 | "colab_type": "code", 795 | "colab": { 796 | "base_uri": "https://localhost:8080/", 797 | "height": 34 798 | }, 799 | "outputId": "5a1b5d0b-66b9-40a0-a820-94842fe5d1ca" 800 | }, 801 | "cell_type": "code", 802 | "source": [ 803 | "idades" 804 | ], 805 | "execution_count": 37, 806 | "outputs": [ 807 | { 808 | "output_type": "execute_result", 809 | "data": { 810 | "text/plain": [ 811 | "[20, 39, 18, [27, 19]]" 812 | ] 813 | }, 814 | "metadata": { 815 | "tags": [] 816 | }, 817 | "execution_count": 37 818 | } 819 | ] 820 | }, 821 | { 822 | "metadata": { 823 | "id": "YJndRY-ZPTb8", 824 | "colab_type": "code", 825 | "colab": { 826 | "base_uri": "https://localhost:8080/", 827 | "height": 84 828 | }, 829 | "outputId": "325e4c82-69ed-432d-f692-0030bf920a09" 830 | }, 831 | "cell_type": "code", 832 | "source": [ 833 | "for elemento in idades:\n", 834 | " print(\"Recebi o elemento\", elemento)" 835 | ], 836 | "execution_count": 38, 837 | "outputs": [ 838 | { 839 | "output_type": "stream", 840 | "text": [ 841 | "Recebi o elemento 20\n", 842 | "Recebi o elemento 39\n", 843 | "Recebi o elemento 18\n", 844 | "Recebi o elemento [27, 19]\n" 845 | ], 846 | "name": "stdout" 847 | } 848 | ] 849 | }, 850 | { 851 | "metadata": { 852 | "id": "Rt1JRcrIPZVL", 853 | "colab_type": "code", 854 | "colab": { 855 | "base_uri": "https://localhost:8080/", 856 | "height": 34 857 | }, 858 | "outputId": "34ef7b0d-bc95-4ec6-99eb-71ecfeca83d2" 859 | }, 860 | "cell_type": "code", 861 | "source": [ 862 | "idades = [20, 39, 18]\n", 863 | "idades.extend([27, 19])\n", 864 | "idades" 865 | ], 866 | "execution_count": 39, 867 | "outputs": [ 868 | { 869 | "output_type": "execute_result", 870 | "data": { 871 | "text/plain": [ 872 | "[20, 39, 18, 27, 19]" 873 | ] 874 | }, 875 | "metadata": { 876 | "tags": [] 877 | }, 878 | "execution_count": 39 879 | } 880 | ] 881 | }, 882 | { 883 | "metadata": { 884 | "id": "2TqBUj41PwzS", 885 | "colab_type": "code", 886 | "colab": { 887 | "base_uri": "https://localhost:8080/", 888 | "height": 101 889 | }, 890 | "outputId": "f6e4e9bb-f866-4fb0-bc5a-2be373185544" 891 | }, 892 | "cell_type": "code", 893 | "source": [ 894 | "for idade in idades:\n", 895 | " print(idade + 1)" 896 | ], 897 | "execution_count": 40, 898 | "outputs": [ 899 | { 900 | "output_type": "stream", 901 | "text": [ 902 | "21\n", 903 | "40\n", 904 | "19\n", 905 | "28\n", 906 | "20\n" 907 | ], 908 | "name": "stdout" 909 | } 910 | ] 911 | }, 912 | { 913 | "metadata": { 914 | "id": "-zU67OikQCJq", 915 | "colab_type": "code", 916 | "colab": { 917 | "base_uri": "https://localhost:8080/", 918 | "height": 34 919 | }, 920 | "outputId": "93a76c21-4b69-47a4-dcd9-5b42fce70b30" 921 | }, 922 | "cell_type": "code", 923 | "source": [ 924 | "idades_no_ano_que_vem = []\n", 925 | "for idade in idades:\n", 926 | " idades_no_ano_que_vem.append(idade+1)\n", 927 | "idades_no_ano_que_vem" 928 | ], 929 | "execution_count": 41, 930 | "outputs": [ 931 | { 932 | "output_type": "execute_result", 933 | "data": { 934 | "text/plain": [ 935 | "[21, 40, 19, 28, 20]" 936 | ] 937 | }, 938 | "metadata": { 939 | "tags": [] 940 | }, 941 | "execution_count": 41 942 | } 943 | ] 944 | }, 945 | { 946 | "metadata": { 947 | "id": "P50Oyp-EQQrC", 948 | "colab_type": "code", 949 | "colab": { 950 | "base_uri": "https://localhost:8080/", 951 | "height": 34 952 | }, 953 | "outputId": "bc1c0261-05af-46d1-a8d5-fc9957afdf9d" 954 | }, 955 | "cell_type": "code", 956 | "source": [ 957 | "idades_no_ano_que_vem = [idade+1 for idade in idades]\n", 958 | "idades_no_ano_que_vem" 959 | ], 960 | "execution_count": 43, 961 | "outputs": [ 962 | { 963 | "output_type": "execute_result", 964 | "data": { 965 | "text/plain": [ 966 | "[21, 40, 19, 28, 20]" 967 | ] 968 | }, 969 | "metadata": { 970 | "tags": [] 971 | }, 972 | "execution_count": 43 973 | } 974 | ] 975 | }, 976 | { 977 | "metadata": { 978 | "id": "QdPT5ougQmvS", 979 | "colab_type": "code", 980 | "colab": { 981 | "base_uri": "https://localhost:8080/", 982 | "height": 34 983 | }, 984 | "outputId": "e6f6defd-e799-4208-dcd4-7477944a123e" 985 | }, 986 | "cell_type": "code", 987 | "source": [ 988 | "[idade for idade in idades if idade > 21]" 989 | ], 990 | "execution_count": 44, 991 | "outputs": [ 992 | { 993 | "output_type": "execute_result", 994 | "data": { 995 | "text/plain": [ 996 | "[39, 27]" 997 | ] 998 | }, 999 | "metadata": { 1000 | "tags": [] 1001 | }, 1002 | "execution_count": 44 1003 | } 1004 | ] 1005 | }, 1006 | { 1007 | "metadata": { 1008 | "id": "25Mg6X9zQ-U5", 1009 | "colab_type": "code", 1010 | "colab": { 1011 | "base_uri": "https://localhost:8080/", 1012 | "height": 34 1013 | }, 1014 | "outputId": "ff1c9ce9-0df4-434c-cd70-0c78d28c23df" 1015 | }, 1016 | "cell_type": "code", 1017 | "source": [ 1018 | "idades" 1019 | ], 1020 | "execution_count": 45, 1021 | "outputs": [ 1022 | { 1023 | "output_type": "execute_result", 1024 | "data": { 1025 | "text/plain": [ 1026 | "[20, 39, 18, 27, 19]" 1027 | ] 1028 | }, 1029 | "metadata": { 1030 | "tags": [] 1031 | }, 1032 | "execution_count": 45 1033 | } 1034 | ] 1035 | }, 1036 | { 1037 | "metadata": { 1038 | "id": "feAiRsuTRAQ0", 1039 | "colab_type": "code", 1040 | "colab": { 1041 | "base_uri": "https://localhost:8080/", 1042 | "height": 34 1043 | }, 1044 | "outputId": "46cfc170-4f7a-4804-b8f1-a6efcb573247" 1045 | }, 1046 | "cell_type": "code", 1047 | "source": [ 1048 | "def proximo_ano(idade):\n", 1049 | " return idade+1\n", 1050 | "\n", 1051 | "[proximo_ano(idade) for idade in idades if idade > 21]" 1052 | ], 1053 | "execution_count": 46, 1054 | "outputs": [ 1055 | { 1056 | "output_type": "execute_result", 1057 | "data": { 1058 | "text/plain": [ 1059 | "[40, 28]" 1060 | ] 1061 | }, 1062 | "metadata": { 1063 | "tags": [] 1064 | }, 1065 | "execution_count": 46 1066 | } 1067 | ] 1068 | }, 1069 | { 1070 | "metadata": { 1071 | "id": "zHFn9PYHSY3Z", 1072 | "colab_type": "code", 1073 | "colab": {} 1074 | }, 1075 | "cell_type": "code", 1076 | "source": [ 1077 | "def faz_processamento_de_visualizacao(lista):\n", 1078 | " print(len(lista))\n", 1079 | " lista.append(13)" 1080 | ], 1081 | "execution_count": 0, 1082 | "outputs": [] 1083 | }, 1084 | { 1085 | "metadata": { 1086 | "id": "7nWLQ7t-SqT3", 1087 | "colab_type": "code", 1088 | "colab": { 1089 | "base_uri": "https://localhost:8080/", 1090 | "height": 50 1091 | }, 1092 | "outputId": "74ee7eec-880e-4f4f-9fb7-26e84d1551ba" 1093 | }, 1094 | "cell_type": "code", 1095 | "source": [ 1096 | "idades = [16, 21, 29, 56, 43]\n", 1097 | "faz_processamento_de_visualizacao(idades)\n", 1098 | "idades" 1099 | ], 1100 | "execution_count": 54, 1101 | "outputs": [ 1102 | { 1103 | "output_type": "stream", 1104 | "text": [ 1105 | "5\n" 1106 | ], 1107 | "name": "stdout" 1108 | }, 1109 | { 1110 | "output_type": "execute_result", 1111 | "data": { 1112 | "text/plain": [ 1113 | "[16, 21, 29, 56, 43, 13]" 1114 | ] 1115 | }, 1116 | "metadata": { 1117 | "tags": [] 1118 | }, 1119 | "execution_count": 54 1120 | } 1121 | ] 1122 | }, 1123 | { 1124 | "metadata": { 1125 | "id": "k8n9XUouSvXc", 1126 | "colab_type": "code", 1127 | "colab": {} 1128 | }, 1129 | "cell_type": "code", 1130 | "source": [ 1131 | "def faz_processamento_de_visualizacao(lista = []):\n", 1132 | " print(len(lista))\n", 1133 | " print(lista)\n", 1134 | " lista.append(13)" 1135 | ], 1136 | "execution_count": 0, 1137 | "outputs": [] 1138 | }, 1139 | { 1140 | "metadata": { 1141 | "id": "p-KkKf-6Tplr", 1142 | "colab_type": "code", 1143 | "colab": { 1144 | "base_uri": "https://localhost:8080/", 1145 | "height": 50 1146 | }, 1147 | "outputId": "8ca509de-6b48-4830-b59f-74f5fceaebf4" 1148 | }, 1149 | "cell_type": "code", 1150 | "source": [ 1151 | "faz_processamento_de_visualizacao()" 1152 | ], 1153 | "execution_count": 61, 1154 | "outputs": [ 1155 | { 1156 | "output_type": "stream", 1157 | "text": [ 1158 | "0\n", 1159 | "[]\n" 1160 | ], 1161 | "name": "stdout" 1162 | } 1163 | ] 1164 | }, 1165 | { 1166 | "metadata": { 1167 | "id": "29p5f7fOTs9h", 1168 | "colab_type": "code", 1169 | "colab": { 1170 | "base_uri": "https://localhost:8080/", 1171 | "height": 50 1172 | }, 1173 | "outputId": "ef5e7ae5-5954-4079-e522-fbd4a036f3ff" 1174 | }, 1175 | "cell_type": "code", 1176 | "source": [ 1177 | "faz_processamento_de_visualizacao()" 1178 | ], 1179 | "execution_count": 62, 1180 | "outputs": [ 1181 | { 1182 | "output_type": "stream", 1183 | "text": [ 1184 | "1\n", 1185 | "[13]\n" 1186 | ], 1187 | "name": "stdout" 1188 | } 1189 | ] 1190 | }, 1191 | { 1192 | "metadata": { 1193 | "id": "DWP6B6DuTu0j", 1194 | "colab_type": "code", 1195 | "colab": { 1196 | "base_uri": "https://localhost:8080/", 1197 | "height": 50 1198 | }, 1199 | "outputId": "2418fd1d-0ec9-4ec7-b86c-3351c8fd7e99" 1200 | }, 1201 | "cell_type": "code", 1202 | "source": [ 1203 | "faz_processamento_de_visualizacao()" 1204 | ], 1205 | "execution_count": 63, 1206 | "outputs": [ 1207 | { 1208 | "output_type": "stream", 1209 | "text": [ 1210 | "2\n", 1211 | "[13, 13]\n" 1212 | ], 1213 | "name": "stdout" 1214 | } 1215 | ] 1216 | }, 1217 | { 1218 | "metadata": { 1219 | "id": "HYbSLIiSTwOB", 1220 | "colab_type": "code", 1221 | "colab": { 1222 | "base_uri": "https://localhost:8080/", 1223 | "height": 50 1224 | }, 1225 | "outputId": "ed417dc4-53a9-423e-b624-ad924a230e2a" 1226 | }, 1227 | "cell_type": "code", 1228 | "source": [ 1229 | "faz_processamento_de_visualizacao()" 1230 | ], 1231 | "execution_count": 64, 1232 | "outputs": [ 1233 | { 1234 | "output_type": "stream", 1235 | "text": [ 1236 | "3\n", 1237 | "[13, 13, 13]\n" 1238 | ], 1239 | "name": "stdout" 1240 | } 1241 | ] 1242 | }, 1243 | { 1244 | "metadata": { 1245 | "id": "vS-8-DHiTxdh", 1246 | "colab_type": "code", 1247 | "colab": {} 1248 | }, 1249 | "cell_type": "code", 1250 | "source": [ 1251 | "def faz_processamento_de_visualizacao(lista = list()):\n", 1252 | " print(len(lista))\n", 1253 | " print(lista)\n", 1254 | " lista.append(13)" 1255 | ], 1256 | "execution_count": 0, 1257 | "outputs": [] 1258 | }, 1259 | { 1260 | "metadata": { 1261 | "id": "lCMngXMGUKli", 1262 | "colab_type": "code", 1263 | "colab": { 1264 | "base_uri": "https://localhost:8080/", 1265 | "height": 85 1266 | }, 1267 | "outputId": "996f93dd-a52b-4531-cc93-a8f1a852134b" 1268 | }, 1269 | "cell_type": "code", 1270 | "source": [ 1271 | "faz_processamento_de_visualizacao()\n", 1272 | "faz_processamento_de_visualizacao()" 1273 | ], 1274 | "execution_count": 66, 1275 | "outputs": [ 1276 | { 1277 | "output_type": "stream", 1278 | "text": [ 1279 | "0\n", 1280 | "[]\n", 1281 | "1\n", 1282 | "[13]\n" 1283 | ], 1284 | "name": "stdout" 1285 | } 1286 | ] 1287 | }, 1288 | { 1289 | "metadata": { 1290 | "id": "5sMp0XuKUMVf", 1291 | "colab_type": "code", 1292 | "colab": {} 1293 | }, 1294 | "cell_type": "code", 1295 | "source": [ 1296 | "def faz_processamento_de_visualizacao(lista = None):\n", 1297 | " if lista == None:\n", 1298 | " lista = list()\n", 1299 | " print(len(lista))\n", 1300 | " print(lista)\n", 1301 | " lista.append(13)" 1302 | ], 1303 | "execution_count": 0, 1304 | "outputs": [] 1305 | }, 1306 | { 1307 | "metadata": { 1308 | "id": "2LxsmPtaUU-D", 1309 | "colab_type": "code", 1310 | "colab": { 1311 | "base_uri": "https://localhost:8080/", 1312 | "height": 153 1313 | }, 1314 | "outputId": "c686cb61-1678-478e-8aa5-f7bc79aa58d5" 1315 | }, 1316 | "cell_type": "code", 1317 | "source": [ 1318 | "faz_processamento_de_visualizacao()\n", 1319 | "faz_processamento_de_visualizacao()\n", 1320 | "faz_processamento_de_visualizacao()\n", 1321 | "faz_processamento_de_visualizacao()" 1322 | ], 1323 | "execution_count": 69, 1324 | "outputs": [ 1325 | { 1326 | "output_type": "stream", 1327 | "text": [ 1328 | "0\n", 1329 | "[]\n", 1330 | "0\n", 1331 | "[]\n", 1332 | "0\n", 1333 | "[]\n", 1334 | "0\n", 1335 | "[]\n" 1336 | ], 1337 | "name": "stdout" 1338 | } 1339 | ] 1340 | }, 1341 | { 1342 | "metadata": { 1343 | "id": "xD-vMk2iUYst", 1344 | "colab_type": "code", 1345 | "colab": {} 1346 | }, 1347 | "cell_type": "code", 1348 | "source": [ 1349 | "" 1350 | ], 1351 | "execution_count": 0, 1352 | "outputs": [] 1353 | } 1354 | ] 1355 | } --------------------------------------------------------------------------------