Jump to content
Fórum Script Brasil
  • 0

Por que esse programa não funciona?


ana.bela2015

Question

Seja l uma lista de strings. Cada string contém uma frase, isto é, palavras separadas por espaços em branco. Você pode assumir que as palavras são todas escritas com letras minúsculas e que não há caracteres acentuados. Escreva código Python para imprimir a palavra com maior comprimento.

Código que fiz:

l=["ana e bela", "casa nova", "linda menina"]
def palavras (s):
s=s[primeiro_nao_branco(s):]
if s==' ': return []
l=[s[:primeiro_branco(s)]]
s=s[primeiro_branco(s):]
s=s[primeiro_nao_branco(s):]
l=l+[s[:primeiro_branco(s)]]
def primeiro_nao_branco(s):
for i in range(len(s)):
if s==' ':return i
return len(s)
def primeiro_branco(s):
for i in range (len(s)):
if s==' ': return i
return len(s)
def maior_palavra(l):
maior=' '
for s in l:
for p in palavras(s):
if len(p)>len(maior):
maior=p
return maior
print maior_palavra(l)

Link to comment
Share on other sites

1 answer to this question

Recommended Posts

  • 0

A função palavras retorna uma lista vazia apenas se s for uma string vazia, em qualquer outro caso retorna um NoneType

isso gera um erro na linha 25, onde um for tenta inteirar um NoneType

Se a função palavras retornar l ou s a função maior_palavra ainda não vai conseguir achar a palavra maior

Faça um dir(""), vai ver muitas funções de tratamento de string vai te poupar muito esforço

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.



  • Forum Statistics

    • Total Topics
      152.2k
    • Total Posts
      652k
×
×
  • Create New...