Os telefones

1,354 views

Published on

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

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
1,354
On SlideShare
0
From Embeds
0
Number of Embeds
632
Actions
Shares
0
Downloads
4
Comments
0
Likes
0
Embeds 0
No embeds

No notes for 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

×