Строка конкатенации Python, расположенная на отдельных строках - PullRequest
0 голосов
/ 02 ноября 2018

Вот что я пробовал и получил ошибку:

a = 1
b = 2
c = 3
d = 4
e = 5

if(1):
    get = str(a) +","       #Line 1
          +str(b) +","      #Line 2
          +str(c) +","      #Line 3
          +str(d) +","      #Line 4
          +str(e)       #Line 5
else:
    get = ",,,,,"
print(get)

Ошибка:

  File "testingpython.py", line 8
    +str(b) +","      #Line 2
    ^
IndentationError: unexpected indent

Затем я пытаюсь удалить пробелы:

a = 1
b = 2
c = 3
d = 4
e = 5

if(1):
    get = str(a) +","       #Line 1
+str(b) +","      #Line 2
+str(c) +","      #Line 3
+str(d) +","      #Line 4
+str(e)       #Line 5
else:
    get = ",,,,,"
print(get)

Ошибка:

  File "testingpython.py", line 12
    else:
       ^
SyntaxError: invalid syntax

Пожалуйста, дайте мне знать, как я могу присвоить строковые значения переменной, когда они размещены в отдельных строках.

Ответы [ 2 ]

0 голосов
/ 02 ноября 2018

В Python мы обычно используем символ \, чтобы разбить один оператор на несколько строк если оператор не находится в круглых скобках, как:

result = "a" + "b" + "c" 

может быть представлен как:

result = "a" + \
         "b" + \
         "c" 

Или, если оператор с круглыми скобками, тогда нет необходимости в \ как:

result = ("a" + 
          "b" + 
          "c")
0 голосов
/ 02 ноября 2018

Самое простое решение - обернуть строки внутри паретеза, чтобы указать, что они принадлежат друг другу:

if(1):
    get = ( str(a) +","       #Line 1
          +str(b) +","      #Line 2
          +str(c) +","      #Line 3
          +str(d) +","      #Line 4
          +str(e)       #Line 5
    )
else:
    get = ",,,,,"
print(get)

Но вы можете использовать более короткий метод:

get = ','.join(str(s) for s in [a, b, c, d, e])
...