Q:

Como pegar e salvar muitas entradas de dados em python? 

Galera estou começando a programar e ate agora as entradas de dados eram assim:
    dado_1 = str(input('Seu nome: '))
    dado_2 = int(input('Sua idade: '))
    dado_3 = str(input('Sexo: '))

Mas eu fiquei com uma duvida, como eu pego os mesmos dados acima e os armazeno de forma "infinita" podendo por exemplo salvar 30 nomes ou 100 nomes junto com as outras informações e requisitar depois. 

A:

Variáveis de mesmo tipo podem ser agregadas em uma lista (vou usar a terminologia do Python), por exemplo:
animais=['cachorro', 'gato', 'galinha']
print(animais)
['cachorro', 'gato', 'galinha']

Estes valores podem ser acessados através da sua posição na lista (índice), sendo o primeiro item começando em zero. 
print(animais[2])
'galinha'

E novos valores podem ser facilmente adicionados:
animais.append('porco')
print(animais[3])
'porco'

Você também pode ter listas podem ter como índice um nome (chave), ao invés de um valor numérico.  Em Python eles são chamados de dicionários:
pessoa = { 'nome': 'Giovanni', 'idade': 45, 'sexo': "M" }
print(pessoa)
{'idade': 45, 'sexo': 'M', 'nome': 'Giovanni'}

E cada valor acessado tal qual na lista:
print pessoa['idade']
45

Neste caso a ordem não é preservada já que você acessa os valores pela chave.  E o interessante é que você pode armazenar qualquer par de chave/valor dentro dos dicionários. 
Assim pode-se responder sua pergunta com um programa que é mais ou menos assim:
#! /usr/bin/python3

# lista com as pessoas, vazia por enquanto. 
pessoas = []

# coloquei apenas 5 para não ficar cansativo mas pode ser qualquer valor. 
for i in range(5):
    nome = input('Nome : ')
    idade = int(input('Idade : '))
    sexo = input('Sexo : ')

    # cria um dicionário com o que foi entrado e adiciona à lista. 
    pessoas.append({ 'nome': nome, 'idade':idade, 'sexo':sexo })

# e para cada pessoa armazenada...
for pessoa in pessoas:
    # recupera de pessoa tanto 'chave' como 'valor'. 
    for chave, valor in pessoa.items():
        print("{} => {}".format(chave, valor))
    print("----")

Claro, estes valores estarão na memória apenas enquanto o programa estiver em execução, sendo descartados assim que ele for terminado. 
Esta é uma explicação bem básica e vale a pena uma leitura sobre estes dois tipos de dados para, entre outras coisas, conhecer os demais métodos e atributos que podem ser utilizados para trabalhar com o conteúdo deles.