2015-11-01 12 views
15

używam edytora vim jako IDE Pythona, poniżej znajduje się prosty program python obliczyć pierwiastek kwadratowy z liczby: - ​​oczekiwane dwie puste linie pep8 ostrzegawczy w Pythonie

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

i ostrzeżenia są: -

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] 

Czy możesz powiedzieć, dlaczego te ostrzeżenia nadchodzą?

enter image description here

+1

https://www.python.org/dev/peps/pep-0008/#blank-lines – Jasper

Odpowiedz

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

Poprzedniego rozwiąże swoje problemy PEP8. Po imporcie musisz mieć 2 nowe linie przed uruchomieniem kodu. Ponadto, między każdym def foo() musisz mieć również 2.

W twoim przypadku miałeś 0 po imporcie, a między każdą funkcją był 1 nowy wiersz. Część PEP8 musisz mieć znak nowej linii po końcu twojego kodu. Niestety nie wiem jak to pokazać po wklejeniu kodu tutaj.

Zwróć uwagę na nazwę, jest również częścią PEP8. Zmieniłem complex na complex_num, aby zapobiec nieporozumieniom z wbudowanym complex.

W końcu są tylko ostrzeżeniem, mogą zostać zignorowane w razie potrzeby.

0

Ponieważ pyton ściśle przestrzega języka. Powinieneś podać dwie spacje po każdym imporcie oraz blok kodu.

+0

można dostarczyć próbka wizualizująca to, co mówisz? –

1

Oto link do dokumentacji: PEP8 Style Guide for Python
Należy dodać dwie przestrzenie między funkcjami, jak pokazano poniżej:

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

Powinieneś podać mały fragment lub składnię tego, jak to napisać. – anu

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

Without warnings:- 
import math 


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

Tutaj jeśli widzisz przestrzeni dwóch liniach po instrukcji import dla drugiego fragmentu kodu, który nie daje żadnych ostrzeżeń. Ponownie, jeśli piszesz dwie definicje metod, masz dwie linie jako spację między blokiem kodu.

0

Wszystkie odpowiedzi wydają się być poprawne. Aby tego uniknąć ręcznie, możesz również użyć autopep8 package (pip install autopep8). Wynikiem wywoływania autopep8 filename.py jest taka sama:

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: have a look na if __name__ == "__main__":

Powiązane problemy