Ir ao conteúdo

Python Qual comando eu uso para criar variaveis


Ir à solução Resolvido por devair1010,

Posts recomendados

Postado

Boa noite, o titulo pode ter ficando meio nada ver, mas eu queria saber como eu crio variaveis a partir de outra variavel olha ai pra ver se da pra entender

#eu queria limitar os proximos "inputs", com base nesse primeiro aqui
uni = int(input('quantas unidades '))
#dai eu queria criar varias variaveis a partir dessa, por exemplo se o usuario digitasse 4 dai criava:
uni1...
uni2...
uni3...
uni4...
#se ele digitar 6 no uni
uni1...
uni2...
uni3...
uni4...
uni5...
uni6...
#não sei se ficou claro o suficiente 

 

  • Curtir 1
  • Solução
Postado

@Gramosa    no python as variáveis são imutáveis , mas existe um comando que faz isso que é o join , mas é bem complicado , então seria mais fácil usar um vetor , assim se você quer criar variáveis do tipo inteiro , crie um vetor com a quantidade de posições de acordo com a quantidade de variáveis que você quer , e aí você usa elas se referenciando pelo índice do vetor .

uni = 4
4 variáveis :
vetor = []
for y in range(uni)
    vetor.append(0)
  
depois pode usar as variaveis assim :

vetor[0]=155
vetor[1]=201
vetor[2]=555
vetor[3]=111

 

  • Curtir 1
  • Obrigado 1
Postado

@Gramosa     um vetor é uma variável que é dividida em várias partes , sendo que cada parte é uma posição e cada posição pode guardar um valor , no caso de ser um vetor de inteiros  ou uma string se for um vetor de string ,  então ele seria como um gaveteiro  assim , esse com dez posições que começa em zero e por isso vai até nove  :

vetor_dez.thumb.jpg.bd4dfefeb2a14b056574f5ebdf5934d0.jpg

e em cada gaveta pode se colocar um valor , e na hora de usar esse vetor você se referencia pela posição do vetor .

e para criar um vetor no python precisa usar um código igual a esse aqui :

vetor = []
for y in range(10)
    vetor.append(0)

em seguida pode se atribuir qualquer valor a uma posição do vetor , que é especificada colocando a posição dentro dos colchetes , assim  :

vetor[0]=212

 

  • Curtir 2
Postado
lista = []

Cria uma lista vazia, ou seja, sem nenhum item.

 

E

lista = [0 for i in range(10)]

Cria uma lista de 10 posições com valor 0 em todas as posições.

 

Cada posição pode ser acessada através de seu índice, que são numerados indo de 0 até N-1, onde N é a quantidade de posições na lista. Ou seja, no exemplo acima a lista tem 10 posições, que podem ser acessadas por seus respectivos índices, indo de 0 a 9.

 

Para acessar uma posição da lista usamos seu índice entre colchetes [ ] após o nome da lista:

lista[0]
lista[1]
lista[2]
.
.
.
etc

 

 

E para aumentar/adicionar novas posições à lista podemos usar o método .append(), para anexar um novo valor a uma nova posição no fim da lista. Por exemplo:

lista = [0 for i in range(10)]
lista.append(0)

Que resulta que a lista, originalmente com 10 posições, passará a ter 11 posições (com índices indo de 0 a 10), todas com valor 0.

  • Curtir 3
Postado

na pratica como faria isso, eu fiz um programa para calcular a media de um aluno em 4 unidades da uma olhada:

#plurais sao listas
#as listas vazias são para fazer uma especie de vetor

minimo = int(input('media da escola '))
continuar = True
notas = []
materias = []
somas = []

while continuar:
#toda vez que rodar o loop, a variavel materia sera adicionada a lista materias'''
    materia = str(input('qual a materia? ')).capitalize()
    materias.append(materia)

    nota1 = float(input('nota da 1° unidade '))
    nota2 = float(input('nota da 2° unidade '))
    nota3 = float(input('nota da 3° unidade '))
    nota4 = float(input('nota da 3° unidade '))
#toda vez que rodar o loop soma sera adicionado a lista somas'''
#toda vez que rodar o loop a media de soma sera adicionada a lista notas'''
    soma = nota1 + nota2 + nota3 + nota4
    somas.append(soma)
    notas.append(soma / 4)
#se o usuario negar continuar se tornara falso, ser o fim do loop'''

    if input('tem mais materia? (S/N)').upper() == 'N':
        continuar = False
        print('Boletim'.center(40, '='))
#materias foi usado para o alcansse somente, podesria ser usado qualquer lista'''

        for x in range(len(materias)):
            print('em {} a nota foi {}, logo a media foi {}'.format(materias[x], somas[x], notas[x]))

ai nesse caso eu queria saber se usei direito o vetor, e como eu faria para limitar a quantidade de notas a aparecer e nesse caso fosse possivel o usuario especificar uma quantidade de notas a ser somada e tirada a media, por exemplo se fossem apenas 3 notas, ou fossem 10, 20... como eu usaria o vetor para limitar os input nas notas, se ele disser que são 3 notas, que sejam 3 input, nota1, nota2 e nota3, se o usuario disser 20 notas, que sejam 20 input, nota1, nota2, nota3, nota4 ... nota20. como eu faria nesse caso? 

  • Curtir 1
Postado

@Gramosa   esse vetor precisa ser construido antes de usar e para isso use assim  :

#plurais sao listas
#as listas vazias são para fazer uma especie de vetor

minimo = int(input('media da escola '))
continuar = True
notas = []
materias = []
somas = []
for y in range(10)
    notas.append(0)
for y in range(10)
    somas.append(0)  
for y in range(10)
    materias.append(0)  
cont = 0;  
while continuar:
    #toda vez que rodar o loop, a variavel materia sera adicionada a lista materias'''
    materia = str(input('qual a materia? ')).capitalize()
    materias[cont] = materia

    nota1 = float(input('nota da 1° unidade '))
    nota2 = float(input('nota da 2° unidade '))
    nota3 = float(input('nota da 3° unidade '))
    nota4 = float(input('nota da 3° unidade '))
    #toda vez que rodar o loop soma sera adicionado a lista somas'''
    #toda vez que rodar o loop a media de soma sera adicionada a lista notas'''
    soma = nota1 + nota2 + nota3 + nota4
    somas[cont] = soma
    notas[cont] = soma / 4   # é a média das notas
    #se o usuario negar continuar se tornara falso, ser o fim do loop'''
    cont = cont + 1
    if input('tem mais materia? (S/N)').upper() == 'N':
        continuar = False
        print('Boletim'.center(40, '='))
        #materias foi usado para o alcansse somente, podesria ser usado qualquer lista'''

        for x in range(len(materias)):
            print('em {} a nota foi {}, logo a media foi {}'.format(materias[x], somas[x], notas[x]))  

 

  • Curtir 1
Postado

Se entendi direito, seria algo assim o que você quer?

# coding=utf-8
#plurais sao listas
#as listas vazias sao para fazer uma especie de vetor

minimo = int(input('media da escola '))
continuar = True
notas = []
materias = []
somas = []

while continuar:
    #toda vez que rodar o loop, a variavel materia sera adicionada a lista materias'''
    materia = str(input('qual a materia? ')).capitalize()
    materias.append(materia)
    
    n = int(input('quantas unidades na materia? '))
    
    soma = 0
    for i in range(n):
        nota = float(input('nota da {}ª unidade '.format(i+1)))
        soma = soma + nota
    #toda vez que rodar o loop soma sera adicionado a lista somas'''
    #toda vez que rodar o loop a media de soma sera adicionada a lista notas'''
    somas.append(soma)
    notas.append(soma / n)
    #se o usuario negar continuar se tornara falso, ser o fim do loop'''

    if input('tem mais materia? (S/N) ').upper() == 'N':
        continuar = False
        print('Boletim'.center(40, '='))
    #materias foi usado para o alcansse somente, podesria ser usado qualquer lista'''

        for x in range(len(materias)):
            print('em {} a nota foi {}, logo a media foi {}'.format(materias[x], somas[x], notas[x]))
input()

 

  • Curtir 2

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

LANÇAMENTO!

eletronica2025-popup.jpg


CLIQUE AQUI E BAIXE AGORA MESMO!