Advertisement
Guest User

Untitled

a guest
Feb 22nd, 2019
122
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 6.35 KB | None | 0 0
  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
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement