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

Dopisywanie do listy -append

Object Storage Arubacloud
0 głosów
134 wizyt
pytanie zadane 9 kwietnia 2017 w Python przez Gdzieniegdzie Nowicjusz (120 p.)

Program w którym możemy wpisywać z zewnątrz oceny dla 3 uczniów - wpisujemy w listę. A następnie wyświetla listę z ocenami.

Co zrobić, żeby program nie dopisywał liczb do jednej listy. Jeżeli wprowadzę oceny dla jednego ucznia 1,2 dla drugiego 3,4 a trzeci będzie miał 5 i 6 program wypisuje mi 3 takie same listy ze wszystkimi ocenami czyli przykładowo: Janek[1,2,3,4,5,6], Bartek[1,2,3,4,5,6], Maciek[1,2,3,4,5,6]. A chcę wiadomo oceny poszczególnych uczniów.

class Student:
    imie = ""
    nazwisko = ""
    ocena = []


    def srednia(self):
        if len(self.ocena) == 0:
            print("Nie ma ocen, nie ma średniej")
        else:
            x = sum(self.ocena)/len(self.ocena)
            print("Średnia ocen wynosi: ", x)


    def dodaj(self):
        while (True):
            print("Podaj oceny ucznia: ", self.imie, self. nazwisko, ".  Jeśli chcesz zakończyc wprowadź '0'")
            x = int(input())
            if x == 0:
                break
            if x>6 or x<0:
                print("Nie ma takiej oceny")
            self.ocena.append(x)

    def dane(self):
        print("Imie i Nazwisko: ", self.imie, self.nazwisko,  ",  oceny: ", self.ocena )

a = Student()
a.imie = "Jan"
a.nazwisko = "Kowalski"


b = Student()
b.imie = "Marek"
b.nazwisko = "Pawelski"

c = Student()
c.imie = "Jacek"
c.nazwisko = "Mackiewicz"



a.dodaj()
b.dodaj()
c.dodaj()

a.dane()
a.srednia()

b.dane()
b.srednia()

c.dane()
c.srednia()

 

1 odpowiedź

+1 głos
odpowiedź 25 kwietnia 2017 przez Hajabuza Początkujący (370 p.)
Robisz po prostu zmienne globalne które przetrzymują wartości

Musisz zainicjować te trzy zmienne imie, nazwisko, ocena

a więc do zmiany jest kawałek tego kodu

zamiast pierwszych trzech linii w klasie Student

tak bym Ci radził zrobić

def __init__(self, imie, nazwisko):

self.imie = imie

self.nazwisko = nazwisko

self.ocena = []

Podobne pytania

0 głosów
4 odpowiedzi 2,419 wizyt
pytanie zadane 14 lutego 2018 w Python przez 1mSnajper Początkujący (300 p.)
0 głosów
1 odpowiedź 347 wizyt
pytanie zadane 30 października 2020 w Python przez reaktywny Nałogowiec (40,970 p.)
0 głosów
1 odpowiedź 183 wizyt
pytanie zadane 24 października 2019 w JavaScript przez kordix Gaduła (3,910 p.)

92,551 zapytań

141,393 odpowiedzi

319,522 komentarzy

61,936 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

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy 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!

...