2013-05-14 5 views
-5

Il est supposé attribuer certains numéros de ligne à la variable, puis l'affecter à la variable globale, puis l'imprimer.Quel est le problème avec ce code?

bookStartLine = None 
bookEndLine = None 


def grabLine(currentUrl): 

    ### blah blah defines what lines is 
    index=0 
    for line in lines: 
     index+=1 
     if "*** START OF THE PROJECT" in line: 
      currentBookStartLine = index 
     if "*** END OF THE PROJECT" in line: 
      currentBookEndLine = index 


    global bookStartLine 
    global bookEndLine 

    bookStartLine = currentBookStartLine 
    bookEndLine = currentBookEndLine 


grabline('http://www.gutenberg.org/cache/epub/768/pg768.txt') 

print(bookStartLine) 
print(bookEndLine) 
+0

"? Quel mal avec ce code" - essayez de le déboguer ... –

+0

Je ne suis pas sûr de savoir comment faire cela. Je suis assez nouveau pour ça. aucun conseil?? – Deivore

+0

Les débutants commencent généralement avec des instructions d'impression. Utilisez print() pour afficher diverses valeurs de variables et identifier le problème. –

Répondre

0

Essayez

global bookStartLine 
global bookEndLine 


def grabLine(currentUrl): 
    ### blah blah defines what lines is 
    currentBookStartLine,currentBookEndLine = False,False #needed to define these before use below 
    for index,line in enumerate(lines,start=1): #start = 1 so index gets 1 on first iteration 
     if "*** START OF THE PROJECT" in line: 
      currentBookStartLine = index 
     if "*** END OF THE PROJECT" in line: 
      currentBookEndLine = index 

    bookStartLine = currentBookStartLine 
    bookEndLine = currentBookEndLine 


grabLine('http://www.gutenberg.org/cache/epub/768/pg768.txt') #grabLine not grabline 

print(bookStartLine) 
print(bookEndLine) 
+0

Merci pour ça! Mais quand je fais ces changements au code je continue à juste imprimer "Faux" pour ces 2 variables ... – Deivore

+0

@Deivore désolé, a oublié de remplacer '['s', 's']' avec 'lines'. Comme je n'avais pas de lignes définies, j'ai simplement ajouté cela pour tester. – HennyH

+0

ce qui m'a donné: TypeError: Type str ne supporte pas le tampon API – Deivore

0

Ce code est un gâchis stonking:

import urllib.request 

bookName  = None 
authorName = None 
bookStartLine = None 
bookEndLine = None 


def parser(currentUrl): #parses texts to extract their title, author, begginning line and end line 
    global bookName 
    global authorName 
    global bookStartLine 
    global bookEndLine 
    global url 

    url = 'http://www.gutenberg.org/cache/epub/1232/pg1232.txt' #machiaveli 
    url = currentUrl  
    book = urllib.request.urlopen(url) 
    lines = book.readlines() 
    book.close() 

    finalLines = [line.decode()[:-2] for line in lines] 


    for line in finalLines: 
     if "Title" in line: 
      currentBookName = line[7:len(line)] 
      break 
    for line in finalLines: 
     if "Author" in line: 
      currentAuthorName = line[8:len(line)] 
      break 
    currentBookStartLine,currentBookEndLine = False,False 

    for index,line in enumerate(line,start=1): 
     if "*** START OF THE PROJECT" in line: 
      currentBookStartLine = index 

     if "*** END OF THE PROJECT" in line: 
      currentBookEndLine = index 



    url   = currentUrl 
    bookName  = currentBookName 
    authorName = currentAuthorName 
    bookStartLine = currentBookStartLine 
    bookEndLine = currentBookEndLine 


parser('http://www.gutenberg.org/cache/epub/768/pg768.txt') #wuthering heights 
print(url) 
print(bookName) 
print(authorName) 
print(bookStartLine) 
print(bookEndLine)