Erro ao criar uma função

1. Erro ao criar uma função

EDIVALDO JUNIOR
edivaldojr

(usa Linux Mint)

Enviado em 02/01/2017 - 17:42h

Boa tarde gente, estou tentando refazer o exemplo no livro "Think Python" sobre funções e não aparece nenhum resultado:

Esse é o código, porém no Shell do python não retorna nenhum resultado, uso a versão 3.5.2.

def novaLinha():
print

def tresLinhas() :
novaLinha()
novaLinha()
novaLinha()

print('Primeira Linha')
tresLinhas()
print('Segunda Linha')

Segundo o Livro deveria aparecer o seguinte:

Primeira Linha



Segunda Linha



  


2. Re: Erro ao criar uma função

Lisandro Guerra
Lisandro

(usa Arch Linux)

Enviado em 02/01/2017 - 22:21h

Olá.
Primeiro vamos falar de como postar código aqui no VOL, sempre coloque seu código entre tags code.
Faça o seguinte: antes do início do código coloque a palavra "code" dentro de colchetes [cod... ] e depois do final do cógigo a mesma palavra mas com uma barra antes [/cod... ] . OBS.: coloquei três pontinhos no local do e para que pudesse ver pois as tags somem e fica só o código.

Já editei teu código para ficar direito e podermos ver a identação. Se fores editar teu post agora vais ver como está entre tags code.

Analisando o código pude perceber que:
1) Na função novalinha() faltam os parênteses da função print - deveria ser print()
2) Depois da função treslinhas() a identação tem que voltar para a esquerda ou nada será executado pois será como as linhas seguintes ainda fizessem parte da função.

O código com estas modificações ficaria assim:


def novaLinha():
print()

def tresLinhas() :
novaLinha()
novaLinha()
novaLinha()

print('Primeira Linha')
tresLinhas()
print('Segunda Linha')



Abraço


3. Re: Erro ao criar uma função

EDIVALDO JUNIOR
edivaldojr

(usa Linux Mint)

Enviado em 03/01/2017 - 10:39h

Lisandro escreveu:

Olá.
Primeiro vamos falar de como postar código aqui no VOL, sempre coloque seu código entre tags code.
Faça o seguinte: antes do início do código coloque a palavra "code" dentro de colchetes [cod... ] e depois do final do cógigo a mesma palavra mas com uma barra antes [/cod... ] . OBS.: coloquei três pontinhos no local do e para que pudesse ver pois as tags somem e fica só o código.

Já editei teu código para ficar direito e podermos ver a identação. Se fores editar teu post agora vais ver como está entre tags code.

Analisando o código pude perceber que:
1) Na função novalinha() faltam os parênteses da função print - deveria ser print()
2) Depois da função treslinhas() a identação tem que voltar para a esquerda ou nada será executado pois será como as linhas seguintes ainda fizessem parte da função.

O código com estas modificações ficaria assim:


def novaLinha():
print()

def tresLinhas() :
novaLinha()
novaLinha()
novaLinha()

print('Primeira Linha')
tresLinhas()
print('Segunda Linha')



Abraço


Valeu Lisandro, refiz o código baseado na sua correção e deu certo. O estranho é que no livro o print não tem o ( ) e por isso dava erro, nesse caso é algum erro do livro ou da versão do Python?




4. Re: Erro ao criar uma função

Lisandro Guerra
Lisandro

(usa Arch Linux)

Enviado em 03/01/2017 - 13:54h

edivaldojr escreveu:

Lisandro escreveu:

Olá.
Primeiro vamos falar de como postar código aqui no VOL, sempre coloque seu código entre tags code.
Faça o seguinte: antes do início do código coloque a palavra "code" dentro de colchetes [cod... ] e depois do final do cógigo a mesma palavra mas com uma barra antes [/cod... ] . OBS.: coloquei três pontinhos no local do e para que pudesse ver pois as tags somem e fica só o código.

Já editei teu código para ficar direito e podermos ver a identação. Se fores editar teu post agora vais ver como está entre tags code.

Analisando o código pude perceber que:
1) Na função novalinha() faltam os parênteses da função print - deveria ser print()
2) Depois da função treslinhas() a identação tem que voltar para a esquerda ou nada será executado pois será como as linhas seguintes ainda fizessem parte da função.

O código com estas modificações ficaria assim:


def novaLinha():
print()

def tresLinhas() :
novaLinha()
novaLinha()
novaLinha()

print('Primeira Linha')
tresLinhas()
print('Segunda Linha')



Abraço


Valeu Lisandro, refiz o código baseado na sua correção e deu certo. O estranho é que no livro o print não tem o ( ) e por isso dava erro, nesse caso é algum erro do livro ou da versão do Python?



Python 2 não usa os (), python 3 usa, pois o print passou a ser uma função.
Como nas últimas linhas tinha os () me pareceu ser Python 3. Talvez o autor ou os revisores ao transformar o livro de Python 2 para 3 tenham esquecido deste print aí .






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts