Será que “ajudou” mesmo? Pensa assim, o usuário digita 0, aí você troca pra 1 sem avisar, faz sentido?
Não seria melhor mostrar alguma mensagem, dizendo que zero não pode (afinal, zero parcelas quer dizer o que? Que o cliente não vai pagar?), e quem sabe pedir pra digitar novamente? Ex:
while True:
pv = int(input('mensagem...'))
if 1 <= pv <= 10: # supondo que o máximo é 10 parcelas
break # sai do while
else:
print('quantidade de parcelas deve estar entre 1 e 10')
# resto do programa
Claro, o if pode ser trocado pelos valores que você achar mais adequado. Lembrando que sempre dá pra melhorar, pois o código não valida se foi digitado um número de fato (se digitar “xyz”, dará erro, mas enfim).
Outra opção é só dar a mensagem de erro (“não pode ser zero”) e encerrar o programa. Como não é dito exatamente o que é pra fazer nesse caso, acho que qualquer uma dessas opções pode servir. Eu não gosto dessa ideia de simplesmente trocar por um valor qualquer só porque “não vai dar mais erro”.
Só porque o programa “funcionou” (não deu mais erro na execução), não quer dizer que esteja correto, ou que faça sentido. Mudar o input do usuário sem avisar, e principalmente sem validar, muitas vezes não é uma boa ideia (há casos e casos, claro, mas neste aqui não parece ser).
Sei que “é só um exercício”, mas exercícios também servem - ou deveriam servir - para fazer pensar um pouco além e já ir exercitando uma coisa que acho importante na nossa profissão: não se preocupar somente com o caso que funciona, mas também com os que podem dar errado (e tratar adequadamente).
Essa mentalidade de fazer qualquer coisa porque “assim funciona”, sem pensar se faz mesmo sentido, é prejudicial pra nossa área, tanto no curto quanto no longo prazo. E infelizmente muitos gostam de contribuir para que isso se continue (ou não se importam com isso).
Ou talvez eu só esteja virando um velho ranzinza. Desculpe o desabafo…