LINUX.ORG.RU

python «паскаль современности» со всеми + и -

 


0

0

пусть есть список l=[t0,t1,.....,tн] гдн н+1=len(l) и ti - кортеж и кортежи равной длины

при любом len(ti): [ F(t) for t in l if ...]

при len(ti)==L>1 не теряя общьности пусть L==2 возможна запись [ F(a,b) for а,b in l if ...]

синтаксис улучшен для пользователя как следстиве неразличимо при одноэлиментном кортеже - мы обращаемся к элементу списка или к единственному элементу кортежа (питон парсит как обращение к элементу списка)

т.е нехватает скобок в клаузе for что бы различать случай L==1 и обращение к элементу списка как к целому и к полю элемента списка

for Lскобка а Rскобка in l

for t in l

т.е насколько намерено специальные случаи синтаксиса способствуют успеху среди пользователей и «услjжняют» парсер специальными случаями

какие ещё в питоне есть специальные случае в которых пошли на намереное уменьшение общьности правил?

★★☆
In [1]: [ x for x in [(1,),(2,)]]
Out[1]: [(1,), (2,)]

In [2]: [ x for (x,) in [(1,),(2,)]]
Out[2]: [1, 2]

P.S. Моя твоя не понимай. Гадаю на кофейной гуще

anonymous
()
Ответ на: комментарий от dave

ты не понял.

я обратил своё и окружающих внимание что в питоне нет простой формы для unpack одноэлементных составных элементов обьемлющего составного экземляра т.е [(1,),(2,),(3,)] just that в сравнении с [(1,2),(3,4)] и т.п.

из этого вопрос где ещё у питона сделано упрощение использования с нарушением обьщности(логичности)

qulinxao ★★☆
() автор топика

акася макася питона не паскаля современности, паскаkь НЕ НЕ НЕ может и НЕ НЕ НЕ Скрывает низкий уровень программирования глупо не говорил си if (foo_bar) паскаль if foo_bar вот нафига так же как и Стол.

qnikst ★★★★★
()

какие ещё в питоне есть специальные случае в которых пошли на намереное уменьшение общьности правил?

Мне не нравится синтаксис переменных в питоне. К примеру, нужно писать так:

doorway = "http" + "://" + "example.com" + "/...html"

В то время, как во всех правильных языках, можно написать так:

$doorway = "http" . "://" . "example.com";

Так лучше смотрится. Не правда ли?

p.s. ты ведь это имел в виду?

anonymous
()
Ответ на: комментарий от qnikst

в паскале then в си открывающая скобка в условии избыточна

qulinxao ★★☆
() автор топика

короче, в общем случае Гвидо не вводил сложные для парсинга конструкции чтобы не усложнять парсер.

Хотя сейчас мне кажется это не совсем правильным, но парсер у питона написан руками, поэтому девелоперов можно понять.

true_admin ★★★★★
()
Ответ на: комментарий от anonymous

ТС тебя заразил.

3. Быстро сообразить, что надо делать в данном затруднении, не растеряться. Такой человек найдется при всяких обстоятельствах. Я не нашелся, что ответить. ведь вы будете, как пень, стоять перед ними, ведь вы не найдетесь. Достоевский.

http://dic.academic.ru/dic.nsf/ushakov/870778

korvin_ ★★★★★
()

А перевод на русский язык будет?

pevzi ★★★★★
()

O_O Вы мне парсер заклинили...

>>> [ a for a, in [(1,)] ]
[1]
>>> [ a for a in [(1,)] ]
[(1,)]

какие ещё в питоне есть специальные случае в которых пошли на намереное уменьшение общьности правил?

Там нет таких случаев. Приведенный Вами случай читается совершенно однозначно, вообще в питоне синтаксис удивительно однозначен (хотя добавление одной запятой может кардинально изменить ситуацию).

AIv ★★★★★
()
Ответ на: комментарий от AIv

про первое синтаксис о котором я не знал (не догодался запятую в шаблон добавин для матчинга)

python «паскаль современности» со всеми + и - (комментарий)

по второму : пример и говорит что скобки(при случае когда элемент составной и состаит больше чем из 1 части) опущены

дык концевая запая влияет только в случае одноэлементного элимента в иных слачаях она пробельный_символ - что несколько смущает не такли?

qulinxao ★★☆
() автор топика

python «паскаль современности»

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

anonymous
()
Ответ на: комментарий от qulinxao

дык концевая запая влияет только в случае одноэлементного элимента в иных слачаях она пробельный_символ - что несколько смущает не такли?

Не так. Если элементы разделены запятыми, и это не аргументы ф-ии - это кортеж. Если элемент один, и это элемент кортежа единичной длины - запятая ставится после элемента (если элементов несколько, то запятую в конце можно не ставить, поскольку и так ясно что это кортеж). Именно запятая, а не скобки - скобки используются для группировки операций в выражении.

AIv ★★★★★
()
Ответ на: комментарий от gadfly

В голове нормального человка 1 + 1 равно 2, а не 11

у него в голове не может быть случая

numeric binary_operator numberic = string

такое может быть только при болезни 'гуманитарий головного мозга'.

mashina ★★★★★
()

ser ebcnta

Pascal современности - это CL и LispWorks PE. /thread

anonymous
()
Ответ на: комментарий от anonymous

Кстати, товарищи! Если кому не понятно, то я решил пошутить. Пошутил неудачно, признаюсь. Не надо вестись на такую глупую шутку. Вообще смешно как некоторые питон-погроммисты, они же жертвы линукса, в серьез начили что-то доказывать. Это просто аутизм какой-то. Простите, не удержался.

anonymous
()
Ответ на: комментарий от anonymous

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

gadfly ★★
()
Ответ на: комментарий от gadfly

Динамическая, но строгая? Изврат какой-то.

Никакого изврата, все правильно.

korvin_ ★★★★★
()

Еднроббразие сентаскеса - всего лишь сказки эстетствующей лисполюбивой элитоты. Антсощие поргамстs ен обращают внимание на такий малозанчимые вьэстчи, и им всё равно нарву по строчить мигабайты кода на дажва.

aedeph_ ★★
()
Ответ на: комментарий от Virtuos86

Есть мнение, что это характеризует Alv, а не Python.

aedeph_ ★★
()
Ответ на: комментарий от aedeph_

[шмардыквак] Так же, как и в for. Там никакой неоднозначности, очевидной по крайней мере, не должно возникать при парсинге.
Или нет?
Я говорю про то, что запись
1, 2
не обозначена скобками как кортеж.

Virtuos86 ★★★★★
()
Ответ на: комментарий от AIv

или даже

from pprint import *
[ pprint(x) for x in 1, 2 ]

AIv ★★★★★
()
Ответ на: комментарий от AIv

Вы читали мой последний комментарий?
Речь не о том, как напечатать на экране из той лабуды, кот. на русский даже толком перевести не могут :-).
Я почему-то считал, что запись
for i in 1,2,3: ...
допускается синтаксисом, а
[i for i in 1,2,3]
нет, и нужно обязательно указывать скобки (что, в общем-то, и так почти всегда нужно делать):
[i for i in (1,2,3)]

На какой версии я это проверял не помню, на 2.5 что ли, там не работало.

Virtuos86 ★★★★★
()
Ответ на: комментарий от Virtuos86

А... я не понял, решил что Вы на ограничения выражения в генераторе жалитесь;-)

Со скобками - я сам до недавнего времени думал, что они нужны везде кроме распаковки кортежей. А оказывается, можно даже так:

arr = {}
...
arr[i, j, k] = ...
AIv ★★★★★
()
Ответ на: комментарий от AIv

А вот это решение уже похуже выглядит, неочевидно.
От такой записи ждешь что-то вроде многомерного массива, типа как паскалевских записях.
А это лишь сахар для указания кортежа как ключа словаря.

Virtuos86 ★★★★★
()
Ответ на: комментарий от Virtuos86

Так словарь это и есть многомерный массив (в частности), причем при необходимости разреженный;-)

AIv ★★★★★
()
Ответ на: комментарий от Deleted

ага если секас предмет мед.академии - то он не практичен о как.

qulinxao ★★☆
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.