Что вызывает этот return () для создания SyntaxError? - PullRequest
1 голос
/ 17 апреля 2019

Мне нужна эта программа для создания листа в виде списка строк символов '' и распределения в нем текстовых строк (из списка). Я уже закодировал операторы возврата в Python 3, но этот продолжает давать

return(riplns)
     ^
SyntaxError: invalid syntax

Это возвращение (riplns) в строке 39. Я хочу, чтобы функция создала несколько случайных чисел (randint) внутри диапазона, построенного вокруг другого randint, исходя из функции ripimg (), которая вызывает эту функцию.

Я ясно вижу, где программа объявляет список, который я хочу, чтобы этот return () дал мне. Я знаю его тип. Я вижу, куда я передаю переменные (типа int) через .append (). Из интернет-исследований я знаю, что SyntaxErrors в функциях Python return () обычно происходит из-за опечатки, но это не так.

#loads the asciified image ("/home/userX/Documents/Programmazione/Python projects/imgascii/myascify/ascimg4")
#creates a sheet "foglio1", same number of lines as the asciified image, and distributes text on it on a randomised line

#create the sheet foglio1
def create():
    ref = open("/home/userX/Documents/Programmazione/Python projects/imgascii/myascify/ascimg4")
    charcount = ""
    field = []
    for line in ref:
        for c in line:
            if c != '\n':
                charcount += ' '
            if c == '\n':
                charcount += '*' #<--- YOU GONNA NEED TO MAKE THIS A SPACE IN A FOLLOWING FUNCTION IN THE WRITER.PY PROGRAM
                for i in range(50):#<------- VALUE ADJUSTMENT FROM WRITER.PY GOES HERE(default : 50):
                    charcount += ' '
                charcount += '\n'
        break
    for line in ref:
        field.append(charcount)
    return(field)

#turn text in a list of lines and trasforms the lines in a list of strings 

def poemln():
    txt = open("/home/gcg/Documents/Programmazione/Python projects/imgascii/writer/poem")
    arrays = []
    for line in txt:
        arrays.append(line)
    txt.close()
    return(arrays)

#rander is to be called in ripimg()
def rander(rando, fldepth):
    riplns = [] 
    for i in range(fldepth):
        riplns.append(randint((rando)-1,(rando)+1)
    return(riplns) #<---- THIS RETURN GIVES SyntaxError upon execution

#opens a rip on the side of the image.
def ripimg():
    upmost = randint(160, 168)
    positions = []
    fldepth = 52 #<-----value is manually input as in DISTRIB function.
    positions = rander(upmost,fldepth)
    return(positions)


Я пропустил остальную часть программы, я думаю, что этих функций достаточно, чтобы понять, пожалуйста, скажите мне, если мне нужно добавить больше.

1 Ответ

0 голосов
/ 17 апреля 2019

У вас есть неполный набор скобок предыдущей строки.

В этой строке: -

riplns.append(randint((rando)-1,(rando)+1)

В конце необходимо добавить еще одну фигурную скобку.Это вызывало ошибку, потому что python непрерывно считывал данные и считал, что выражение return является частью предыдущей незавершенной строки.

...