5 i + = 1 генерирует синтаксическую ошибку в цикле for

вопрос создан в Wed, May 8, 2019 12:00 AM

например.

name = 'python'
length = len(name)
i = 0
for n in range(-1,(-length-1), -1):
    print( name[i], '\t', name[n])
    i+ = 1

Я удаляю i + = 1, который генерирует семантическую ошибку. Я новичок и использую учебник по питону, предоставленный сайтом python. В основном я занимаюсь индексацией вперед и назад.

name = 'python'
length = len(name)
i = 0
for n in range(-1,(-length-1), -1):
    print( name[i], '\t', name[n])
    i+ = 1

Я ожидаю, что он выполнит вывод имени вперед, а затем назад

    
- 1
  1. Цикл не имеет значения. Эта программа завершается с ошибкой: i = 0; i+ = 1. Так что же следует изменить i+ = 1 на valid «увеличить значение переменной»? - stackoverflow.com/a/1485854/2864740
    2019-05-08 16: 08: 34Z
  2. Вместо этого выполните i += 1
    2019-05-08 16: 09: 36Z
  3. Дэвис, в следующий раз постарайся изолировать свои проблемы. Простой ввод i+ = 1 в интерпретаторе python приводит к той же ошибке, и вы уже знали, что проблема в некоторой степени связана с этим. Это хорошая техника, чтобы найти настоящую проблему.
    2019-05-08 16: 38: 38Z
  4. Помимо i += 1, вы также можете упростить цикл for @DavisPaggett
    2019-05-09 14: 42: 43Z
5 ответов                              5                         

Ваша ошибка заключается в заявлении i+ = 1, которое должно быть i += 1

Попробуйте это:

name = 'python'
length = len(name)
i = 0
for n in range(-1,(-length-1), -1):
    print( name[i], '\t', name[n])
    i += 1
    
2
2019-05-08 16: 10: 33Z

Между + и = не должно быть пробелов.

i += 1
    
2
2019-05-08 16: 10: 59Z

Вы не можете произвольно распределять пробелы в своем коде. Определенные токены, которые распознает Python, должны быть написаны именно так, как они задокументированы. Это верно, например, для class, который вы не можете написать cl a ss, и это также верно для того, что вы используете здесь, которое называется оператором. Он должен быть написан +=, точно так же, как == не может быть пробела и т. Д.

    
0
2019-05-08 16: 11: 13Z

Как уже отмечали другие комментаторы, += используется как a += b, а не a+ = b, как в случае с i+ = 1
Для простоты, и поскольку вы говорите, что вы новичок, я мог бы предложить вместо этого использовать i = i+1.

Кроме того, вы также можете упростить цикл for, используя атрибут length для расчета индекса по концу строки. range(length) - то же самое, что и range(0,length,1)

name = 'python'
length = len(name)

i = 0
for i in range(length):
    print(name[i], '\t', name[length-i-1])
    i += 1

Вывод будет

p    n
y    o
t    h
h    t
o    y
n    p
    
0
2019-05-08 16: 52: 23Z

избегайте пробелов между + и =

используйте i + = 1 вместо i + = 1

см. здесь: Поведение операторов увеличения и уменьшения в Python

    
- 1
2019-05-08 16: 31: 11Z
  1. Пожалуйста, уточните свой ответ, если можете. Я не вижу OP с использованием ,,
    2019-05-08 16: 27: 48Z
источник размещен Вот