Pereiti prie turinio

Python vidurkiu skaiciavimas turint du int ir str masyvus


Rekomenduojami pranešimai

Sveiki užduoti paprasta vedi mokiniu vardus ir pažymius tol kol nusprendi nebevest ir įvedi nulį, atsakyme turi būti išvedimas Vardas, vardo pažymiai ir vidurkis

Esmė tame, jei vardas kartojasi reiškias tai yra tas pats žmogus ir kaupiami pažymiai prie vardo...

Štai mano versija, klausimas, kaip išvesti viena atsakymą vienam vardui? Nes kolkas šita mano primityvi išvedimo versija meta po tuos pačius atsakymus kelis kartus.

 

 

 

print('============================================================')
print('******************Vidurkių skaičiavimo programa*************')
print('*****************Nutraukti vedima įvedus nulį***************')
print('============================================================')
#===================================================================Įvedimas
pazymiai=[]         # Pažymių masyvas
vardai=[]           # Mokinių vardų masyvas
sk=1                # Papildomas kintamasis ciklui vykdyti
while (sk!=0):                          # Ciklas vyksta tol kol sk nelygus nuliui
   vard= input('Įveskite vardą : ')          # Prašomas įvesti varrdas
   if (vard.isalpha()):                # Tikrinama ar vardas tik iš raidžių
       ipaz= int(input('Iveskite pažimį : '))# Prašomas įvesti pažimį
               # Pažymiai paverčiama į INT tipą
       if(ipaz<=10 and ipaz>0):        # Tikrinama ar telpa į 0<ipaz<=0 rėmus
           vardai.append(vard)         # Jei gerai įvesta pildome masyvą vardu 
           pazymiai.append(ipaz)        # Jei gerai įvesta pildome masyva pažymiu
       else:
           while (ipaz<=0) or (ipaz>10): # Tikrinama ar telpa į 0<ipaz<=0 rėmus
               print ('**ERROR**Blogai įvestas pažimys, veskite iš naujo nuo 1 iki 10**ERROR**') 
               ipaz= int (input('Iveskite pažimį : '))  #Jei blogai ivestas paž pradedamas ciklas kol įvedama teisingai
           vardai.append(vard)
           pazymiai.append(ipaz)
   elif(vard=='0'):
       print ('*************Įvėdimas nutrauktas**********')
       sk=0     
   else:
       print ('**ERROR**Blogai įrašytas vardas, veskite iš naujo**ERROR**')
#================PROBLEM IZ HERE=============================================
kiek= len(pazymiai)                     # Pažiūriu kiek masyve narių
ats=[]                                  # Sukuriu masyva pažymiam prie vardo kaupti
for k in range(0, kiek):
   vtikr=vardai[k]                              
   for i in range(0, kiek):            #
       if (vtikr==vardai[i]):          # Jei vardai sutampa priskiriam
           ats.append(pazymiai[i])
   kpaz= len(ats)
   suma=0
   print (vtikr)
   kiek=len(vardai)
   for z in range(0,kpaz):
       a=ats[z]
       b= int(a)
       print (b)
       suma=suma+b
   vid=suma/(z+1)
   print (vid)
   ats=[]
#================PROBLEM IZ HERE=============================================

Redagavo xamer
Nuoroda į pranešimą
Dalintis kituose puslapiuose

cia pavyzdys kaip turetu atrodyti 'pythoniskesnis' variantas

mok = {}

while True:
name_ = input('enter name: ')
if name_ == '0': break
if not name_ in mok:
	mok[name_] = []
val_ = input('grade: ')
mok[name_].append(int(val_))

for key in mok.keys():
print(key,mok[key],sum(mok[key])/len(mok[key]))

Nuoroda į pranešimą
Dalintis kituose puslapiuose

Prisijunkite prie diskusijos

Jūs galite rašyti dabar, o registruotis vėliau. Jeigu turite paskyrą, prisijunkite dabar, kad rašytumėte iš savo paskyros.

Svečias
Parašykite atsakymą...

×   Įdėta kaip raiškusis tekstas.   Atkurti formatavimą

  Only 75 emoji are allowed.

×   Nuorodos turinys įdėtas automatiškai.   Rodyti kaip įprastą nuorodą

×   Jūsų anksčiau įrašytas turinys buvo atkurtas.   Išvalyti redaktorių

×   You cannot paste images directly. Upload or insert images from URL.

Įkraunama...
  • Dabar naršo   0 narių

    Nei vienas registruotas narys šiuo metu nežiūri šio puslapio.

×
×
  • Pasirinkite naujai kuriamo turinio tipą...