Os telefones

1.247 visualizações

Publicada em

Palestra relâmpago realizada no I Toró de palestras do PUG-PE (28/11)

Publicada em: Tecnologia
0 comentários
0 gostaram
Estatísticas
Notas
  • Seja o primeiro a comentar

  • Seja a primeira pessoa a gostar disto

Sem downloads
Visualizações
Visualizações totais
1.247
No SlideShare
0
A partir de incorporações
0
Número de incorporações
570
Ações
Compartilhamentos
0
Downloads
4
Comentários
0
Gostaram
0
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide

Os telefones

  1. 1. Os Telefones Rodrigo Lira
  2. 2. Rodrigo Lira Aluno 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
  3. 3. 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:
  4. 4. 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.
  5. 5. 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
  6. 6. Filter
  7. 7. Filter Aplicaçã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índromos filter(lambda x: x[::-1]==x,["casa","ovo","palavra","radar"]) ['ovo', 'radar']
  8. 8. Lambda Funçã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
  9. 9. Separar os telefones telefones = “215228, 218415” telefone.split(',') ['215228', ' 218415']
  10. 10. O último dígito não pode ser igual ao primeiro telefone = “215228” telefone[0]!=telefone[-1] True
  11. 11. A soma dos dígitos tem que ser par telefone = “215228” sum(int(d) for d in telefone)%2==0 True
  12. 12. Zip Retorna 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)]
  13. 13. 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
  14. 14. Script

×