daily pastebin goal
19%
SHARE
TWEET

Untitled

a guest Feb 22nd, 2019 68 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. # zunanji moduli
  2. import json
  3. from decimal import Decimal
  4.  
  5.  
  6. # moje funkcije, definiramo jih vnaprej
  7. def nadaljujem():
  8.     is_naprej = "d"
  9.     is_naprej = input("Nadaljujemo d/n ?: ")
  10.     if is_naprej == "d":
  11.         return True
  12.     else:
  13.         return False
  14.  
  15.  
  16. def izpis_enizdelek():
  17.     # formatiramo variable na dve decimalki,
  18.     # da ne dobimo float recimo 2.000000000000003
  19.     dizracun_B  = round(Decimal(izracun_B),2)
  20.     dizracun_OH = round(Decimal(izracun_OH),2)
  21.     dizracun_M  = round(Decimal(izracun_M),2)
  22.  
  23.     # izpis
  24.     print('')  # empty line
  25.     print("IZDELEK: " + ime_izdelka + " " + "\nKOLIČINA: " + str(kolicina) + "x")
  26.     print("B = " + str(dizracun_B) + " g")
  27.     print("OH = " + str(dizracun_OH) + " g")
  28.     print("M = " + str(dizracun_M) + " g")
  29.     print('')  # empty line
  30.  
  31.  
  32. # ----------------------------------------
  33. # hranilne vrednosti
  34. # to bi kasneje lahko dali v stalno datoteko ali bazo podatkov
  35.  
  36. jajca_1kom_B = 6.8
  37. jajca_1kom_OH = 0.4
  38. jajca_1kom_M = 5.9
  39.  
  40. banana_1kom_B = 1.2
  41. banana_1kom_OH = 21.1
  42. banana_1kom_M = 0.3
  43.  
  44. whey_100g_B = 70
  45. whey_100g_OH = 12.3
  46. whey_100g_M = 6.3
  47.  
  48. mleko_100g_B = 3.3
  49. mleko_100g_OH = 4.6
  50. mleko_100g_M = 3.5
  51.  
  52. mandlji_100g_B = 21.1
  53. mandlji_100g_OH = 21.6
  54. mandlji_100g_M = 52.1
  55.  
  56. lesniki_100g_B = 15
  57. lesniki_100g_OH = 16.7
  58. lesniki_100g_M = 60.7
  59.  
  60. krompir_100g_B = 2.1
  61. krompir_100g_OH = 20.8
  62. krompir_100g_M = 0.1
  63.  
  64. riz_100g_B = 3.3
  65. riz_100g_OH = 34.3
  66. riz_100g_M = 0.5
  67.  
  68. piscanec_100g_B = 23
  69. piscanec_100g_OH = 0
  70. piscanec_100g_M = 1.3
  71.  
  72. skuta_100g_B = 14
  73. skuta_100g_OH = 3
  74. skuta_100g_M = 2.5
  75.  
  76. kosmici_100g_B = 13.5
  77. kosmici_100g_OH = 58.7
  78. kosmici_100g_M = 7
  79.  
  80. tuna_konzerva_1kom_B = 8.3
  81. tuna_konzerva_1kom_OH = 0
  82. tuna_konzerva_1kom_M = 18.7
  83.  
  84. ananas_100g_B = 0
  85. ananas_100g_OH = 12
  86. ananas_100g_M = 1
  87.  
  88. melona_100g_B = 0.8
  89. melona_100g_OH = 8.2
  90. melona_100g_M = 0.2
  91.  
  92. smoothie_1_B = 44.3
  93. smoothie_1_OH = 63.8
  94. smoothie_1_M = 10.8
  95.  
  96. smoothie_2_B = 37.5
  97. smoothie_2_OH = 37.5
  98. smoothie_2_M = 11.6
  99.  
  100. # sporočimo uporabniku, za kaj gre
  101. print("Program zna izračunati prehranske vrednosti za naslednje izdelke:\n- jajca \n- banana \n- whey\n- mleko \n- mandlji \n- lešniki\n- krompir \n- riž \n- piščanec\n- tuna konzerva (neto = 52g, z odlitim oljem!) \n- ananas \n- melona\n- smoothie 1 (SKUTA 250g + KOSMIČI 60g + 1x BANANA)\n- smoothie 2 (MLEKO 250g + WHEY 40g + 1x BANANA)")
  102. print('') #empty line
  103.  
  104. print("Najprej boste izbrali hrano, nato pa še količino hrane. Program vam bo izračunal koliko beljakovin, ogljikovih hidratov in maščob boste zaužili v takšnem obroku.")
  105. print('') #empty line
  106.  
  107.  
  108. # sedaj gremo v neskončno zanko
  109. # inicializiramo (nastavimo) variable
  110. is_naprej = "d"
  111. is_error  = False
  112.  
  113. # prazna lista za posamezne preračune
  114. myList = []
  115.  
  116. while is_naprej:
  117.  
  118.     # tu nehamo, če se uporabnik tako odloči
  119.     is_naprej = nadaljujem()
  120.     is_error = False
  121.     if is_naprej == False:
  122.         break
  123.  
  124.     ime_izdelka = input("Vpiši ime izdelka: ")
  125.  
  126.  
  127.     # -----  sedaj imamo različne preračune za posamezne izdelke -----
  128.     # ----------------------------------------------------------------
  129.     if ime_izdelka == "jajca":
  130.         kolicina   = int(input("Koliko jajc: "))
  131.         izracun_B  = kolicina * jajca_1kom_B
  132.         izracun_OH = kolicina * jajca_1kom_OH
  133.         izracun_M  = kolicina * jajca_1kom_M
  134.         izpis_enizdelek()
  135.  
  136.     elif ime_izdelka == "banana":
  137.         kolicina = int(input("Koliko banan: "))
  138.         izracun_B = kolicina * banana_1kom_B
  139.         izracun_OH = kolicina * banana_1kom_OH
  140.         izracun_M = kolicina * banana_1kom_M
  141.         izpis_enizdelek()
  142.  
  143.     elif ime_izdelka == "whey":
  144.         kolicina = int(input("Koliko gramov: "))
  145.         izracun_B = ((kolicina * whey_100g_B) / 100)
  146.         izracun_OH = ((kolicina * whey_100g_OH) / 100)
  147.         izracun_M = ((kolicina * whey_100g_M) / 100)
  148.         izpis_enizdelek()
  149.  
  150.     elif ime_izdelka == "mleko":
  151.         kolicina = int(input("Koliko gramov: "))
  152.         izracun_B = ((kolicina * mleko_100g_B) / 100)
  153.         izracun_OH = ((kolicina * mleko_100g_OH) / 100)
  154.         izracun_M = ((kolicina * mleko_100g_M) / 100)
  155.         izpis_enizdelek()
  156.  
  157.     else:
  158.         print("")
  159.         print("Nepravilno ste vnesli ime hrane.")
  160.         is_error = True
  161.  
  162.     # vpišemo rezultat v listo myList
  163.     # ampak ne vpisujemo, če se je uporabnik zmotil (nepravilno vnesel ime hrane)
  164.     if is_error == False:
  165.  
  166.         # zaokrožimo na dve decimalki
  167.         dizracun_B = round(izracun_B, 2)
  168.         dizracun_OH = round(izracun_OH, 2)
  169.         dizracun_M = round(izracun_M, 2)
  170.  
  171.         # najprej vse rezultate združiš v slovar
  172.         rezultati = {"izdelek": ime_izdelka, "kolicina": kolicina, \
  173.                  "izr_B": dizracun_B, "izr_OH": dizracun_OH, \
  174.                  "izr_M": dizracun_M}
  175.  
  176.         # sedaj dodamo ta slovar v myList
  177.         myList.append(rezultati)
  178.         # test
  179.         # print(myList)
  180.  
  181. # konec zanke
  182.  
  183.  
  184. # ------------- natisnemo celo listo kot tabelo
  185.  
  186. # koliko zapisov imamo
  187. nelementov = len(myList)
  188.  
  189. # če lista ni prazna
  190. if nelementov > 0:
  191.  
  192.     # inicializiranje var za total
  193.     tot_izB = 0
  194.     tot_izO = 0
  195.     tot_izM = 0
  196.  
  197.     print(" ")
  198.     print("Vrednosti vse preračunane hrane (g):")
  199.     print('===========================================')
  200.     my_header = "Izdelek      Kol.      B      OH       M"
  201.     #            .......... .....   .....   .....   .....
  202.     print(my_header)
  203.  
  204.     for x in range(0, nelementov):
  205.         # my_data je dictionary znotraj liste myList
  206.         my_data = myList[x]
  207.  
  208.         # zaradi preglednosti naložimo posamezne dele v začasne variable
  209.         # števila zaokrožimo na 2 decimalki, da se bodo lepo podpisovala
  210.         my_izd = my_data["izdelek"]
  211.         my_kol = my_data["kolicina"]
  212.         my_izB = my_data["izr_B"]
  213.         my_izO = my_data["izr_OH"]
  214.         my_izM = my_data["izr_M"]
  215.  
  216.         # total
  217.         tot_izB = tot_izB + my_izB
  218.         tot_izO = tot_izO + my_izO
  219.         tot_izM = tot_izM + my_izM
  220.  
  221.         # oblikujemo izpis - natančno formatiranje stringa je kar zpleteno
  222.         # bom še razložil
  223.         my_values = "{0:10} {1:>5.0f}   {2:>5.2f}   {3:>5.2f}   {4:>5.2f}".format(my_izd, my_kol, my_izB, my_izO, my_izM)
  224.         print(my_values)
  225.  
  226. # sedaj vpišemo še total
  227. print('===========================================')
  228. #     "Izdelek - Količina - B - OH - M"
  229. my_totalstring = "{0:10} {1:5}   {2:5.2f}   {3:5.2f}   {4:5.2f}".format("TOTAL ", " ", tot_izB, tot_izO, tot_izM)
  230. print (my_totalstring)
  231.  
  232. # ----------   KONEC tabele
  233.  
  234.  
  235. # po želji lahko vse vpišemo še v fajl jedilniki.txt
RAW Paste Data
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy. OK, I Understand
 
Top