while for español ejemplos ciclo bucle anidado python for-loop pycharm type-hinting python-3.6

python - español - ¿Cómo se anotan los tipos en un bucle for?



for en python 3 (4)

Esto funciona bien para mi en PyCharm (usando Python 3.6)

for i in range(5): i: int = i pass

Quiero anotar un tipo de una variable en un for -loop. Intenté esto:

for i: int in range(5): pass

Pero no funcionó, obviamente.

Lo que espero sea un trabajo de autocompletado en PyCharm 2016.3.2. Pre-anotación como esta:

i: int for i in range(5): pass

no ayuda

La anotación previa de PS funciona para PyCharm> = 2017.1


Ninguna de las respuestas aquí fue útil, excepto para decir que no puedes. Incluso la respuesta aceptada utiliza la sintaxis del documento PEP 526, que no es una sintaxis de python válida. Si intentas teclear

x: int

Verás que es un error de sintaxis.

Aquí hay una solución útil:

for __x in range(5): x = __x # type: int print(x)

Haz tu trabajo con x . PyCharm reconoce su tipo, y el autocompletado funciona.


No sé si esta solución es compatible con PEP o solo una característica de PyCharm, pero la hice funcionar así

for i in range(5): #type: int pass

y estoy usando Pycharm Community Edition 2016.2.1


Según PEP 526 , esto no está permitido:

Además, no se pueden anotar las variables utilizadas en una sentencia for o with ; se pueden anotar antes de tiempo, de manera similar a como se desempaqueta la tupla

Anótalo antes del bucle:

i: int for i in range(5): pass

PyCharm 2018.1 y versiones superiores ahora reconocen el tipo de variable dentro del bucle. Esto no era compatible con versiones anteriores de PyCharm.