Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> python kalkulator BMI
Andrix
post
Post #1





Grupa: Zarejestrowani
Postów: 3
Pomógł: 0
Dołączył: 22.09.2006
Skąd: Starogard gdański

Ostrzeżenie: (0%)
-----


Witam pisze projekt na zaliczenie lecz stanąłem w martwym punkcie i nie wiem jak sobie z tym poradzić. wszystko śmiga lecz jak obejść by nie krzyczało mi ze ta tabela o tej nazwie jest zajęta a nie chce jej dropowac co chwile.

PS: żeby nie było najpierw przeszukuje google, a potem pytam (IMG:style_emoticons/default/smile.gif)
  1. cur.execute("CREATE TABLE Kobieta (Wzrost varchar, Wiek varchar, Plec varchar, BMI varchar, zawartosc_tluszczu varchar);")
  2. psycopg2.ProgrammingError: relation "kobieta" already exists


EDIT:
Oraz mam pytanie, jak wstawić podaną zmienna (typu wzrost, wagę, wiek, pleć, wyliczone BMI oraz zawartość tłuszczu) w tabele ?
Chodzi o to ze gdy ktoś poda te dane i na końcu potwierdzi że chce wstawić swoje dane do naszej bazy by wstawiło te że podane dane w tabele.
Jest takie coś możliwe ? Oraz w komentarzach zadałem dodatkowe nurtujące mnie pytania.

aktualnie Kod wygląda tak:
  1. #-*- coding: utf-8 -*-
  2. #importowanie potrzebnych bibliotek
  3. from easygui import *
  4. import psycopg2
  5. import sys
  6. #praca na bazie danych
  7. try:
  8. conn = psycopg2.connect("dbname='****' user='****' host='****' password='****'");
  9. except:
  10. msg_error = "Błąd - Nie moge polaczyć sie z bazą!!"
  11. title_error = "Błąd - Nie moge polaczyć sie z bazą!!"
  12. msgbox(msg_error, title_error, ok_button="OK")
  13. cur = conn.cursor()
  14. cur.execute("CREATE TABLE BMI (Wzrost varchar NOT NULL, Wiek varchar NOT NULL, Plec varchar NOT NULL, BMI varchar NOT NULL, Zawartosc_Tluszczu varchar NOT NULL);")
  15. conn.commit()
  16. #wybor programu lub wczytanie danych z bazy
  17. msg_choice = "Mam uruchomić program czy wczytać dane z bazy online?"
  18. title_choice = "Co chcesz uruchomić ?"
  19. choices_choice = ["Program", "Baza"]
  20. choice = choicebox(msg_choice, title_choice, choices_choice)
  21. #baza
  22. #program
  23. # TĄ CZĘŚĆ KODU(W DÓŁ) CHCIAŁ BYM ZAPISAĆ JAKO FUNKCJE KTÓRĄ BEDE CHCIAŁ WYWOŁAĆ WYŻEJ W WYBORZE CZY ODPALIĆ PROGRAM CZY WCZYTAĆ Z BAZY LECZ NIE WIEM JAK TO ZROBIĆ.
  24. # PODOBNIE WYŻEJ BEDE CHIAŁ ZDEFINIOWAC FUNKCJE BAZA I TAK SAMO WYWOLAC JA WYZEJ PRZY WYBOZE.
  25. msg = "Sprawdz swoje BMI oraz zawartość tkanki tłuszczowej"
  26. title = "Kalkulator BMI (Body Mass Index) oraz zawartość tkanki tłuszczowej"
  27. fieldNames = ["Podaj swoją wagę [kg]", "Podaj swój wzrost [cm]", "Podaj swój wiek", "Podaj swoja pleć [M = Mężczyzna] [K = Kobieta]"]
  28. fieldValues = []
  29. fieldValues = multenterbox(msg, title, fieldNames)
  30. #wczytywanie dancyh
  31. weight = float(fieldValues[0])
  32. growth = float(fieldValues[1])
  33. age = float(fieldValues[2])
  34. sex = fieldValues[3]
  35. if fieldValues[3]=="k":
  36. sex = 1
  37. else:
  38. sex = 0
  39. #podstawianie pod wzór
  40. BMI = float(weight)/(float(growth)*float(growth)/10000)
  41. BMI = round(BMI*10)/10
  42. FAT = (1.2*BMI) + (0.23*age) - (10.8*sex) - 5.4
  43. #wyprowadzanie wyniku
  44. if BMI < 18.5:
  45. msg1 = "Twoje BMI wynosi: " + str(BMI)+ ", zawartość tłuszczu wynosi: " + str(FAT)+ " % Jesteś zbyt chudy/a jak na swój wzrost. Czy chesz wczytać swój wynik do naszej bazy ?"
  46. choices = ["Tak", "Nie"]
  47. choice = choicebox(msg1, title, choices)
  48. #if choices =="Tak"
  49. #i tu nie wiem czy dobrze robie ? i jak w VALUES zdefiniować te zmienne
  50. #cur.execute("INSERT INTO BMI (Wzrost, Wiek, Plec, BMI, Zawartosc_Tluszczu) VALUES(%s, %s)"
  51. #else:
  52. # sys.exit(0)
  53. elif BMI>25:
  54. msg1 = "Twoje BMI wynosi: " + str(BMI)+ ", zawartość tłuszczu wynosi: " + str(FAT)+ "% Jak na swój wzrost to powinieneś/powinnaś schudnąć. Czy chesz wczytać swój wynik do naszej bazy ?"
  55. choices = ["Tak", "Nie"]
  56. choice = choicebox(msg1, title, choices)
  57. else:
  58. msg1 = "Twoje BMI wynosi: " + str(BMI)+ ", zawartość tłuszczu wynosi: " + str(FAT)+ "% Z twoją wago jest wszystko w porządku. Czy chesz wczytać swój wynik do naszej bazy ?"
  59. choices = ["Tak", "Nie"]
  60. choice = choicebox(msg1, title, choices)


jakiś pomysł jak bym mógł to zrobić?

PS: nie chodzi mi o to by ktoś mi napisał no bo i po co, lecz by nakierował co robię źle :
Go to the top of the page
+Quote Post
kosmowariat
post
Post #2





Grupa: Zarejestrowani
Postów: 235
Pomógł: 17
Dołączył: 18.07.2007
Skąd: Białystok

Ostrzeżenie: (0%)
-----


jeśli chodzi o tabelkę

  1. CREATE TABLE IF NOT EXISTS
Go to the top of the page
+Quote Post
Andrix
post
Post #3





Grupa: Zarejestrowani
Postów: 3
Pomógł: 0
Dołączył: 22.09.2006
Skąd: Starogard gdański

Ostrzeżenie: (0%)
-----


ok coś mam, lecz to stwierdzenie odnosi się do biblioteki sqlite3(chyba) lecz ja mam bibliotekę psycopg2 i jak uruchamiam krzyczy mi
  1. cur.execute("CREATE TABLE IF NOT EXISTS BMI(Wzrost varchar NOT NULL, Wiek varchar NOT NULL, Plec varchar NOT NULL, BMI varchar NOT NULL, Zawartosc_Tluszczu varchar NOT NULL);")
  2. psycopg2.ProgrammingError: syntax error at OR near "NOT"
  3. LINE 1: CREATE TABLE IF NOT EXISTS BMI(Wzrost varchar NOT NULL, Wiek...


Ogólnie mój program ma tak działać.
1. Uruchamia się program tworzy tabele jeżeli nie ma, jeżeli jest omija ten krok.
2. Jak się uruchomi wyskoczy okienko z easygui i zapyta co chcesz uruchomić ? (działa lecz nie wiem jak zdefiniować jak wybiorę program czy baza by się uruchomiało właśnie to.)
-Program
-Wczytać naszą bazę danych.
3. Jeżeli program to uruchomi się program do obliczenia BMI.
4. Jeżeli baza to wyświetli posortowaną bazę powiedzmy w kolejność kobiet.
Ad3. Jeżeli już wpiszemy nasze dane program wszystko obliczy, zada nam pytanie co chcemy zrobić ?Wczytać te podane oraz wyliczone dane w naszą bazę którą zrobiliśmy (bądź nie) w punkcie 1. I jak wczytać zmienne podane wcześniej do bazy ? Jeżeli wybierzemy nie program się zamknie.

Bardzo będę wdzięczny jak ktoś w jaki kol wiek sposób pomoże.

Ten post edytował Andrix 25.05.2011, 13:16:00
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 25.12.2025 - 06:34