5 i + = 1 tạo ra lỗi Cú pháp trong vòng lặp for

câu hỏi được tạo ra tại Wed, May 8, 2019 12:00 AM

ví dụ:

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

Tôi xóa i + = 1 sẽ tạo ra lỗi ngữ nghĩa. Tôi là người mới bắt đầu và đang sử dụng hướng dẫn python được cung cấp bởi trang web python. Về cơ bản tôi đang thực hành lập chỉ mục tiến và lùi.

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

Tôi hy vọng nó sẽ chạy một đầu ra của tên về phía trước rồi ngược lại

    
- 1
  1. Vòng lặp không liên quan. Chương trình này không thành công: i = 0; i+ = 1. Vậy i+ = 1 nên đổi thành hợp lệ "tăng giá trị của biến"? - stackoverflow.com/a/1485854/2864740
    2019-05-08 16: 08: 34Z
  2. Làm i += 1 thay vào đó
    2019-05-08 16: 09: 36Z
  3. Davis, lần tới hãy cố gắng cách ly vấn đề của bạn. Chỉ cần gõ i+ = 1 trên trình thông dịch python cũng gây ra lỗi tương tự và bạn đã biết vấn đề có phần liên quan đến điều đó. Đây là một kỹ thuật tốt để tìm ra vấn đề thực sự ở đâu.
    2019-05-08 16: 38: 38Z
  4. Ngoài i += 1, bạn cũng có thể đơn giản hóa cho vòng lặp rất nhiều @DavisPaggett
    2019-05-09 14: 42: 43Z
5 Câu trả lời                              5                         

Lỗi của bạn nằm ở câu lệnh i+ = 1 của bạn, phải là i += 1

Hãy thử điều này:

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

Không nên có khoảng trống giữa + và =.

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

Bạn không thể tùy ý trải rộng khoảng trắng thông qua mã của mình. Một số mã thông báo mà Python nhận ra phải được viết chính xác như chúng được ghi lại. Điều này đúng với ví dụ: class mà bạn không thể viết cl a ss, và điều đó cũng đúng với những gì bạn đang sử dụng ở đây, được gọi là toán tử. Nó cần phải được viết +=, giống như cách == không thể có một khoảng trống trong đó, v.v.

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

Như các nhà bình luận khác đã chỉ ra, += được sử dụng là a += b chứ không phải a+ = b, đây là trường hợp bạn gặp phải khi thực hiện i+ = 1
Để đơn giản và vì bạn nói rằng bạn là người mới bắt đầu, tôi có thể đề nghị sử dụng i = i+1 để thay thế.

Ngoài ra, bạn cũng có thể đơn giản hóa vòng lặp for của mình bằng cách sử dụng thuộc tính length để tính chỉ số từ cuối chuỗi. range(length) giống như làm 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

Đầu ra sẽ là

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

tránh khoảng cách giữa + và =

sử dụng i + = 1 thay vì i + = 1

tham khảo tại đây: Hành vi của các toán tử tăng và giảm trong Python

    
- 1
2019-05-08 16: 31: 11Z
  1. Vui lòng làm rõ câu trả lời của bạn nếu bạn có thể. Tôi không thấy OP sử dụng ,,
    2019-05-08 16: 27: 48Z
nguồn đặt đây