Advertisement
raerek

2006. február - Telefonszámla

Feb 3rd, 2013
66
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 3.50 KB | None | 0 0
  1. #!/usr/bin/env python3
  2.  
  3. def mobilszam_e(karakterlanc):
  4.     return (True if karakterlanc.startswith(('39','41','71')) else False)
  5.  
  6. def időpontot_karakterláncokból_számokká(lista):
  7.     return [ int(elem) for elem in lista ]
  8.  
  9. def másodperccé_alakit(időadat):
  10.     return(60*60*időadat[0]+60*időadat[1]+időadat[2])
  11.  
  12. def időkülönbséget_számol(későbbi, korábbi):
  13.     különbség_másodperc = másodperccé_alakit(későbbi) - másodperccé_alakit(korábbi)
  14.     különbség_óra = különbség_másodperc // 3600
  15.     különbség_másodperc -= különbség_óra * 3600
  16.     különbség_perc = különbség_másodperc // 60
  17.     különbség_másodperc -= különbség_perc * 60
  18.     return([különbség_óra, különbség_perc, különbség_másodperc])
  19.  
  20. def számlázott_perccé_alakít(időadat):
  21.     return(60 * időadat[0] + időadat[1] + (0 if not időadat[2] else 1))
  22.  
  23. def csúcsidős_e_a_hívás(időadat):
  24.     return (True if másodperccé_alakit(időadat) >= 7*60*60 and másodperccé_alakit(időadat) < 18*60*60 else False)
  25.    
  26. def perccé_alakít(másodperc):
  27.     perc = másodperc // 60
  28.     másodperc -= perc *60
  29.     perc += másodperc / 60
  30.     return perc
  31.  
  32. #1. feladat
  33. print('Ez mobilszám.') if mobilszam_e(input('Kérek egy telefonszámot! ')) else print('Ez nem mobilszám.')
  34. #2. feladat
  35. kezdetlista = időpontot_karakterláncokból_számokká((input('Kérem a beszélgetés kezdetének időpontját (Ó P M): ')).split())
  36. végelista = időpontot_karakterláncokból_számokká((input('Kérem a beszélgetés végének időpontját (Ó P M): ')).split())
  37. print('Ez egy', számlázott_perccé_alakít(időkülönbséget_számol(végelista, kezdetlista)), 'perces beszélgetés volt.')
  38. #3. feladat
  39. sorok = [sor.strip() for sor in open('HIVASOK.TXT')]
  40. híváslista = []
  41. for szám, idők in zip(sorok[1::2], sorok[::2]):
  42.     híváslista += [[ szám, időpontot_karakterláncokból_számokká(idők.split()[:3]) ,  időpontot_karakterláncokból_számokká(idők.split()[3:]) ]]
  43. célfájl = open('percek.txt', 'w')
  44. for hívás in híváslista:
  45.     célfájl.write('{0} {1}\n'.format(számlázott_perccé_alakít(időkülönbséget_számol(hívás[2],hívás[1])), hívás[0]))
  46. célfájl.close()
  47. #4. feladat
  48. csúcsidőbeni_hívások = 0
  49. csúcsidőn_kívüli_hívások = 0
  50. for hívás in híváslista:
  51.     if csúcsidős_e_a_hívás(hívás[1]):
  52.         csúcsidőbeni_hívások += 1
  53.     else:
  54.         csúcsidőn_kívüli_hívások += 1
  55. print('Csúcsidőbeni hívások száma:', csúcsidőbeni_hívások, 'csúcsidőn kívüli hívások száma:', csúcsidőn_kívüli_hívások)
  56. #5. feladat
  57. mobillal_idő = 0
  58. vezetékessel_idő = 0
  59. for hívás in híváslista:
  60.     hívás += [ másodperccé_alakit(időkülönbséget_számol(hívás[2], hívás[1])) ]
  61.     if mobilszam_e(hívás[0]):
  62.         mobillal_idő += hívás[3]
  63.     else:
  64.         vezetékessel_idő += hívás[3]
  65. print('Mobillal', perccé_alakít(mobillal_idő), 'vezetékessel', perccé_alakít(vezetékessel_idő), 'percet beszélt.')
  66. #7. feladat
  67. mobillal_percek = 0
  68. vezetékessel_percek = 0
  69. for hívás in híváslista:
  70.     if csúcsidős_e_a_hívás(hívás[1]):
  71.         if mobilszam_e(hívás[0]):
  72.             mobillal_percek += számlázott_perccé_alakít(időkülönbséget_számol(hívás[2],hívás[1]))
  73.         else:
  74.             vezetékessel_percek += számlázott_perccé_alakít(időkülönbséget_számol(hívás[2],hívás[1]))
  75. print('Fizetendő:', mobillal_percek * 69.175 + vezetékessel_percek * 30, 'jó HUF.')
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement