pycodestyle pep257 online nomenclatura español docstrings autopep8 python vim

pep257 - pep8 python español



Se esperan dos líneas en blanco pep8 de advertencia en python (5)

Estoy usando el editor vim como IDE de Python. A continuación se muestra un programa Python simple para calcular la raíz cuadrada de un número:

import cmath def sqrt(): try: num = int(input("Enter the number : ")) if num >= 0: main(num) else: complex(num) except: print("OOPS..!!Something went wrong, try again") sqrt() return def main(num): squareRoot = num**(1/2) print("The square Root of ", num, " is ", squareRoot) return def complex(num): ans = cmath.sqrt(num) print("The Square root if ", num, " is ", ans) return sqrt()

Y las advertencias son:

1-square-root.py|2 col 1 C| E302 expected 2 blank lines, found 0 [pep8] 1-square-root.py|15 col 1 C| E302 expected 2 blank lines, found 1 [pep8] 1-square-root.py|21 col 1 C| E302 expected 2 blank lines, found 0 [pep8]

¿Puede por favor decir por qué vienen estas advertencias?


Aquí está el enlace a la documentación: PEP8
Debe agregar dos espacios entre las funciones, como se muestra a continuación:

import cmath def sqrt(): try: num = int(input("Enter the number : ")) if num >= 0: main(num) else: complex_num(num) except: print("OOPS..!!Something went wrong, try again") sqrt() return def main(num): square_root = num**(1/2) print("The square Root of ", num, " is ", square_root) return def complex_num(num): ans = cmath.sqrt(num) print("The Square root if ", num, " is ", ans) return sqrt()


Debe proporcionar dos líneas en blanco entre bloques de código significativos.

Estos incluyen (por ejemplo):

  • El bloque de importacion
  • Cada funcion

Todas las respuestas parecen ser correctas. Para evitar hacer esto a mano, también puede usar el paquete autopep8 (pip install autopep8). El resultado de llamar a autopep8 filename.py es el mismo:

import cmath def sqrt(): try: num = int(input("Enter the number : ")) if num >= 0: main(num) else: complex(num) except: print("OOPS..!!Something went wrong, try again") sqrt() return def main(num): squareRoot = num**(1/2) print("The square Root of ", num, " is ", squareRoot) return def complex(num): ans = cmath.sqrt(num) print("The Square root if ", num, " is ", ans) return sqrt()

PD: echa un vistazo a if __name__ == "__main__":


import cmath def sqrt(): try: num = int(input("Enter the number : ")) if num >= 0: main(num) else: complex_num(num) except: print("OOPS..!!Something went wrong, try again") sqrt() return def main(num): square_root = num**(1/2) print("The square Root of ", num, " is ", square_root) return def complex_num(num): ans = cmath.sqrt(num) print("The Square root if ", num, " is ", ans) return sqrt()

Lo anterior solucionará tus problemas PEP8 . Después de su importación, debe tener 2 nuevas líneas antes de comenzar su código. Además, entre cada def foo() necesitas tener 2 también.

En su caso, tenía 0 después de la importación y tenía 1 nueva línea entre cada función. Parte de PEP8 necesita tener una nueva línea después del final de su código. Desafortunadamente, no sé cómo mostrarlo cuando pegue su código aquí.

Preste atención a los nombres, también es parte de PEP8. Cambié de complex a complex_num para evitar la confusión con el complex integrado.

Al final, solo son una advertencia, se pueden ignorar si es necesario.


with warnings:- import math def my(): print("hello world") my() Without warnings:- import math def my(): print("hello world") my()

Aquí si ve el espacio de dos líneas después de la declaración de importación para el segundo fragmento de código que no dará ninguna advertencia. Nuevamente, si está escribiendo la definición de dos métodos, tiene dos líneas de dos como espacio entre el bloque de código.