Форум программистов, компьютерный форум, киберфорум
Python для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.80/5: Рейтинг темы: голосов - 5, средняя оценка - 4.80
 Аватар для supmener
87 / 95 / 15
Регистрация: 26.06.2013
Сообщений: 4,755

expandtabs()

19.01.2020, 11:33. Показов 1167. Ответов 27
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Не пойму, что тут написано в книге автора Прохоренок Самое необходимое
Миниатюры
expandtabs()  
0
 Аватар для supmener
87 / 95 / 15
Регистрация: 26.06.2013
Сообщений: 4,755
19.01.2020, 11:40  [ТС]
А, вроде табуляция после фрагмента вставляется, начал понимать.

Добавлено через 5 минут
То есть недостающие пробелы в виде разницы от 4 и количества символов.
0
1943 / 1768 / 825
Регистрация: 23.01.2014
Сообщений: 6,230
19.01.2020, 11:55
Цитата Сообщение от supmener Посмотреть сообщение
Не пойму, что тут написано в книге автора Прохоренок Самое необходимое
Там написано, что expandtabs() заменяет символ табуляции пробелом таким образом, чтобы общая ширина фрагмента вместе с текстом, расположенным перед символом табуляции, была равно указанной величине.
2
 Аватар для supmener
87 / 95 / 15
Регистрация: 26.06.2013
Сообщений: 4,755
19.01.2020, 12:43  [ТС]
Изучаю по книге от 2016 года. Что то в следующем примере получаю ошибку.
Python
1
2
3
4
5
6
7
>>> s = "\t"
>>> '%s' - '%s'" % (s.expandtabs(), s.expandtabs(4))
  File "<stdin>", line 1
    '%s' - '%s'" % (s.expandtabs(), s.expandtabs(4))
                                                   ^
SyntaxError: EOL while scanning string literal
>>>
Миниатюры
expandtabs()  
0
1943 / 1768 / 825
Регистрация: 23.01.2014
Сообщений: 6,230
19.01.2020, 12:47
Цитата Сообщение от supmener Посмотреть сообщение
Что то в следующем примере получаю ошибку.
посмотри внимательнее. особенно первый символ в строке.
0
 Аватар для supmener
87 / 95 / 15
Регистрация: 26.06.2013
Сообщений: 4,755
19.01.2020, 12:49  [ТС]
В строке под каким номером?
0
Просто Лис
Эксперт Python
 Аватар для Рыжий Лис
5973 / 3735 / 1099
Регистрация: 17.05.2012
Сообщений: 10,791
Записей в блоге: 9
19.01.2020, 13:15
Ты кавычку потерял.

Добавлено через 2 минуты
help(str.expandtabs)

expandtabs(...)
S.expandtabs(tabsize=8) -> str

Return a copy of S where all tab characters are expanded using spaces.
If tabsize is not given, a tab size of 8 characters is assumed.
0
1943 / 1768 / 825
Регистрация: 23.01.2014
Сообщений: 6,230
19.01.2020, 13:25
Цитата Сообщение от supmener Посмотреть сообщение
В строке под каким номером?
у тебя код из 2 строк состоит. попробуй обе
0
 Аватар для supmener
87 / 95 / 15
Регистрация: 26.06.2013
Сообщений: 4,755
19.01.2020, 13:53  [ТС]
Там исходники прилагаются и строка с кавычками в следующей строке. Прилипил её вот так и все равно ошибку отображает.
Python
1
'%s''%s'" % (s.expandtabs(), s.expandtabs(4))"'        ''    '"
Code
1
2
3
4
5
6
>>> '%s' - '%s'" % (s.expandtabs(), s.expandtabs(4))"'        ' - '    '"
  File "<stdin>", line 1
    '%s' - '%s'" % (s.expandtabs(), s.expandtabs(4))"'        ' - '    '"
                                                                        ^
SyntaxError: EOL while scanning string literal
>>>
0
Просто Лис
Эксперт Python
 Аватар для Рыжий Лис
5973 / 3735 / 1099
Регистрация: 17.05.2012
Сообщений: 10,791
Записей в блоге: 9
19.01.2020, 14:09
Ты даже не понимаешь, что пишешь.

Пересчитай кавычки и подумай, почему они разные (одинарные и двойные):
Python
1
2
>>> "1'%s'3" % 2
"1'2'3"
0
 Аватар для supmener
87 / 95 / 15
Регистрация: 26.06.2013
Сообщений: 4,755
19.01.2020, 15:09  [ТС]
Как понять, если рабочего примера нету. На работающем варианте должен научиться сначала.
0
Просто Лис
Эксперт Python
 Аватар для Рыжий Лис
5973 / 3735 / 1099
Регистрация: 17.05.2012
Сообщений: 10,791
Записей в блоге: 9
19.01.2020, 15:14
Кавычки не теряй и всё будет работать:
Python
1
2
3
>>> s = "\t"
>>> "'%s' - '%s'" % (s.expandtabs(), s.expandtabs(4))
"'        ' - '    '"
Тут пример перегружен. Используется и формат строки и функция expandtabs. Вопрос всё тот же: что вы хотите от функции expandtabs? Если вы не понимаете зачем она нужна - она вам не нужна.
0
 Аватар для supmener
87 / 95 / 15
Регистрация: 26.06.2013
Сообщений: 4,755
19.01.2020, 15:18  [ТС]
А как это перенести в IDE с добавлением print()?
0
Просто Лис
Эксперт Python
 Аватар для Рыжий Лис
5973 / 3735 / 1099
Регистрация: 17.05.2012
Сообщений: 10,791
Записей в блоге: 9
19.01.2020, 15:20
Как вывести строку на экран?
0
 Аватар для supmener
87 / 95 / 15
Регистрация: 26.06.2013
Сообщений: 4,755
19.01.2020, 15:25  [ТС]
А, это
Code
1
"'        ' - '    '"
отображается на экране, думал, что это вводить надо.
0
Просто Лис
Эксперт Python
 Аватар для Рыжий Лис
5973 / 3735 / 1099
Регистрация: 17.05.2012
Сообщений: 10,791
Записей в блоге: 9
19.01.2020, 15:36
Да.

В интерактивном режиме, всё, что начинается с приглашения интерпретатора (>>> или . . .) надо вводить. Если вдруг ввели выражение, то оно отобразится на экране.
0
 Аватар для supmener
87 / 95 / 15
Регистрация: 26.06.2013
Сообщений: 4,755
19.01.2020, 16:10  [ТС]
Читал, что expandtabs() по умолчанию вставляет 8 пробелов, а здесь почему то вижу одинаковое количество.

Python
1
2
3
4
5
6
>>> str = 'здесь \t табуляция'
>>> print(str)
здесь    табуляция
>>> "%s" % str.expandtabs()
'здесь    табуляция'
>>>
0
3258 / 2060 / 351
Регистрация: 24.11.2012
Сообщений: 4,909
19.01.2020, 16:50
Цитата Сообщение от supmener Посмотреть сообщение
по умолчанию вставляет 8 пробелов,
Метод вставляет не фиксирвоанное количество пробелов, а необходимое количество до ближайшего табстопа. Ширина табов по умолчанию 8. В примере все верно:
Python
1
2
3
4
       |       |      # Табстопы.
здесь → табуляция     # Исходная строка.
здесь    табуляция    # Строка с раскрытым символом табуляции.
здесь \t табуляция    # Длина исходной строки такая же из-за экранирующего слеша.
2
 Аватар для supmener
87 / 95 / 15
Регистрация: 26.06.2013
Сообщений: 4,755
19.01.2020, 17:39  [ТС]
здесь не 8
Python
1
здесь    табуляция    # Строка с раскрытым символом табуляции.
0
3258 / 2060 / 351
Регистрация: 24.11.2012
Сообщений: 4,909
19.01.2020, 17:58
Цитата Сообщение от supmener Посмотреть сообщение
здесь не 8
Python
1
2
3
4
5
 2 4 6 8 2 4 6 8
       |       |      # Табстопы.
здесь → табуляция     # Исходная строка.
здесь    табуляция    # Строка с раскрытым символом табуляции.
здесь \t табуляция    # Длина исходной строки такая же из-за экранирующего слеша.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Ответ Создать тему
Новые блоги и статьи
Установка Qt Creator для C и C++: ставим среду, CMake и MinGW без фреймворка Qt
8Observer8 05.04.2026
Среду разработки Qt Creator можно установить без фреймворка Qt. Есть отдельный репозиторий для этой среды: https:/ / github. com/ qt-creator/ qt-creator, где можно скачать установщик, на вкладке Releases:. . .
AkelPad-скрипты, структуры, и немного лирики..
testuser2 05.04.2026
Такая программа, как AkelPad существует уже давно, и также давно существуют скрипты под нее. Тем не менее, прога живет, периодически что-то не спеша дополняется, улучшается. Что меня в первую очередь. . .
Отображение реквизитов в документе по условию и контроль их заполнения
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеСпецтехники", разработанного в конфигурации КА2. Данный документ берёт данные из другого нетипового документа. . .
Фото всей Земли с борта корабля Orion миссии Artemis II
kumehtar 04.04.2026
Это первое подобное фото сделанное человеком за 50 лет. Снимок называют новым вариантом легендарной фотографии «The Blue Marble» 1972 года, сделанной с борта корабля «Аполлон-17». Новое фото. . .
Вывод диалогового окна перед закрытием, если документ не проведён
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: реализовать программный контроль на предмет проведения документа. . .
Программный контроль заполнения реквизитов табличной части документа
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: 1. Реализовать контроль заполнения реквизита. . .
wmic не является внутренней или внешней командой
Maks 02.04.2026
Решение: DISM / Online / Add-Capability / CapabilityName:WMIC~~~~ Отсюда: https:/ / winitpro. ru/ index. php/ 2025/ 02/ 14/ komanda-wmic-ne-naydena/
Программная установка даты и запрет ее изменения
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: при создании документов установить период списания автоматически. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru