Join three similar codes in one

2

I'm working with a table that shows the number of places offered, candidates who are enrolled and those who enter higher courses. I want to make a program that allows the visualization of this data from the user's input (let's say he wants to know how many vacancies were offered and how many people went to law courses ... he type "Right" and the program shows these numbers).

I was able to make the codes work, but only one by one, in three different programs. Is it possible to merge these three into one code?

1)

import csv

curso_desejado = input('Qual o curso? ')
vagas = 0
arquivo = open('oks4c.csv', encoding='utf8')
for registro in csv.reader(arquivo):
    vagas_oferecidas = registro[1]
    curso = registro[0]
    if curso == curso_desejado:
        vagas += int(vagas_oferecidas)
print(f'O número de vagas oferecidas em {curso_desejado} é: {vagas}')

2)

import csv

curso_desejado = input('Qual o curso? ')
inscritos = 0
arquivo = open('oks4c.csv', encoding='utf8')
for registro in csv.reader(arquivo):
    candidatos_inscritos = registro[2]
    curso = registro[0]
    if curso == curso_desejado:
        inscritos += int(candidatos_inscritos)
print(f'O número de inscritos em {curso_desejado} é: {inscritos}')

3)

import csv

curso_desejado = input('Qual o curso? ')
ingressos = 0
arquivo = open('oks4c.csv', encoding='utf8')
for registro in csv.reader(arquivo):
    ingressantes = registro[3]
    curso = registro[0]
    if curso == curso_desejado:
        ingressos += int(ingressantes)
print(f'O número de ingressantes em {curso_desejado} é: {ingressos}')
    
asked by anonymous 09.01.2018 / 04:35

1 answer

4

It would be basically this:

import csv

curso_desejado = input('Qual o curso? ')
vagas = 0
inscritos = 0
ingressos = 0
arquivo = open('oks4c.csv', encoding='utf8')
for registro in csv.reader(arquivo):
    if registro[0] == curso_desejado:
        vagas += int(registro[1])
        inscritos += int(registro[2])
        ingressos += int(registro[3])
print(f'O número de vagas oferecidas em {curso_desejado} é: {vagas}')
print(f'O número de inscritos em {curso_desejado} é: {inscritos}')
print(f'O número de ingressantes em {curso_desejado} é: {ingressos}')

I placed GitHub for future reference.

That is, I took the part that does not change and added the parts that change.

You can decrease 6 lines (although it will end up needing 3 more or more), but I think it does not pay.

    
09.01.2018 / 04:45