Skip to content

Alguns problemas com esse código, que pode ser melhorado #2

@laryferreira

Description

@laryferreira

Há alguns problemas com este código:

Na função main(), a linha "p, n, x= entrada()" está tentando passar as variáveis ​​p, n e x como argumentos para a função main(), mas essas variáveis ​​não foram definidas ou dado um valor ainda. Então você precisa passar os valores para p e n e x antes de chamar a função sapinho() como p = int(input()) e n = int(input()). (ex)

Na função verifica(), você não está retornando nada quando a instrução if-else é falsa. Você deve retornar False em vez de nada.

O loop na função main() sempre imprimirá 'VOCÊ GANHA', mesmo que a condição na instrução if-else seja verdadeira. Isso ocorre porque o loop sempre será executado até a conclusão antes que a instrução if-else seja verificada. Para corrigir isso, você deve mover a instrução print('YOU WIN') para fora do loop for, para que seja executada apenas se o loop for concluído sem interrupção.


O meu código ficou assim (com outros nomes de funções):

def pulinho(a1, a2, ap):
if abs(a1 - a2) > ap:
return True
else:
return False

def main():
ap, nc = map(int, input().split()) #entradas
a = input().split()
for i in range(len(a)):
a[i] = int(a[i])
jogo = False
for i in range(nc - 1):
jogo = pulinho(a[i], a[i+1], ap)
if jogo == True:
print('GAME OVER')
break
if jogo == False:
print('YOU WIN')

main()

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions