Форум программистов, компьютерный форум, киберфорум
Python для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.80/5: Рейтинг темы: голосов - 5, средняя оценка - 4.80
 Аватар для GulgDev
132 / 118 / 29
Регистрация: 09.07.2019
Сообщений: 1,071

Как получить список всех поддерживаемых интерпретатором операторов?

24.06.2020, 12:30. Показов 1195. Ответов 16
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Как взависимости от интерпретатора получить список всех поддерживаемых операторов?
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
24.06.2020, 12:30
Ответы с готовыми решениями:

Как получить список поддерживаемых языков в Google translation API V2
собственно сабж. Или как правильно отловить сообщение, что язык не поддерживается? составляю реквест, ожидаю webResponse =...

Где найти список всех поддерживаемых свойств css?
Где найти список, всех поддерживаемых браузерами свойств css списком ?

Список всех операторов Pascal
Приветствую форумчане. Нужен список всех операторов Pascal В виде Оператор | Назначение | Пример Пример: Оператор ...

16
Эксперт по компьютерным сетямЭксперт Pascal/Delphi
 Аватар для TAVulator
4191 / 1292 / 237
Регистрация: 27.07.2009
Сообщений: 3,962
24.06.2020, 13:02
Цитата Сообщение от Hyppoprogramm Посмотреть сообщение
Как взависимости от интерпретатора получить список всех поддерживаемых операторов?
посмотреть тут
0
Просто Лис
Эксперт Python
 Аватар для Рыжий Лис
5973 / 3735 / 1099
Регистрация: 17.05.2012
Сообщений: 10,791
Записей в блоге: 9
24.06.2020, 13:06
https://docs.python.org/3/reference/grammar.html

Добавлено через 2 минуты
Code
1
2
3
4
5
6
7
8
9
10
augassign: ('+=' | '-=' | '*=' | '@=' | '/=' | '%=' | '&=' | '|=' | '^=' |
            '<<=' | '>>=' | '**=' | '//=')
 
term: factor (('*'|'@'|'/'|'%'|'//') factor)*
 
power: atom_expr ['**' factor]
 
# <> isn't actually a valid comparison operator in Python. It's here for the
# sake of a __future__ import described in PEP 401 (which really works :-)
comp_op: '<'|'>'|'=='|'>='|'<='|'<>'|'!='|'in'|'not' 'in'|'is'|'is' 'not'
Добавлено через 1 минуту
Code
1
2
3
4
5
6
7
8
star_expr: '*' expr
expr: xor_expr ('|' xor_expr)*
xor_expr: and_expr ('^' and_expr)*
and_expr: shift_expr ('&' shift_expr)*
shift_expr: arith_expr (('<<'|'>>') arith_expr)*
arith_expr: term (('+'|'-') term)*
 
factor: ('+'|'-'|'~') factor | power
0
1732 / 970 / 199
Регистрация: 22.02.2018
Сообщений: 2,693
Записей в блоге: 6
24.06.2020, 14:27
Hyppoprogramm, Если Вы знаете как называется или как выглядит оператор, то его легко найти в стандартной библиотеке, так как там есть поисковая система.
Другое дело, это найти оператор, который делал бы то, что Вам нужно. Для этого искать его в списке всех существующих в питоне операторов, не лучший способ. Начинать нужно с поиска раздела, который бы соответствовал тому, что Вам нужно. Это опять же лучше в стандартной документации или в книге Лутца, используя ее как справочник. Но для поиска нужно иметь электронную версию книги. Если искать используя русские слова, то нужен русский перевод. Ну и конечно интернет.
И еще раз повторюсь, начинать нужно с поиска нужного раздела, двигаясь по дереву тематических разделов.

Добавлено через 4 минуты
Кстати у Лутца есть таблицы операторов и методов сгруппированные по использованию конкретными типами объектов. Числами, списками, словарями и так далее. Но эти таблицы требуют дополнения с учетом последних версий питона. Чем я сейчас для себя и занимаюсь, редактируя эти таблицы в своей базе данных.
0
 Аватар для GulgDev
132 / 118 / 29
Регистрация: 09.07.2019
Сообщений: 1,071
24.06.2020, 14:30  [ТС]
TAVulator, Рыжий Лис, Viktorrus, надо получить список программно!!!
0
1732 / 970 / 199
Регистрация: 22.02.2018
Сообщений: 2,693
Записей в блоге: 6
24.06.2020, 14:32
Цитата Сообщение от Hyppoprogramm Посмотреть сообщение
надо получить список программно!!!
Тогда получайте его, хотя я считаю такой список бессмыслен.
0
Просто Лис
Эксперт Python
 Аватар для Рыжий Лис
5973 / 3735 / 1099
Регистрация: 17.05.2012
Сообщений: 10,791
Записей в блоге: 9
24.06.2020, 14:42
Тогда никак. Максимум, можно узнать tokennum:
Python
1
from tokenize import OP
Добавлено через 3 минуты
Хотя можно сделать свой список, типа:
Python
1
2
if sys.version == (3,8,0):
    op_list = ('*', '@', '/', '%', '//')
Добавлено через 1 минуту
Python
1
2
>>> sys.version_info[:3] == (3, 6, 9)
True
0
 Аватар для GulgDev
132 / 118 / 29
Регистрация: 09.07.2019
Сообщений: 1,071
24.06.2020, 15:36  [ТС]
Рыжий Лис, так?
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
operators = [
    '+',
    '-',
    '*',
    '/',
    '//',
    '&',
    '|',
    '>>',
    '<<',
    '^',
    '%',
    '@',
    '~',
    '!',
    '+=',
    '-=',
    '*=',
    '/=',
    '//=',
    '&=',
    '|=',
    '>>=',
    '<<=',
    '^=',
    '%=',
    '@=',
    '!=',
    '==',
    '>',
    '<',
    '>=',
    '<=',
]
if sys.version[0] == 3 and sys.version[1] >= 8:
    operators.append(':=');
operators = tuple(operators);
Добавлено через 14 минут
Цитата Сообщение от Hyppoprogramm Посмотреть сообщение
Python
1
if sys.version[0] == 3 and sys.version[1] >= 8:
Поправочка:
Python
1
if sys.version_info[0] == 3 and sys.version_info[1] >= 8:
0
Просто Лис
Эксперт Python
 Аватар для Рыжий Лис
5973 / 3735 / 1099
Регистрация: 17.05.2012
Сообщений: 10,791
Записей в блоге: 9
24.06.2020, 15:44
Ещё:
operator.__matmul__(a, b)

Return a @ b.

New in version 3.5.
Python
1
2
3
if sys.version[0] == 3 and sys.version[1] >= 5:
    operators.append('@')
    operators.append('@=')
Добавлено через 4 минуты
Я не знаю, что бы будешь делать с этими операторами. У тебя сейчас вперемешку и унарные, и бинарные, и составного присваивания.

Добавлено через 2 минуты
** потерял
0
 Аватар для GulgDev
132 / 118 / 29
Регистрация: 09.07.2019
Сообщений: 1,071
24.06.2020, 15:49  [ТС]
Рыжий Лис, решил написать класс лексера, чтоб потом другие не мучались))
0
Просто Лис
Эксперт Python
 Аватар для Рыжий Лис
5973 / 3735 / 1099
Регистрация: 17.05.2012
Сообщений: 10,791
Записей в блоге: 9
24.06.2020, 15:55
Напомни, что там лексер делает? Разбивает текст на токены?

Добавлено через 2 минуты
Уже есть готовый: https://docs.python.org/3/libr... l#examples
0
 Аватар для GulgDev
132 / 118 / 29
Регистрация: 09.07.2019
Сообщений: 1,071
24.06.2020, 16:05  [ТС]
Рыжий Лис, а скобки ( и ) считаются операторами?

Добавлено через 2 минуты
Рыжий Лис, в моём пару дополнений:
1) Доступны лексеры для нескольких языков.
2) Есть базовый класс Lexer, который можно настраивать: добавлять ключевые слова, операторы и т.д.
3) От базового класса можно наследовать.
4) Lexer имеет функции для сброса до настроек по умолчанию, и очистки.
5) Имеет функцию unlex, позволяющюю в точности воссоздать код. (Наполовину дополнение)
0
Эксперт Python
5438 / 3859 / 1215
Регистрация: 28.10.2013
Сообщений: 9,552
Записей в блоге: 1
24.06.2020, 16:52
Оператор двоеточие, оператор троеточие, оператора скобка (фигурная или круглая), оператор запятая, оператор точка с запятой и т.д.

Есть еще куча операторов, которые твой лексер не учитывает.
И что удивительно - все они перечислены в официальной документации: https://docs.python.org/3/library/token.html

Вот что значит начинать разработку без должной подготовки.
1
1732 / 970 / 199
Регистрация: 22.02.2018
Сообщений: 2,693
Записей в блоге: 6
25.06.2020, 02:36
Hyppoprogramm, Если не секрет. Зачем Вам лексер? Некоторые используют лексер для написания на питоне своего интерпретатора. У Вас такая необходимость написать на питоне свой язык программирования? И затем создать свою среду разработки для этого ЯП? Или Вам лексер нужен для чего то другого?
0
 Аватар для GulgDev
132 / 118 / 29
Регистрация: 09.07.2019
Сообщений: 1,071
25.06.2020, 08:04  [ТС]
Viktorrus,
Цитата Сообщение от Hyppoprogramm Посмотреть сообщение
чтоб потом другие не мучались
0
Просто Лис
Эксперт Python
 Аватар для Рыжий Лис
5973 / 3735 / 1099
Регистрация: 17.05.2012
Сообщений: 10,791
Записей в блоге: 9
25.06.2020, 09:56
Писать универсальный токенайзер под все языки... ну такое...
0
Эксперт Python
5438 / 3859 / 1215
Регистрация: 28.10.2013
Сообщений: 9,552
Записей в блоге: 1
25.06.2020, 14:45
Цитата Сообщение от Viktorrus Посмотреть сообщение
Зачем Вам лексер?
Пацану 10 лет. Ну хочется ему всего и сразу... ничего, подрастет, поймет, что наколеночные велосипеды не нужны.
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
25.06.2020, 14:45
Помогаю со студенческими работами здесь

Как получить список всех пользователей ПК?
Как получить список всех пользователей на конкретной машине? Мож функция какая есть...

Как получить список всех схем?
Полный нуль в Postgres( Пытаюсь конвертировать Postgres &lt;-&gt; SQLlight. Конвертировать планирую так: 1) получаю дамп (для Postgres...

Как получить список всех пользователей и т.д.
Список пользователей домена Список групп домена Список групп локальной машины Заранее огромное спасиба!!!

Как получить список всех процессов?
Привет всем не подкажете как получить список всех процессов(не только запущенных).А потом чтобы можно было выбрать процес и запустить его.я...

Список поддерживаемых разрешений монитором
Здравствуйте. Как можно получить список разрешений экрана которое поддерживает монитор. Пробовал чере апи винды. Вот код: var...


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

Или воспользуйтесь поиском по форуму:
17
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
SDL3 для Web (WebAssembly): Работа со звуком через SDL3_mixer
8Observer8 08.02.2026
Содержание блога Пошагово создадим проект для загрузки звукового файла и воспроизведения звука с помощью библиотеки SDL3_mixer. Звук будет воспроизводиться по клику мышки по холсту на Desktop и по. . .
SDL3 для Web (WebAssembly): Основы отладки веб-приложений на SDL3 по USB и Wi-Fi, запущенных в браузере мобильных устройств
8Observer8 07.02.2026
Содержание блога Браузер Chrome имеет средства для отладки мобильных веб-приложений по USB. В этой пошаговой инструкции ограничимся работой с консолью. Вывод в консоль - это часть процесса. . .
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru