> 백엔드 개발 > 파이썬 튜토리얼 > Python을 배울 때 초보자가 흔히 범하는 실수 요약

Python을 배울 때 초보자가 흔히 범하는 실수 요약

怪我咯
풀어 주다: 2017-04-06 11:48:14
원래의
1232명이 탐색했습니다.

최근에 Python을 배웠는데 이제 몇 가지 일반적인 실수를 다음과 같이 요약합니다.

1) if , elif , else , for , 끝에 넣는 것을 잊었습니다. while , class , def 문 추가됨: ("SyntaxError: 잘못된 구문" 발생) 이 오류는 다음과 유사한 코드에서 발생합니다:

if spam == 42 print('Hello!')
로그인 후 복사

2) == 대신 =를 사용합니다("SyntaxError: 잘못된 구문 발생") ") =는 대입 연산자이고 ==는 동등 비교 연산입니다. 이 오류는 다음 코드에서 발생합니다.

if spam = 42: print('Hello!')
로그인 후 복사

3) 들여쓰기를 잘못 사용했습니다. ("IndentationError: 예기치 않은 들여쓰기", "IndentationError: unindent가 외부 들여쓰기 수준과 일치하지 않습니다" 및 "IndentationError: 들여쓰기된 블록이 필요함"이 발생함) 들여쓰기 증가는 다음으로 끝나는 문 후에만 사용되며 복원되어야 함을 기억하십시오. 이후에는 이전 들여쓰기 형식으로 변경됩니다. 이 오류는 다음 코드에서 발생합니다:

print('Hello!') 
   print('Howdy!')
로그인 후 복사

또는:

if spam == 42: 
print('Hello!') 
print('Howdy!')
로그인 후 복사

또는:

 if spam == 42: 
print('Hello!')
로그인 후 복사

4) for 루프 문에서 len()을 호출하는 것을 잊었습니다(결과는 " TypeError: 'list' 개체는 정수로 해석될 수 없습니다.") 일반적으로 목록이나 문자열의 요소를 인덱스별로 반복하려고 하는데, 이를 위해서는 range() 함수를 호출해야 합니다. 목록 대신 len 값을 반환하는 것을 기억하세요. 이 오류는 다음 코드에서 발생합니다.

spam = ['cat', 'dog', 'mouse'] 
for i in range(spam): 
     print(spam[i])
로그인 후 복사

5) 문자열 값을 수정해 보십시오("TypeError: 'str' 개체는 항목 할당을 지원하지 않습니다." 발생). 문자열은 변경할 수 없는 데이터 유형입니다. 이 오류 다음과 같은 코드에서 발생합니다:

spam = 'I have a pet cat.' 
spam[13] = 'r' print(spam)
로그인 후 복사

실제로는 다음과 같이 하려고 합니다:

spam = 'I have a pet cat.' 
spam = spam[:13] + 'r' + spam[14:] print(spam)
로그인 후 복사

6) 문자열이 아닌 값을 문자열과 연결해 보십시오(결과적으로 "TypeError: Can't 변환할 수 없음). 'int' 객체를 암시적으로 str에 ") 오류는

numEggs = 12 print('I have ' + numEggs + ' eggs.')
로그인 후 복사

와 같은 코드에서 발생하며 실제로 수행하려는 작업은

numEggs = 12 print('I have ' + str(numEggs) + ' eggs.')
로그인 후 복사

또는

 numEggs = 12 print('I have %s eggs.' % (numEggs))
로그인 후 복사

7) 문자 문자열의 시작과 끝에 따옴표를 추가하는 것을 잊었습니다("SyntaxError: EOL while scanning string literal" 발생). 이 오류는 다음 코드에서 발생합니다:

print(Hello!') 或者: print('Hello!)
로그인 후 복사

또는:

myName = 'Al' print('My name is ' + myName + . How are you?')
로그인 후 복사

8) 변수 또는 함수 이름의 철자가 잘못되었습니다( "NameError: 이름 'fooba'가 정의되지 않았습니다" 발생). 이 오류는 다음 코드에서 발생합니다:

foobar = 'Al' print('My name is ' + fooba)
 或者:
spam = ruond(4.2) 
或者: 
spam = Round(4.2)
로그인 후 복사

9) 메서드 이름의 철자가 잘못되었습니다(원인: " AttributeError: 'str' 객체에 'lowerr' 속성이 없습니다." ) 이 오류는 다음 코드에서 발생합니다:

spam = 'THIS IS IN LOWERCASE.' 
spam = spam.lowerr()
로그인 후 복사

10) 참조가 목록의 최대 인덱스를 초과합니다("IndexError: 목록 인덱스가 범위를 벗어남). ") 이 오류는 다음 코드에서 발생합니다:

spam = ['cat', 'dog', 'mouse'] 
print(spam[6])
로그인 후 복사

11) 존재하지 않는 사전 키 사용("KeyError: 'spam'" 발생) 이 오류는 다음과 같은 코드에서 발생합니다:

spam = {'cat': 'Zophie', 'dog': 'Basil', 'mouse': 'Whiskers'}
print('The name of my pet zebra is ' + spam['zebra'])
로그인 후 복사

12) Python 키워드를 변수 이름으로 사용하려고 합니다("SyntaxError:잘못된 구문" 발생). Python 키를 변수 이름으로 사용할 수 없습니다. 이 오류는

class = 'algebra'
로그인 후 복사

키워드에서 발생합니다. Python3에는 다음과 같은 것들이 있습니다: 그리고, as, 주장, 중단, 클래스, 계속, def, del, elif, else, 제외, False, 마지막으로, for, from, global, if, import, in, is, 람다, None, nonlocal, not, or, pass, raise, return, True, try, while, with, Yield

13) 새 변수를 정의할 때 증분 연산자를 사용합니다("NameError: name 'foobar'가 정의되지 않았습니다" 발생). ) 변수를 선언할 때 초기 값으로 0이나 빈 문자열을 사용하지 마십시오. 스팸 += 1 문장은 스팸이 스팸을 지정해야 함을 의미합니다. 유효한 초기값. 이 오류는 다음 코드에서 발생합니다.

spam = 0 
spam += 42 
eggs += 42
로그인 후 복사

14) 로컬 변수를 정의하기 전에 함수에서 로컬 변수를 사용합니다(이때 로컬 변수와 이름이 같은 전역 변수가 있습니다)(결과적으로 "UnboundLocalError: 할당 전에 참조된 지역 변수 'foobar'") 동일한 이름을 가진 전역 변수가 있는 경우 함수에서 지역 변수를 사용하는 것은 매우 복잡합니다. 경험 법칙은 다음과 같습니다. 함수에 정의된 것이 있으면 함수에서만 사용되면 로컬 변수이고, 그렇지 않으면 전역 변수입니다. 즉, 정의하기 전에는 함수에서 전역 변수로 사용할 수 없습니다. 다음 코드에서 오류가 발생합니다.

someVar = 42 
def myFunction(): 
   print(someVar) 
   someVar = 100 
   myFunction()
로그인 후 복사

15) range()를 사용하여 정수 목록을 생성하려고 합니다("TypeError: 'range' 개체는 항목 할당을 지원하지 않습니다." 발생). 순서가 지정된 정수 목록을 얻으므로 range()가 이 목록을 생성하는 좋은 방법인 것 같습니다. 그러나 range()는 실제 목록 값이 아닌 "범위 객체"를 반환한다는 점을 기억해야 합니다. 다음 코드에서 오류가 발생합니다:

spam = range(10) 
spam[4] = -1
로그인 후 복사

아마도 이것이 당신이 원하는 것일 것입니다:

spam = list(range(10)) 
spam[4] = -1
로그인 후 복사

(참고: spam = range(10)은 Range()에서 작동하기 때문에 Python 2에서 작동합니다. Python 2에서는 목록 값을 반환하지만 Python 3에서는 위 오류가 발생합니다.

16) 오류는 ++ 또는 -- 증가 및 감소 연산자에 있습니다. ("SyntaxError:잘못된 구문" 발생) C++, Java, PHP 등 다른 언어에 익숙하다면 ++ 또는 --를 사용하여 변수를 늘리거나 줄이는 것이 좋습니다. Python에는 그러한 연산자가 없습니다. 다음 코드에서 오류가 발생합니다.

spam = 1
spam++
로그인 후 복사

이렇게 하려는 것일 수도 있습니다.

spam = 1 
spam += 1
로그인 후 복사

17)忘记为方法的第一个参数添加self参数(导致“TypeError: myMethod() takes no arguments (1 given)”) 该错误发生在如下代码中:

class Foo(): def myMethod(): 
       print('Hello!') a = Foo() a.myMethod()
로그인 후 복사


 

위 내용은 Python을 배울 때 초보자가 흔히 범하는 실수 요약의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
최신 이슈
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿