• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

rozróżnianie zmiennych przy każdym obiegu pętli

VPS Starter Arubacloud
0 głosów
127 wizyt
pytanie zadane 25 października 2020 w Python przez smoothie Nowicjusz (120 p.)
i = int((input("wprowadź liczbę osób do podziału kosztów: ")))
j = 0
k = 0

uzytkownicy = []

while i > 0:
    lista = []
    j += 1
    if j > i:
        break
    print("Proszę", j, "osobę o wprowadzenie danych.")
    while True:
        k += 1
        try:
            lista.append(float(input("Wprowadź koszt albo wciśnij ENTER, jeżeli wprowadzono wszystkie koszty: ")))
            print("Aktualna suma kosztów:", round(sum(lista), 2))
            continue
        except:
            break
    print("Suma kosztów poniesionych przez", j, "osobę to:", round(sum(lista), 2))
    uzytkownicy.append(round(sum(lista), 2))

srednia = round(sum(uzytkownicy) / i, 2)
print("Średni koszt przypadający na jedną osobę to:", srednia)

Czy w pętli while da się rozróżnić zmienne przy każdym obiegu pętli? Chciałbym, żeby przy każdym obiegu pętli, w 21 linijce kodu, tworzyły się zmienne, np. a1, a2, a3 itd. 

Jeżeli się da, będę wdzięczny za podpowiedź. Jeżeli się nie da, proszę o sugestię jak to ugryźć. Oczywiście, może być rzucone jakieś hasło, żebym mógł dalej sam poszukać.

Jestem osobą rozpoczynającą dopiero przygodę z programowaniem. Uczę się sam, z internetu. Zdaję sobie sprawę, że ten kod może wyglądać źle i że moje pytanie może być banalne. Jestem otwarty na każdy feedback.

Ten kod został napisany przeze mnie czysto w celu ćwiczeniowym. Zakłada, w bardzo uproszczony sposób, rozliczenie kosztów poniesionych przez np. uczestników wycieczki. Chciałbym stworzyć wspomniane zmienne a1, a2, a3 itd., które miałyby określać koszt poniesiony przez daną osobę.  

komentarz 25 października 2020 przez Igorek Mądrala (6,290 p.)
możesz bardziej określić pytanie? np. jaki oczekujesz rezultat w konsoli bo możliwe że jestem w stanie ci pomóc
komentarz 25 października 2020 przez smoothie Nowicjusz (120 p.)
Może najprościej będzie opisać co chciałbym osiągnąć:

1 osoba wpisuje swoje koszty i na końcu zostają one zsumowane. Wychodzi np. 38,00. Chciałbym, żeby program zapamiętał tę liczbę pod jakąś zmienną, np. a1.

Następny obiegu pętli. 2 osoba wpisuje swoje koszty i wychodzi suma np. 42,00. Chciałbym, żeby program zapamiętał tę liczbę pod inną zmienną, np. a2.

Później chciałbym już na tych zmiennych pracować, czyli zrobić chociażby print(a2 - a1).
komentarz 25 października 2020 przez Igorek Mądrala (6,290 p.)

do tego możesz wykorzystać tablice, np. mógłbyś zrobić tablice ze samymi tymi kosztami:

koszt = [10, 231, 221]

przy każdym obiegu pętli dodawać kolejną wpłate, albo zrobić tablice którą nwm jak sie nazywa ale wyglądała by tak:

koszty = {"user1": 23, "user2": 32}

przykład użycia :

ktoryUser = 1
koszty = {}
while True:
 koszt = int(input("Poda mordo koszt: "))
 user = "user" + str(ktoryUser) #oczywiście zamista user1 możesz np. prosić o nick
 ktoryUser += 1 

 koszty[user] = koszt

jeśli masz jakiekolwiek pytania to pisz, bo nie wiem czy o to ci chodziło 

komentarz 25 października 2020 przez smoothie Nowicjusz (120 p.)
Dziękuję bardzo za komentarze.

Spróbuję podziałać ze słownikami (tablicami). Na pierwszy rzut oka będzie to wymagało dodatkowej pętli, bo chciałbym, żeby liczba "userów" mogła być dowolna.
komentarz 25 października 2020 przez Igorek Mądrala (6,290 p.)
dowolna liczba userów to robisz nie skończoną pętle
komentarz 25 października 2020 przez Igorek Mądrala (6,290 p.)

tylko mam pytanie w linijce 

lista.append(float(input("Wprowadź koszt albo wciśnij ENTER, jeżeli wprowadzono wszystkie koszty: ")))

chodzi o to że jak już nie chcesz podawać kosztów, kliknąć enter? (wyslać "nic")

bo jeśli tak to spróbuje sam odtworzyć ten program po swojemu 

komentarz 25 października 2020 przez smoothie Nowicjusz (120 p.)
Tak, dokładnie o to chodzi.

Zaloguj lub zarejestruj się, aby odpowiedzieć na to pytanie.

Podobne pytania

+1 głos
1 odpowiedź 190 wizyt
0 głosów
4 odpowiedzi 2,989 wizyt
pytanie zadane 7 listopada 2017 w JavaScript przez jking Początkujący (350 p.)
0 głosów
1 odpowiedź 197 wizyt
pytanie zadane 28 listopada 2019 w Python przez sisOOO Obywatel (1,370 p.)

92,452 zapytań

141,262 odpowiedzi

319,079 komentarzy

61,854 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Akademia Sekuraka 2024 zapewnia dostęp do minimum 15 szkoleń online z bezpieczeństwa IT oraz dostęp także do materiałów z edycji Sekurak Academy z roku 2023!

Przy zakupie możecie skorzystać z kodu: pasja-akademia - użyjcie go w koszyku, a uzyskacie rabat -30% na bilety w wersji "Standard"! Więcej informacji na temat akademii 2024 znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...