Download - Os telefones
![Page 1: Os telefones](https://reader035.vdocuments.com.br/reader035/viewer/2022081811/547a36745806b58f048b47ad/html5/thumbnails/1.jpg)
Os Telefones Rodrigo Lira
![Page 2: Os telefones](https://reader035.vdocuments.com.br/reader035/viewer/2022081811/547a36745806b58f048b47ad/html5/thumbnails/2.jpg)
Rodrigo LiraAluno do 5º período de Engenharia da Computação na UPE.
Conheci python no final de 2008.
Participa dos grupos Python Poli e do PUG-PE.
http://tiny.cc/rodrigolira
![Page 3: Os telefones](https://reader035.vdocuments.com.br/reader035/viewer/2022081811/547a36745806b58f048b47ad/html5/thumbnails/3.jpg)
Os Telefones
Na pacata campestre vila de Arquivonaoencontradoville, todos os telefones têm 6 dígitos. A companhia telefônica estabelece as seguintes regras sobre os números:
![Page 4: Os telefones](https://reader035.vdocuments.com.br/reader035/viewer/2022081811/547a36745806b58f048b47ad/html5/thumbnails/4.jpg)
Não pode haver dois dígitos consecutivos idênticos, porque isso é chato.
A soma dos dígitos tem que ser par, porque isso é legal.
O último dígito não pode ser igual ao primeiro, porque isso dá azar.
![Page 5: Os telefones](https://reader035.vdocuments.com.br/reader035/viewer/2022081811/547a36745806b58f048b47ad/html5/thumbnails/5.jpg)
Então, dadas essas regras perfeitamente razoáveis, bem projetadas e maduras, quantos números de telefone na lista abaixo são válidos?
215228, 218415, 221632, 224722, 229644, 230847, 233798, 237903, 239224, 241832, 242112, 243248, 246147, 247652, 250688, 252940, 255721, 256882, 259134, 262578, 263327, 266656, 268796, 270350, 272863, 275245, 278601, 278606, 281963, 283751, 288259, 291562, 296545, 298528, 302103, 303431, 307561, 311979, 315548, 320440, 322278, 324469, 324740, 327417, 330263, 331179, 334147, 334932, 336085, 338096, 338106, 342991, 347187, 347590, 348863, 350187, 353246, 354032, 358616, 363056, 363251, 366141, 369906, 371046, 372684, 377077, 381177, 382086, 385627, 385694, 386105, 388179, 390251, 392624, 394225, 395328, 398698, 400102, 404224, 408064, 410386, 411711, 413621, 415653, 417168, 419269, 424197, 427202, 430639, 432570, 437462, 442412, 444990, 447613, 452039, 456750, 459927, 462532, 465756, 467051, 468297, 469089, 471562, 474900, 475534, 476833, 478910, 480437, 482085, 485647, 487736, 489897, 493033, 495182, 498463, 502539, 502785, 505926, 508246, 511720, 515395, 515595, 516362, 520927, 525025, 529957, 530139, 531015, 533760, 534588, 538184, 541403, 542913, 546141, 548038, 549095, 552509, 556808, 560382, 563503, 565304, 567165, 567675, 572218, 573856, 576408, 578085, 578997, 579553, 584487, 589220, 590967, 593234, 597867, 599823, 603666, 607878, 611482, 611854, 612811, 614119, 615956, 617547, 621070, 621309, 626105, 626885, 631080, 635911, 639606, 640175, 641607, 645158, 647958, 652199, 656507, 658615, 662663, 662947, 664704, 666668, 667544, 669440, 673512, 675931, 676963, 677113, 678606, 682716, 682998, 684883, 686140, 688963, 689054, 692042, 695458, 697031, 697457, 697623, 698026
![Page 6: Os telefones](https://reader035.vdocuments.com.br/reader035/viewer/2022081811/547a36745806b58f048b47ad/html5/thumbnails/6.jpg)
Filter
![Page 7: Os telefones](https://reader035.vdocuments.com.br/reader035/viewer/2022081811/547a36745806b58f048b47ad/html5/thumbnails/7.jpg)
FilterAplicação de filtro
Tem como retorno uma sequência formada por todos os itens em que func(item) é True.
filter(função ou None,seq)
#Palíndromosfilter(lambda x: x[::-1]==x,["casa","ovo","palavra","radar"])['ovo', 'radar']
![Page 8: Os telefones](https://reader035.vdocuments.com.br/reader035/viewer/2022081811/547a36745806b58f048b47ad/html5/thumbnails/8.jpg)
LambdaFunção anônima.
Seu corpo deve conter apenas expressão.
Não possui a instrução return.
Seguem o modelo:
lambda arg1,arg2,arg3,argn: expressão
![Page 9: Os telefones](https://reader035.vdocuments.com.br/reader035/viewer/2022081811/547a36745806b58f048b47ad/html5/thumbnails/9.jpg)
Separar os telefones
telefones = “215228, 218415”
telefone.split(',')
['215228', ' 218415']
![Page 10: Os telefones](https://reader035.vdocuments.com.br/reader035/viewer/2022081811/547a36745806b58f048b47ad/html5/thumbnails/10.jpg)
O último dígito não pode ser igual ao primeiro
telefone = “215228”
telefone[0]!=telefone[-1]
True
![Page 11: Os telefones](https://reader035.vdocuments.com.br/reader035/viewer/2022081811/547a36745806b58f048b47ad/html5/thumbnails/11.jpg)
A soma dos dígitos tem que ser par
telefone = “215228”
sum(int(d) for d in telefone)%2==0
True
![Page 12: Os telefones](https://reader035.vdocuments.com.br/reader035/viewer/2022081811/547a36745806b58f048b47ad/html5/thumbnails/12.jpg)
ZipRetorna uma lista cujos elementos são tuplas resultantes de cada um dos elementos de uma ou mais sequências de entrada seq1, seq2, seqN.
zip(seq1,seq2,seqn)
Exemplo:zip(('a','b'),[1,2])[('a', 1), ('b', 2)]
![Page 13: Os telefones](https://reader035.vdocuments.com.br/reader035/viewer/2022081811/547a36745806b58f048b47ad/html5/thumbnails/13.jpg)
Não pode haver dois dígitos consecutivos idênticos
telefone = “215228”
all(a!=b for a,b in zip(telefone,telefone[1:]))#[('2', '1'), ('1', '5'), ('5', '2'), ('2', '2'), ('2', '8')]
False
![Page 14: Os telefones](https://reader035.vdocuments.com.br/reader035/viewer/2022081811/547a36745806b58f048b47ad/html5/thumbnails/14.jpg)
Script