Conflito em Estrutura de Repetição [RESOLVIDO]

1. Conflito em Estrutura de Repetição [RESOLVIDO]

Welington Gian
wgian98

(usa Arch Linux)

Enviado em 22/11/2018 - 14:03h

Sou iniciante em Python, preciso de ajuda com este código, a estrutura de repetição volta a rodar o código novamente quando digitado a opção 'não' ao invés de terminar o script:

#!/usr/bin/python
#_*_coding: UTF-8_*_

install_option = int
other_install = str

def end():

print('\nObrigado por utilizar o assistente!')

def options():

print('\n 1 - Mozilla Firefox')
print('\n 2 - Selenium WebDriver')
print('\n 3 - Geckodriver')

def install():

print('\nQual programa você quer instalar?')
print('Use os números relacionados a cada programa para instala-los: ')
install_option = input('')

if(install_option == 1):

print('\nCerto, vamos providenciar a instalação do Mozilla Firefox!')
other_install = raw_input('\nDeseja instalar outro programa?(Sim/não): ')

if(other_install == 'Sim' or 'sim'):

install()

elif(other_install == 'não' or other_install == 'não'):

end()

else:

print('\nOpção inválida!\n')
end()

elif(install_option == 2):

print('\nCerto, vamos providenciar a instalação do Selenium WebDriver!')
other_install = raw_input('\nDeseja instalar outro programa?(Sim/não): ')

if(other_install == 'Sim' or 'sim'):

install()

elif(other_install == 'não' or 'não'):

end()

else:

print('\nOpção inválida!\n')
end()

elif(install_option == 3):

print('\nCerto, vamos providenciar a instalação do Geckodriver!')
other_install = raw_input('\nDeseja instalar outro programa?(Sim/não): ')

if(other_install == 'Sim' or 'sim'):

install()

elif(other_install == 'não' or 'não'):

end()

else:

print('\nOpção inválida!\n')
end()

elif(install_option == 0):

end()

else:

print('\nOpção inválida! Escolha um número relacionado a um dos programas!\n')
options()
install()

print('\nBem-vindo ao assistente de instalação!')
print('Para executar o Automator Likes você precisa instalar os seguintes programas: \n')
options()
install()



  


2. MELHOR RESPOSTA

Diego Mendes Rodrigues
diegomrodrigues

(usa Ubuntu)

Enviado em 22/11/2018 - 16:47h

Irei te mostrar duas possíveis soluções para esse conflito.

Utilizei
other_install = other_install.lower() 
para converter o texto digitado em letras minúsculas.

Os IFs ficaram da seguinte forma:
if other_install == 'sim':
elif other_install in ['não', 'nao']:


Além de alguns pequenos ajustes.

Segue o código.
#!/usr/bin/python
#_*_coding: UTF-8_*_

install_option = int
other_install = str

def end():
print('\nObrigado por utilizar o assistente!')

def options():
print('\n 1 - Mozilla Firefox')
print('\n 2 - Selenium WebDriver')
print('\n 3 - Geckodriver')

def install():
print('\nQual programa você quer instalar?')
install_option = input('Use os números relacionados a cada programa para instala-los: ')

if install_option == 1:
print('\nCerto, vamos providenciar a instalação do Mozilla Firefox!')

other_install = raw_input('\nDeseja instalar outro programa? [Sim/Não]: ')

# Converter o texto digitado pelo usuário para letras minusculas
other_install = other_install.lower()

# Verificar se o usuário digitou sim
if other_install == 'sim':
options()
install()

# Verificar se o usuário digitou não ou nao
elif other_install in ['não', 'nao']:
end()

else:
print('\nOpção inválida!\n')
end()

elif install_option == 2:
print('\nCerto, vamos providenciar a instalação do Selenium WebDriver!')

other_install = raw_input('\nDeseja instalar outro programa? [Sim/Não]: ')

# Converter o texto digitado pelo usuário para letras minusculas
other_install = other_install.lower()

# Verificar se o usuário digitou sim
if other_install == 'sim':
options()
install()

# Verificar se o usuário digitou não ou nao
elif other_install in ['não', 'nao']:
end()

else:
print('\nOpção inválida!\n')
end()

elif(install_option == 3):
print('\nCerto, vamos providenciar a instalação do Geckodriver!')

other_install = raw_input('\nDeseja instalar outro programa? [Sim/Não]: ')

# Converter o texto digitado pelo usuário para letras minusculas
other_install = other_install.lower()

# Verificar se o usuário digitou sim
if other_install == 'sim':
options()
install()

# Verificar se o usuário digitou não ou nao
elif other_install in ['não', 'nao']:
end()

else:
print('\nOpção inválida!\n')
end()

elif(install_option == 0):
end()

else:
print('\nOpção inválida! Escolha um número relacionado a um dos programas!\n')
options()
install()

# Executar o Script
print('\nBem-vindo ao assistente de instalação!')
print('Para executar o Automator Likes você precisa instalar os seguintes programas:')
options()
install()


Na segunda opção, utilizei o
other_install = other_install.replace('ã', 'a') 
para transformar uma resposta do usuário que seja não em nao.

O IF do não ficou desta forma:
elif other_install == 'nao': 


Segue o código.
#!/usr/bin/python
#_*_coding: UTF-8_*_

install_option = int
other_install = str

def end():
print('\nObrigado por utilizar o assistente!')

def options():
print('\n 1 - Mozilla Firefox')
print('\n 2 - Selenium WebDriver')
print('\n 3 - Geckodriver')

def install():
print('\nQual programa você quer instalar?')
install_option = input('Use os números relacionados a cada programa para instala-los: ')

if install_option == 1:
print('\nCerto, vamos providenciar a instalação do Mozilla Firefox!')

other_install = raw_input('\nDeseja instalar outro programa? [Sim/Não]: ')

# Converter o texto digitado pelo usuário para letras minusculas
other_install = other_install.lower()

# Substituir 'ã' por 'a' no texto digitado pelo usuário, portanto 'não' vira 'nao'
other_install = other_install.replace('ã', 'a')

# Verificar se o usuário digitou sim
if other_install == 'sim':
options()
install()

# Verificar se o usuário digitou não ou nao
elif other_install == 'nao':
end()

else:
print('\nOpção inválida!\n')
end()

elif install_option == 2:
print('\nCerto, vamos providenciar a instalação do Selenium WebDriver!')

other_install = raw_input('\nDeseja instalar outro programa? [Sim/Não]: ')

# Converter o texto digitado pelo usuário para letras minusculas
other_install = other_install.lower()

# Substituir 'ã' por 'a' no texto digitado pelo usuário, portanto 'não' vira 'nao'
other_install = other_install.replace('ã', 'a')

# Verificar se o usuário digitou sim
if other_install == 'sim':
options()
install()

# Verificar se o usuário digitou não ou nao
elif other_install == 'nao':
end()

else:
print('\nOpção inválida!\n')
end()

elif(install_option == 3):
print('\nCerto, vamos providenciar a instalação do Geckodriver!')

other_install = raw_input('\nDeseja instalar outro programa? [Sim/Não]: ')

# Converter o texto digitado pelo usuário para letras minusculas
other_install = other_install.lower()

# Substituir 'ã' por 'a' no texto digitado pelo usuário, portanto 'não' vira 'nao'
other_install = other_install.replace('ã', 'a')

# Verificar se o usuário digitou sim
if other_install == 'sim':
options()
install()

# Verificar se o usuário digitou não ou nao
elif other_install == 'nao':
end()

else:
print('\nOpção inválida!\n')
end()

elif(install_option == 0):
end()

else:
print('\nOpção inválida! Escolha um número relacionado a um dos programas!\n')
options()
install()

# Executar o Script
print('\nBem-vindo ao assistente de instalação!')
print('Para executar o Automator Likes você precisa instalar os seguintes programas:')
options()
install()


Abraço,
Diego M. Rodrigues

3. Re: Conflito em Estrutura de Repetição [RESOLVIDO]

Rodrigo
omag0

(usa Debian)

Enviado em 22/11/2018 - 15:31h

Excelente material iniciante para Python
https://www.youtube.com/watch?v=S9uPNppGsGo&list=PLHz_AreHm4dlKP6QQCekuIPky1CiwmdI6


4. Python

Welington Gian
wgian98

(usa Arch Linux)

Enviado em 22/11/2018 - 19:20h

omag0 escreveu:

Excelente material iniciante para Python
https://www.youtube.com/watch?v=S9uPNppGsGo&list=PLHz_AreHm4dlKP6QQCekuIPky1CiwmdI6


Obrigado, vou dar uma olhada.


5. Python

Welington Gian
wgian98

(usa Arch Linux)

Enviado em 22/11/2018 - 19:26h

[quote]diegomrodrigues escreveu:

Irei te mostrar duas possíveis soluções para esse conflito.

Funcionou perfeitamente. Eu reescrevi o código 3 vezes e analisei linha por linha umas 10 vezes haha. Muito obrigado, foi de grande ajuda!







Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts