web-dev-qa-db-fra.com

attendu deux lignes vides avertissement pep8 en python

J'utilise vim editor comme IDE python. Voici un programme python simple pour calculer la racine carrée d’un nombre:

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()

Et les avertissements sont:

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]

Pouvez-vous s'il vous plaît dire pourquoi ces avertissements sont à venir?

 enter image description here

19
Amit Upadhyay
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()

La précédente résoudra vos problèmes PEP8 . Après votre importation, vous devez disposer de 2 nouvelles lignes avant de commencer votre code. En outre, entre chaque def foo(), vous devez également disposer de 2.

Dans votre cas, vous aviez 0 après l'importation et vous aviez une nouvelle ligne entre chaque fonction. Une partie de PEP8 nécessite une nouvelle ligne après la fin de votre code. Malheureusement, je ne sais pas comment le montrer quand je colle votre code ici.

Faites attention à la dénomination, cela fait également partie de PEP8. J'ai changé complex en complex_num pour éviter toute confusion avec les commandes internes complex .

En fin de compte, ils ne font qu'avertir qu'ils peuvent être ignorés si nécessaire.

33
Leb

Voici le lien vers la documentation: Guide de style PEP8 pour Python
Vous devez ajouter deux espaces entre les fonctions, comme indiqué ci-dessous:

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()
1

Vous devez donner deux lignes vides entre des blocs de code significatifs.

Ceux-ci incluent (par exemple):

  • Le bloc d'importation
  • Chaque fonction
1
Balaji Wanole
with warnings:-  
import math  
def my():  
    print("hello world")  
my()

Without warnings:-  
import math 


def my():  
    print("hello world")  
my()

Ici, si vous voyez les deux lignes espace après instruction import pour le deuxième fragment de code qui ne donnera aucun avertissement ... Encore une fois, si vous écrivez une définition de deux méthodes, vous avez deux lignes comme espace entre deux blocs. 

0
Balaji Wanole

Toutes les réponses semblent être correctes. Pour éviter de le faire à la main, vous pouvez également utiliser le package autopep8 (pip install autopep8). Le résultat de l'appel autopep8 filename.py est le même:

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()

PS: regarde at if __== "__main__":

0
serv-inc