⇤ ← Revisão 1e 2006-11-01 16:44:08
3411
Comentário:
|
3538
|
Deleções são marcadas assim. | Adições são marcadas assim. |
Linha 7: | Linha 7: |
{{{ #!python |
|
Linha 8: | Linha 10: |
}}} | |
Linha 11: | Linha 14: |
{{{ #!python |
|
Linha 12: | Linha 17: |
}}} | |
Linha 14: | Linha 19: |
{{{ #!python |
|
Linha 21: | Linha 27: |
}}} |
|
Linha 23: | Linha 31: |
{{{ #!python |
|
Linha 24: | Linha 34: |
}}} | |
Linha 27: | Linha 38: |
>>> x , i = [], 0 >>> while 1: ... if i>10: ... break ... else: ... i = i + 1 ... x.append(i) |
{{{ #!python x , i = [], 0 while 1: if i>10: break else: i = i + 1 x.append(i) }}} |
Linha 37: | Linha 51: |
>>> x , i = [], 0 >>> while 1: ... if i>10: ... break ... else: ... i = i + 1 ... x.append(i) ... |
{{{ #!python x , i = [], 0 while 1: if i>10: break else: i = i + 1 x.append(i) }}} |
Linha 48: | Linha 64: |
>>> x , i = [], 0 >>> while i>10: ... i += 1 ... x.append(i) ... |
{{{ #!python x , i = [], 0 while i>10: i += 1 x.append(i) }}} |
Linha 54: | Linha 72: |
Ou compare Zope e J2EE. | |
Linha 58: | Linha 75: |
>>> x = {"nome": ('fulano','da vida'), | {{{ #!python x = {"nome": ('fulano','da vida'), |
Linha 61: | Linha 80: |
}}} | |
Linha 64: | Linha 84: |
>>> x = {"nome": 'fulano', "sobrenome":'da vida', | {{{ #!python x = {"nome": 'fulano', "sobrenome":'da vida', |
Linha 66: | Linha 88: |
}}} | |
Linha 70: | Linha 93: |
{{{ #!python |
|
Linha 71: | Linha 96: |
}}} | |
Linha 75: | Linha 101: |
>>> [i**2 for i in [j for j in range(10) if j%2==0]] | {{{ #!python [i**2 for i in [j for j in range(10) if j%2==0]] }}} |
Linha 79: | Linha 108: |
>>> sequencia = range(10) >>> pares = [j for j in sequencia if j%2==0] >>> [i**2 for i in pares] >>> del sequencia, pares # vamos deixar a casa limpa! |
{{{ sequencia = range(10) pares = [j for j in sequencia if j%2==0] [i**2 for i in pares] del sequencia, pares # vamos deixar a casa limpa! }}} |
Linha 86: | Linha 117: |
>>> x = [ 4, 8, 15, 16, 23, "42" ] >>> r = 0 >>> for i in x: ... if isinstance(i, basestring): ... i = int(i) ... r += i |
{{{ x = [ 4, 8, 15, 16, 23, "42" ] r = 0 for i in x: if isinstance(i, basestring): i = int(i) r += i }}} |
Linha 95: | Linha 127: |
>>> for i in x: ... try: ... r += i ... except TypeError: ... r += int(i) |
{{{ #!python for i in x: try: r += i except TypeError: r += int(i) }}} |
Linha 103: | Linha 139: |
{{{ | |
Linha 107: | Linha 144: |
}}} | |
Linha 110: | Linha 148: |
{{{ #!python |
|
Linha 114: | Linha 154: |
}}} | |
Linha 117: | Linha 158: |
{{{ #!python |
|
Linha 121: | Linha 164: |
}}} | |
Linha 123: | Linha 167: |
{{{ 1 + '1' |
|
Linha 124: | Linha 170: |
>>> 1 + '1' | |
Linha 128: | Linha 173: |
}}} | |
Linha 136: | Linha 182: |
=== Although never is often better than *right* now. === |
=== Although never is often better than right* now === |
TheZenOfPythonExplained aqui
Essa á uma adaptação de um e-mail muito divertido que o Senra enviou para a lista pythonbrasil, respondendo à pergunta do Lucas, que queria saber o significado exato de cada frase do Zen. Com o tempo e o uso, o Zen vai se tornando mais claro. Segundo o Senra: "muita vezes o Zen é contraditório. Por isso Zen tem que ser vivenciado e experimentado, qualquer explicação será incompleta. Como dizem os taoístas: o verdadeiro Tao é aquele que não pode se enunciado. "
Beautiful is better than ugly.
1 2 .__add__(1)
ou
1 2+1
Explicit is better than implicit.
- ou
1 exponenciacao(base=2, expoente=3)
Simple is better than complex.
Complex is better than complicated.
ou
Flat is better than nested.
ou
Para facilitar a resposta (quem pensou que o primeiro era + organizadinho)...
1 x["contato"][1] ou x["cel"]
Sparse is better than dense.
Readability counts.
1 [i**2 for i in [j for j in range(10) if j%2==0]]
ou
sequencia = range(10) pares = [j for j in sequencia if j%2==0] [i**2 for i in pares] del sequencia, pares # vamos deixar a casa limpa!
Special cases aren't special enough to break the rules.
x = [ 4, 8, 15, 16, 23, "42" ] r = 0 for i in x: if isinstance(i, basestring): i = int(i) r += i
ou
Although practicality beats purity.
>>> x = [ 4, 8, 15, 16, 23, "42" ] >>> r = sum(int(i) for i in x) >>> r 108
Errors should never pass silently.
Unless explicitly silenced.
In the face of ambiguity, refuse the temptation to guess.
1 + '1' Traceback (most recent call last): File "<stdin>", line 1, in ? TypeError: unsupported operand type(s) for +: 'int' and 'str'
There should be one-- and preferably only one --obvious way to do it.
Although that way may not be obvious at first unless you're Dutch.
O Guido é holandês
Now is better than never.
Although never is often better than right* now
=== If the implementation is hard to explain, it's a bad idea. ===
Pense três vezes antes de usar metaclasses
If the implementation is easy to explain, it may be a good idea.