Аватар для Jennea
8 / 8 / 0
Регистрация: 29.05.2011
Сообщений: 181

Сравнение строк

09.03.2015, 01:23. Показов 4405. Ответов 17
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте!

Возникла проблемка при сравнивании строк, не могу найти ошибку.
Я считываю строку из файла и смотрю если она начинается на "§", но даже если строка начинается с этого символа я получаю False.
Что я делаю не правильно?

Python
1
2
3
4
5
6
7
def par():
    f = open('Item.txt')
    string = f.read()
    if(string.startswith("§")):
        return True
    else:
        return False
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
09.03.2015, 01:23
Ответы с готовыми решениями:

Сравнение строк
Мне нужна подсказка вот у меня есть файл вида там Информация ................... запрос: { } ответ: { }

Сравнение строк
Здравствуйте, Дано: две строки которые надо по буквенно сравнить и вывести количество отличий. Не могу сообразить как сделать эту...

Попарное сравнение строк
Добрый день. Имеется файл строк. Нужно сравнить первую строку со второй, вторую с третьей и т.д. Есть участки, где две и более соседних...

17
45 / 39 / 24
Регистрация: 29.11.2013
Сообщений: 145
09.03.2015, 08:40
Jennea,
Python
1
2
3
4
5
6
7
8
9
10
11
def par():
    with open('text.txt', 'r', encoding='utf-8') as file_read:
        st_read = file_read.read()
        get_str = st_read.split('\n')
        for x in get_str:
            if(x.startswith("§")):
                print(True)
                #return True
            else:
                print(False)
                #return False
1
Эксперт NIX
 Аватар для Marinero
2796 / 2039 / 682
Регистрация: 02.03.2015
Сообщений: 6,509
09.03.2015, 12:14
Python
1
2
3
4
def par():
    with open('Item.txt', 'r', encoding='utf-8') as f:
        for line in f:
            print (line[:1] == '§')
2
 Аватар для Jennea
8 / 8 / 0
Регистрация: 29.05.2011
Сообщений: 181
09.03.2015, 15:11  [ТС]
Спасибо всем большое!!!

Добавлено через 2 часа 37 минут
Протестировала эти две функции, они мне тоже возвращают False, когда ожидаю True.
В чем еще может быть причина?
0
2742 / 2341 / 620
Регистрация: 19.03.2012
Сообщений: 8,830
09.03.2015, 15:12
файл в студию
0
 Аватар для Jennea
8 / 8 / 0
Регистрация: 29.05.2011
Сообщений: 181
09.03.2015, 15:17  [ТС]
В файле просто одна строка § string. Сохраняю как UTF-8. Но и его читая, возвращает False.
Вложения
Тип файла: txt Item.txt (12 байт, 8 просмотров)
0
 Аватар для Jennea
8 / 8 / 0
Регистрация: 29.05.2011
Сообщений: 181
09.03.2015, 15:34  [ТС]
Получаю False даже если сравниваю любые другие знаки или простые буквы. Если слово начинается с А и я сравниваю с А, возвращает False.
0
2742 / 2341 / 620
Регистрация: 19.03.2012
Сообщений: 8,830
09.03.2015, 16:07
Вся проблема в том, что после считывания файла в самом начале у него появляется пробел. По этому интерпретатор честно говорит, что первый символ не знак параграфа.
Странно, то, что если пытаться удалить пробелы из строки, они не удаляются.

В общем если создать другой файл, то все работает. Не знаю, что за магия такая с твоим файлом.

В общем вот код (в принципе почти твой):
Python
1
2
3
4
5
6
inp = open('Item.txt')
for i in inp:
    if i.startswith('§'):
        print(True)
    else:
        print(False)
и вот файл, но который я создал у себя на компе. С ним все работает как надо.
Вложения
Тип файла: txt Item.txt (9 байт, 3 просмотров)
1
 Аватар для Jennea
8 / 8 / 0
Регистрация: 29.05.2011
Сообщений: 181
09.03.2015, 17:42  [ТС]
Спасибо!

Да, действительно магия....
С Вашим файлом все работает. С моими, даже созданными заново не работает ничего))))
0
2742 / 2341 / 620
Регистрация: 19.03.2012
Сообщений: 8,830
09.03.2015, 17:52
Цитата Сообщение от Jennea Посмотреть сообщение
Да, действительно магия....
Я сам в шоке. Во 1 при считывании файла появляется лишний пробел слева и во 2 он не удаляется с помощью strip.
Мистика да и только.
0
 Аватар для Jennea
8 / 8 / 0
Регистрация: 29.05.2011
Сообщений: 181
09.03.2015, 17:57  [ТС]
Не подскажите, какой средой разработки пользуйтесь???
0
2742 / 2341 / 620
Регистрация: 19.03.2012
Сообщений: 8,830
09.03.2015, 17:59
Конечно подскажу, pycharm.
0
 Аватар для Jennea
8 / 8 / 0
Регистрация: 29.05.2011
Сообщений: 181
09.03.2015, 18:03  [ТС]
Спасибо!
Нашла источник проблемы.
Это виндовозный блокнот шалит. Когда создаю файл в NotePad++ пробел уходит и все работает.
0
2742 / 2341 / 620
Регистрация: 19.03.2012
Сообщений: 8,830
09.03.2015, 18:22
Хмм
От windows и её кривых инструментов, всегда одни проблемы...
0
Эксперт NIX
 Аватар для Marinero
2796 / 2039 / 682
Регистрация: 02.03.2015
Сообщений: 6,509
09.03.2015, 18:54
alex925, Могу ошибаться, но если открыли файл
Python
1
inp = open('Item.txt')
, то надо и закрыть.
Python
1
inp.close()
Конструкция
Python
1
with open('Item.txt',) as f:
закрывает его автоматически.
0
2742 / 2341 / 620
Регистрация: 19.03.2012
Сообщений: 8,830
09.03.2015, 19:29
Marinero, Интерпретатор его и сам закроет. Проблем с этим не было ни когда, по этому не сильно заморачиваюсь.
Про контекстные менеджеры тож вкурсе. Америку не открыл)
0
45 / 39 / 24
Регистрация: 29.11.2013
Сообщений: 145
10.03.2015, 09:48
Цитата Сообщение от alex925 Посмотреть сообщение
Я сам в шоке. Во 1 при считывании файла появляется лишний пробел
Это не пробел, а "byte order mark" http://en.wikipedia.org/wiki/B... y_encoding
Для себя вывод, лучше на будущее использовать "utf_8_sig":
Python
1
2
3
4
def par():
    with open('Item.txt', 'r', encoding='utf-8-sig') as f:
        for line in f:
            print (line[:1] == '§')
1
2742 / 2341 / 620
Регистрация: 19.03.2012
Сообщений: 8,830
10.03.2015, 14:37
Цитата Сообщение от ivsatel Посмотреть сообщение
лучше на будущее использовать "utf_8_sig":
Лучше не использовать винду и её инструменты)
Просто не ожидал такого, и в остальных редакторах не показывается, что используется utf8-bom.
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
10.03.2015, 14:37
Помогаю со студенческими работами здесь

Сравнение двух строк
Здравствуйте! Пишу очень простенькую консольную программу на Python (данный язык программирования только начал изучать), возник вопрос. ...

Не работает сравнение строк
Ребят помогите разобраться, это какой-то кошмар сижу уже часов 5 ломаю голову. Есть html документ, необходимо из него удалить...

Сравнение строк
Вася пишет программу. Программа читает два числа — x и y, преобразует их в строку или число, выполняет выражение с одной операцией...

Сравнение строк
Сортировать строки можно как по возрастанию, так и по убыванию значений в том смысле, который подразумевается при сравнении строк. На вход...

Сравнение двух строк
Даны две строки. Выведите ту их них, которая лексикографически меньше. Строки могут быть одинаковыми, тогда можно вывести любую....


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
18
Ответ Создать тему
Опции темы

Новые блоги и статьи
Подстановка значения реквизита справочника в табличную часть документа
Maks 10.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: при выборе сотрудника (справочник Сотрудники) в ТЧ документа. . .
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях. Задача: при копировании документа очищать определенные реквизиты и табличную. . .
модель ЗдравоСохранения 8. Подготовка к разному выполнению заданий
anaschu 08.04.2026
https:/ / github. com/ shumilovas/ med2. git main ветка * содержимое блока дэлэй из старой модели теперь внутри зайца новой модели 8ATzM_2aurI
Блокировка документа от изменений, если он открыт у другого пользователя
Maks 08.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в конфигурации КА2. Задача: запретить редактирование документа, если он открыт у другого пользователя. / / . . .
Система безопасности+живучести для сервера-слоя интернета (сети). Двойная привязка.
Hrethgir 08.04.2026
Далее были размышления о системе безопасности. Сообщения с наклонным текстом - мои. А как нам будет можно проверить, что ссылка наша, а не подделана хулиганами, которая выбросит на другую ветку и. . .
Модель ЗдрввоСохранения 7: больше работников, больше ресурсов.
anaschu 08.04.2026
работников и заданий может быть сколько угодно, но настроено всё так, что используется пока что только 20% kYBz3eJf3jQ
Дальние перспективы сервера - слоя сети с космологическим дизайном интефейса карты и логики.
Hrethgir 07.04.2026
Дальнейшее ближайшее планирование вывело к размышлениям над дальними перспективами. И вот тут может быть даже будут нужны оценки специалистов, так как в дальних перспективах всё может очень сильно. . .
Горе от ума
kumehtar 07.04.2026
Эта мне ментальная установка, что вот прямо сейчас, мол, мне для полного счастья не хватает (нужное вписать), и когда я этого достигну - тогда и полный кайф. Одна из самых сильных ловушек на пути. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru