1 - Para trancar o usuário em uma etapa, você pode utilizar o loop while:
number = 0
while number <= 0 or number > 100:
n = input('Digite um número entre 1 e 100: ')
if n.isnumeric(): # valida se o número é do tipo inteiro
n = int(n) # aqui é seguro convertermos a variável do tipo string para o tipo int
if n > 0 and n <= 100:
number = n
# número válido, aqui já saímos da condição do while e saímos do loop
else:
print('Número inválido. Digite um número entre 1 e 100')
# mensagem "deseja continuar" + tratamento da resposta aqui
else:
print('Número inválido!')
# mensagem "deseja continuar" + tratamento da resposta aqui
2 - Para restringir o input para as letras de A a Z, você pode facilmente utilizar expressões regulares (biblioteca re) para criar os patterns. Mas se quiser fazer manualmente, você pode criar uma lista manualmente com os caracteres "a" até "z" e depois replicar para as maísculas, ou pode simplesmente reduzir tudo às minúsculas utilizando a API lower() no input para transformar o input em minúscula.
answer = input('Digite uma letra de A à Z: ')
# Convertemos os números de 97 até 122 em caracteres, que retornar os caracteres de "a" à "z" minúsculos
# Para maiúsculos use o intervalo de 65 à 90
if answer.lower() in [chr(l) for l in range(97, 123)]: # se o input for igual à alguma das letras contidas na lista
print('Caractere válido')
else:
print('Erro: Digite uma letra de A á Z')