jeffersonfrancisco Postado Julho 24, 2017 Denunciar Share Postado Julho 24, 2017 (editado) Boa tarde... Estou iniciando com a linguagem Python e de cara já peguei vários problemas, um é o " : " na extensão do " print algo < o : " ocorre Syntaxerror: Invalid syntax. Não tem jeito, se alguém souber preciso de ajuda para continuar aprendendo. Editado Julho 24, 2017 por jeffersonfrancisco Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Graymalkin Postado Julho 24, 2017 Denunciar Share Postado Julho 24, 2017 Poste o código da maneira que está escrito, para termos uma ideia melhor de qual é o problema. O ":" normalmente só é usado no final de um if, for, while e nas declarações de classes (class) e funções/métodos (def). Abraços! Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 jeffersonfrancisco Postado Julho 24, 2017 Autor Denunciar Share Postado Julho 24, 2017 segue: temp = raw_input('Entre com a temperatura:') if temp < 0: print 'Congelando...' elif 0 <= temp <= 20: print 'Frio' elif 21 <= temp <= 25: print 'Normal' elif 26 <= temp <= 35: print 'Quente' else: print 'Muito quente!' Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Kimo Gordinho Postado Julho 24, 2017 Denunciar Share Postado Julho 24, 2017 2 horas atrás, jeffersonfrancisco disse: segue: temp = raw_input('Entre com a temperatura:') if temp < 0: print 'Congelando...' elif 0 <= temp <= 20: print 'Frio' elif 21 <= temp <= 25: print 'Normal' elif 26 <= temp <= 35: print 'Quente' else: print 'Muito quente!' Que erro tá dando ? Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Graymalkin Postado Julho 24, 2017 Denunciar Share Postado Julho 24, 2017 Agora sim dá pra ver qual é o problema. Não se pode fazer o tipo de comparação que você está tentando no elif: elif 0 <= temp <= 20: O correto é: elif (temp > 0) & (temp <= 20): Toda operação desse tipo precisa de 2 elementos e um operador, então no caso fazemos as duas comparações e depois realizamos uma operação AND (E) entre eles, ou seja, podemos ler como está escrito: "SE (temp for maior que 0) E (temp for menor que 20)". O programa completo seria: temp = int(raw_input('Entre com a temperatura:')) if temp <= 0: print 'Congelando...' elif (temp > 0) & (temp <= 20): print 'Frio' elif (temp >= 21) & (temp <= 25): print 'Normal' elif (temp >= 26) & (temp <= 35): print 'Quente' else: print 'Muito quente!' Outro detalhe é que raw_input() retorna uma string, então você não teria como comparar com inteiros, por isso a função int() para transformar o que for lido em um inteiro. Certo? ;) Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Kimo Gordinho Postado Julho 24, 2017 Denunciar Share Postado Julho 24, 2017 6 minutos atrás, Graymalkin disse: Agora sim dá pra ver qual é o problema. Não se pode fazer o tipo de comparação que você está tentando no elif: elif 0 <= temp <= 20: O correto é: elif (temp > 0) & (temp <= 20): Toda operação desse tipo precisa de 2 elementos e um operador, então no caso fazemos as duas comparações e depois realizamos uma operação AND (E) entre eles, ou seja, podemos ler como está escrito: "SE (temp for maior que 0) E (temp for menor que 20)". O programa completo seria: temp = int(raw_input('Entre com a temperatura:')) if temp <= 0: print 'Congelando...' elif (temp > 0) & (temp <= 20): print 'Frio' elif (temp >= 21) & (temp <= 25): print 'Normal' elif (temp >= 26) & (temp <= 35): print 'Quente' else: print 'Muito quente!' Outro detalhe é que raw_input() retorna uma string, então você não teria como comparar com inteiros, por isso a função int() para transformar o que for lido em um inteiro. Certo? ;) Obrigado! Me refrescou a memória aki haha Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 jeffersonfrancisco Postado Julho 25, 2017 Autor Denunciar Share Postado Julho 25, 2017 (editado) Bom dia!!! Muito obrigado pela ajuda...mas agora esta dando esse erro: SyntaxError: multiple statements found while compiling a single statement Será se é meu IDLE? Preciso importar algum modulo antes? Editado Julho 25, 2017 por jeffersonfrancisco agregar conteudo Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 isrnick Postado Julho 25, 2017 Denunciar Share Postado Julho 25, 2017 (editado) Seus erros provavelmente estão acontecendo por causa de má indentação do código. Ou seja, o número de espaços em branco no começo de cada linha tem ser consistentes e indicar corretamente a que agrupamento os comandos pertencem. Em Python essa sintaxe é válida sim: elif 0 <= temp <= 20: E funciona exatamente como esperado, ou seja a condição será satisfeita se o valor de temp for maior ou igual a 0 e menor ou igual a 20. (Obs: Em várias outras linguagens de programação essa sintaxe não funciona.) E o operador 'E/AND lógico' em Python é o operador and, enquanto o operador & é um operador 'E/AND binário'. Logo, o modo alternativo de escrever a mesma comparação acima em Python corretamente seria assim: elif (temp >= 0) and (temp <= 20): Mas ambos farão a mesma coisa em Python. Fora a indentação errada a única coisa que está faltando no seu código original é converter o valor obtido pelo raw_input() para um número inteiro, visto que essa função retorna uma string não um número. Pra isso basta usar a função int(), e o código fica assim (em Python 2): temp = int( raw_input('Entre com a temperatura:') ) if temp < 0: print 'Congelando...' elif 0 <= temp <= 20: print 'Frio' elif 21 <= temp <= 25: print 'Normal' elif 26 <= temp <= 35: print 'Quente' else: print 'Muito quente!' E em Python 3 ficaria assim: temp = int( input('Entre com a temperatura:') ) if temp < 0: print('Congelando...') elif 0 <= temp <= 20: print('Frio') elif 21 <= temp <= 25: print('Normal') elif 26 <= temp <= 35: print('Quente') else: print('Muito quente!') Editado Julho 25, 2017 por isrnick Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 jeffersonfrancisco Postado Julho 26, 2017 Autor Denunciar Share Postado Julho 26, 2017 Bom dia!! Legal...em Python 3 rodou, mas no Python 2 não, deu IndentationError: unexpected indent na primeira linha. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 isrnick Postado Julho 26, 2017 Denunciar Share Postado Julho 26, 2017 A mensagem de erro já diz o que é, ou seja, significa que você colocou algum espaço em branco no começo da primeira linha quando você copiou e colou, e não deveria. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 jeffersonfrancisco Postado Julho 26, 2017 Autor Denunciar Share Postado Julho 26, 2017 Certoooo!! Resolvido... não sabia que os espaços na frente do if,elif e else poderia ocorrer esse erro, pois no IDLE Python 3 não é relevante...Grato. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 isrnick Postado Julho 26, 2017 Denunciar Share Postado Julho 26, 2017 (editado) 3 horas atrás, jeffersonfrancisco disse: Certoooo!! Resolvido... não sabia que os espaços na frente do if,elif e else poderia ocorrer esse erro, pois no IDLE Python 3 não é relevante...Grato. Em outras linguagens é usado abre e fecha chaves { }, ou algo do tipo "comando e fim_do_comando", para indicar onde começa e termina um bloco de comandos. Mas em Python a indentação é que indica quais comandos pertencem a um mesmo bloco. <comando 1> if <condicao>: <comando 1 dentro do bloco de comandos do if> <comando 2 dentro do bloco de comandos do if> <comando 2> <comando 3> Ex: a = 7 print "fora do if" if a < 10: print "dentro do if" a = 15 print "ainda dentro do if" print "fora do if novamente" Logo, é muito importante sempre usar a indentação corretamente, de forma consistente. E isso é muito bom pra quem está aprendendo a programar, pois aprende dês de cedo a deixar o código bem organizado, já que em Python indentar corretamente é obrigatório. Editado Julho 26, 2017 por isrnick Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 emiiiiii Postado Maio 3, 2019 Denunciar Share Postado Maio 3, 2019 with open('input.txt','r')as arq: texto = arq.readline () import math with open ('output.txt', 'w')as arqout: for linha in texto: lista= linha.split() x = float (lista [0]) y = float (lista[1]) logx = math.log10 (x) logy = math.log10 (y) arqout.with('{:.4f}{:.4f}' .format (logx, logy)) Cara o prog ta apontando algum erro na linha 13 não consigo achar, alguém da um help ??} Agora, emiiiiii disse: with open('input.txt','r')as arq: texto = arq.readline () import math with open ('output.txt', 'w')as arqout: for linha in texto: lista= linha.split() x = float (lista [0]) y = float (lista[1]) logx = math.log10 (x) logy = math.log10 (y) arqout.with('{:.4f}{:.4f}' .format (logx, logy)) Cara o prog ta apontando algum erro na linha 13 não consigo achar, alguém da um help ?? no caso a ultima linha Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 ArteEN Postado Maio 3, 2019 Denunciar Share Postado Maio 3, 2019 não seria arqout.write? Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
jeffersonfrancisco
Boa tarde...
Estou iniciando com a linguagem Python e de cara já peguei vários problemas, um é o " : " na extensão do " print algo < o : " ocorre Syntaxerror: Invalid syntax.
Não tem jeito, se alguém souber preciso de ajuda para continuar aprendendo.
Link para o comentário
Compartilhar em outros sites
13 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.