2016-05-17 4 views
-1

В принципе, мне нужен символ ASCII, который полностью игнорируется компилятором. Не похоже на #, потому что после этого у меня есть код на линии, мне просто нужно четко обозначить некоторые вещи.Есть ли бессмысленный символ в питоне, который я мог бы использовать в качестве маркера в источнике?

Я пытаюсь написать ДЕЙСТВИТЕЛЬНО длинные уравнения в Python (Trig, Площадь сложных форм и т. Д.), И я хотел бы иметь возможность отмечать определенные круглые скобки по-разному. Например:

slantHeight = (?(math.sqrt(?((baseSideLength/2) * (baseSideLength/2)) + heightSquared)?)` 

(Вопросительные знаки должны представлять указанный символ тайны)

Я хотел бы сделать все это в одной строке, чтобы сохранить размер файла вниз. Я знаю, что могу сделать это так, и сейчас я это делаю.

halfBaseSideLength = (.5 * baseSideLength) 
halfBaseSideLengthSquared = (halfBaseSideLength * halfBaseSideLength) 
baseSideLengthSquared = (baseSideLength * baseSideLength) 
heightSquared = (height * height) 

slantHeight = (math.sqrt(halfBaseSideLengthSquared + heightSquared)) 

Но это слишком большое, особенно если у вас более двух десятков блоков, подобных этому. Поэтому я снова спрашиваю: есть ли какой-либо бессмысленный символ, ПОЛНОСТЬЮ ИСПОЛЬЗУЕМЫЙ интерпретатором Python?

+0

Можете ли вы объяснить, что ваш случай использования? Может быть, есть еще один способ получить то, что вы хотите. –

+1

Что именно вы хотите отметить? – kindall

+4

[XY Problem] (http://meta.stackexchange.com/questions/66377/what-is-the-xy-problem) – TigerhawkT3

ответ

0

По-видимому, __ является обычным и наиболее правильным способом сделать это в Python.

1

Вы можете сделать это:

slantHeight = math.sqrt(
    ( # halfBaseSideLengthSquared 
     ( # halfBaseSideLength 
      baseSideLength/2) * 
     (baseSideLength/2)) + 
    ( # heightSquared 
     height * height)) 

Или это:

def _(name, x): 
    return x 

slantHeight = math.sqrt(_('halfBaseSideLengthSquared', _('halfBaseSideLength', baseSideLength/2) * (baseSideLength/2)) + _('heightSquared', height * height)) 

Вы можете даже удалить name аргумент, так как он игнорируется, хотя я не могу видеть, как это будет чем-то помочь ,

Я рекомендую вам перестать беспокоиться о размере файла и сосредоточиться на удобочитаемости. Дополнительные линии не повредят. Что-то вроде этого:

halfBaseSideLength = (.5 * baseSideLength) 
halfBaseSideLengthSquared = (halfBaseSideLength * halfBaseSideLength) 

полезна, поскольку она уменьшает дублирование, хотя лучше всего было бы быть:

halfBaseSideLengthSquared = (.5 * baseSideLength) ** 2