Keresés


Toplista

Toplista
  • betöltés...

Segítség!

Ahhoz, hogy mások kérdéseit és válaszait megtekinthesd, nem kell beregisztrálnod, azonban saját kérdés kiírásához ez szükséges!

Python programozás házi

333
Helló!
Az lenne a feladat hogy kell lennie:
10 keresztnévnek , és 10 vezetéknévnek.
Ebből kellene 25 random nevet generálni.
Ezek után a 25 random embernek kéne jegyeket adni, 1-5ig.
Ha ez is meglenne az emberek nevét sorzámozni kéne, és az osztályátlagot kiiratni.
Viszont csak eddig jutottam:

És sajnos már ez se működik
Jelenleg 1 felhasználó nézi ezt a kérdést.
phyton
0
Középiskola / Informatika

Válaszok

5
Külön tárolni kell az egyes tanulókhoz tartozó osztályzatot, vagy csak a végén ki kell írni egy átlagot?
0

tippek:

- teljesen jó a randint is (listábol elem választásra), de ebben az esetben én
a ranget: randint(0, len(vezeteknev)-1) ig adnám meg
igy nem kell tudnod milyen hosszú a lista, de sokkal inkább choice-ot használnám. pl. from random import choice... print(choice(keresztnev))

és a hibád:
a jegyek listában számok vannak, próbáld ki, hogy átalakítod őket stringgé. ["1", "2" stb...]
vagy az appendnel str()

de:
az egyszerűbb folytatáshoz, lehet szerencsésebb lenne, a nevet és az osztályzatot külön létrehoznod.
Majd betenni őket egy listába. és ezt a listát hozzáadni appenddel a nevekhez.
Módosítva: 1 éve
1

Egyébként a keresztneveknek adtada vezeteknev változó nevet, míg a vezetékneveknek a keresztnev változó nevet.
Illetve szerintem teljesen felesleges a jegyek lehetséges értékét tárolni. Simán generálhatsz random számot 1 és 5 között is.
0

Remélem megoldottad, de itt vagy egyféle megoldás.
0

Minden → egy tabulátor. A nevek sorszámozását arra értettem, hogy sorba kell rakni.

keresztnev = ["Kovács", "Kiss", "Nagy", "Csorgo", "Posta", "Bakos", "Fábión", "Kolompar", "Lakatos", "Oláh"]
vezeteknev = ["Roland", "Szabolcs", "Sándor", "Máté", "Ilona", "Ibolya", "Katalin", "Elemér", "Dávid", "Ricsi"]

nevek = []

import random

for i in range(25):
→nevek.append([random.choice(keresztnev) + " " + random.choice(vezeteknev), random.randint(1,5)])

nevek.sort()

#print(nevek)

s = 0
for i in range(len(nevek)):
→s += nevek[i][1]
→print("{}. {} {}".format(i+1, nevek[i][0], nevek[i][1]))

print("Az osztályátlag: {0:0.2f}".format(s/25))
Módosítva: 1 éve
0