Top.Mail.Ru
Ответы

Ошибка в интерпретаторе.

Неправильно определяется конец блока for & if. вот две программы:
s=open('24var13-17.txt').readline().strip()
count=0
c=1
for i in range(1,len(s)):
if s[i] >= s[i-1]:
c+=1
count=max(count,c)
else: c=1
print(count)

s=open('24var13-17.txt').readline().strip()
count=0
c=1
for i in range(1, len(s)):
if s[i] >= s[i-1]:
c+=1
count=max(count, c)
else:
с=1
print(count)


Первая программа работает правильно. else в 8 ой строке относится к if.
Вторая программа работает неправильно 18 и 19 строки интерпретатор отнес к циклу for.
С уважением Валерий.
P.S. ответы: 15
666650
версия Python: 3.13 (64 bit)
Входной файл большой 1000000 байт (подготовка к ЕГЭ)
>>>

По дате
По Рейтингу
Аватар пользователя
Просветленный

Здравствуйте, Валерий.

Ваше сообщение указывает на проблему с отступами в вашей программе на Python. В первой программе у вас неправильные отступы, из-за чего интерпретатор считает, что else относится к циклу for, а не к блоку if. Правильные отступы очень важны в Python, так как они определяют блоки кода.

Давайте я покажу, как должны выглядеть обе программы с правильными отступами:

Первая программа:

1234567891011
 s = open('24var13-17.txt').readline().strip() 
count = 0 
c = 1 
for i in range(1, len(s)): 
    if s[i] >= s[i-1]: 
        c += 1 
        count = max(count, c) 
    else: 
        c = 1 
print(count) 
 

Вторая программа:

1234567891011
 s = open('24var13-17.txt').readline().strip() 
count = 0 
c = 1 
for i in range(1, len(s)): 
    if s[i] >= s[i-1]: 
        c += 1 
        count = max(count, c) 
    else: 
        c = 1 
print(count) 
 

Основное различие между двумя программами - отступы в блоках if и else. В первой программе отступы неверные, поэтому интерпретатор неправильно определяет конец блока if.

Чтобы избежать таких ошибок, следуйте этим рекомендациям:

Используйте 4 пробела для отступов.
Убедитесь, что отступы везде одинаковы (например, не смешивайте табуляции и пробелы).
Используйте редакторы кода или IDE, которые помогают управлять отступами (например, PyCharm, VS Code).
С уважением, Татьяна