> 백엔드 개발 > 파이썬 튜토리얼 > 지식을 새롭게 해보세요! 나는 Python 프로그램을 항상 느리게 만드는 여섯 가지 나쁜 습관을 사용합니다!

지식을 새롭게 해보세요! 나는 Python 프로그램을 항상 느리게 만드는 여섯 가지 나쁜 습관을 사용합니다!

WBOY
풀어 주다: 2023-04-16 17:40:03
앞으로
1451명이 탐색했습니다.

이 글에서는 Python 작성 방법의 6가지 예를 요약했습니다.

1. 루트 모듈을 가져오지 마세요

Python을 사용할 때 피할 수 없는 한 가지는 내장 모듈이든 타사 모듈이든 모듈을 가져오는 것입니다. 때로는 모듈에서 하나 또는 몇 개의 함수나 객체만 필요할 수도 있습니다. 이 경우 루트 모듈을 가져오는 대신 필요한 함수나 객체만 가져오도록 노력해야 합니다.

이것은 간단한 예입니다. 프로그램에서 일부 숫자의 제곱근을 계산해야 한다고 가정해 보겠습니다.

느린 예

지식을 새롭게 해보세요! 나는 Python 프로그램을 항상 느리게 만드는 여섯 가지 나쁜 습관을 사용합니다!

나쁜 예에서는 수학 모듈을 가져오고 math.sqrt()를 사용하여 함수에 액세스했습니다. 물론 문제는 없지만 sqrt() 함수를 가져올 수 있다면 성능이 더 좋아질 것입니다.

더 빠른 예

지식을 새롭게 해보세요! 나는 Python 프로그램을 항상 느리게 만드는 여섯 가지 나쁜 습관을 사용합니다!지식을 새롭게 해보세요! 나는 Python 프로그램을 항상 느리게 만드는 여섯 가지 나쁜 습관을 사용합니다!

2. 도트/도트 체인 사용을 피하세요

도트를 사용하는 것은 매우 직관적입니다. Python에서 개체의 속성이나 기능에 액세스합니다. 대부분의 경우에는 문제가 없습니다. 그러나 점을 사용하지 않거나 점을 연결하는 것조차 피할 수 있다면 성능은 실제로 더 좋아질 것입니다.

아래 예에서는 목록에 숫자를 추가한 다음 제거하는 방법을 보여줍니다.

더 느린 예

지식을 새롭게 해보세요! 나는 Python 프로그램을 항상 느리게 만드는 여섯 가지 나쁜 습관을 사용합니다!지식을 새롭게 해보세요! 나는 Python 프로그램을 항상 느리게 만드는 여섯 가지 나쁜 습관을 사용합니다!

더 빠른 예

지식을 새롭게 해보세요! 나는 Python 프로그램을 항상 느리게 만드는 여섯 가지 나쁜 습관을 사용합니다!지식을 새롭게 해보세요! 나는 Python 프로그램을 항상 느리게 만드는 여섯 가지 나쁜 습관을 사용합니다!

이것이 실제로 동일한 일을 한다고 믿지 않는다면 검증해 볼 수 있습니다.

지식을 새롭게 해보세요! 나는 Python 프로그램을 항상 느리게 만드는 여섯 가지 나쁜 습관을 사용합니다!

많은 Python 개발자가 뛰어내려 이 예제의 기술이 좀 우스꽝스럽다고 말할 것으로 예상됩니다. 사실 나 자신도 위와 같은 코드를 작성하는 경우는 거의 없다. 그러나 이런 방식으로 프로그래밍할 수 있고 심지어 더 빠르게 만들 수도 있다는 것을 아는 것은 좋은 일입니다.

목록에 수백만 번 추가하고 항목을 제거하려면 아마도 이 트릭을 사용하는 것을 고려해야 할 것입니다. 이것이 바로 우리가 코드의 성능과 가독성의 균형을 맞춰야 하는 이유입니다.

3. 문자열을 연결하는 데 +를 사용하지 마세요.

문자열은 Python에서 변경할 수 없습니다. 따라서 "+"를 사용하여 여러 문자열을 하나의 긴 문자열로 연결하면 각 하위 문자열이 개별적으로 작동됩니다.

느린 예

지식을 새롭게 해보세요! 나는 Python 프로그램을 항상 느리게 만드는 여섯 가지 나쁜 습관을 사용합니다!

특히 각 하위 문자열에 대해 메모리 주소를 요청한 다음 이를 해당 메모리 주소의 원래 문자열과 연결해야 하며 이는 오버헤드가 됩니다.

더 빠른 예

지식을 새롭게 해보세요! 나는 Python 프로그램을 항상 느리게 만드는 여섯 가지 나쁜 습관을 사용합니다!

그러나 Join() 함수를 사용하면 함수는 모든 하위 문자열을 미리 알고 최종 조인된 문자열에 맞는 길이로 메모리 주소를 할당합니다. 따라서 각 하위 문자열에 메모리를 할당하는 오버헤드가 없습니다.

가능하면 Join() 함수를 사용하는 것이 좋습니다. 그러나 때로는 두 개의 문자열을 연결하고 싶을 수도 있습니다. 아니면 편의상 "+"를 사용하고 싶습니다. 이러한 경우 "+" 기호를 사용하면 가독성이 향상되고 코드 길이가 줄어듭니다.

4. 값 교환을 위해 임시 변수를 사용하지 마세요

많은 알고리즘에서는 두 변수의 값 교환이 필요합니다. 대부분의 다른 프로그래밍 언어에서는 일반적으로 아래와 같이 임시 변수를 도입하여 이를 수행합니다.

느린 예

지식을 새롭게 해보세요! 나는 Python 프로그램을 항상 느리게 만드는 여섯 가지 나쁜 습관을 사용합니다!

빠른 예

하지만 Python에서는 임시 변수를 사용할 필요가 없습니다. Python에는 아래와 같이 이 값 교환을 구현하는 내장 구문이 있습니다.

지식을 새롭게 해보세요! 나는 Python 프로그램을 항상 느리게 만드는 여섯 가지 나쁜 습관을 사용합니다!

5. If-조건을 사용하여 단락

"단락" 평가는 많은 프로그래밍 언어에 존재하며 Python도 마찬가지입니다. 기본적으로 이는 첫 번째 인수가 전체 표현식의 값을 결정하는 데 충분하지 않은 경우에만 두 번째 인수가 실행되거나 평가되는 특정 부울 연산자의 동작을 나타냅니다.

예를 들어 이를 보여드리겠습니다. 다음과 같은 목록이 있다고 가정해 보겠습니다.

my_dict = [
{
'name': 'Alice',
'age': 28
},
{
'name': 'Bob',
'age': 23
},
{
'name': 'Chris',
'age': 33
},
{
'name': 'Chelsea',
'age': 2
},
{
'name': 'Carol',
'age': 24
}
]
로그인 후 복사

우리의 임무는 목록을 필터링하여 이름이 "C"로 시작하고 나이가 30세 이상인 모든 사람을 찾는 것입니다.

느린 예

동시에 충족해야 하는 두 가지 조건이 있습니다.

  • 이름은 "C"로 시작합니다.
  • Age ≥ 30 따라서 다음 코드를 작성할 수 있습니다.

지식을 새롭게 해보세요! 나는 Python 프로그램을 항상 느리게 만드는 여섯 가지 나쁜 습관을 사용합니다!

빠른 예제

이전 예제의 코드에는 아무런 문제가 없습니다. 그러나 이 특정한 가상의 예에서는 "Chris"만이 30세 이상입니다.

먼저 이름 확인 조건을 작성하면 세 명의 이름(Chris, Chelsea, Carol)이 충족됩니다. 연령에 관한 두 번째 조건은 3명의 개인 모두에 대해 다시 확인됩니다.

단, 단락 평가로 인해 연령 조건을 먼저 작성하면 크리스의 나이만 30세 이상이 되며, 이름이 "C"로 시작하는지 다시 확인하게 됩니다.

지식을 새롭게 해보세요! 나는 Python 프로그램을 항상 느리게 만드는 여섯 가지 나쁜 습관을 사용합니다!

이 경우에는 거의 100% 더 빠릅니다.

6. For 루프를 사용할 수 있다면 While 루프를 사용하지 마세요

파이썬은 성능 향상을 위해 C, 즉 CPython을 많이 사용합니다. 루프 문과 관련하여 Python의 For-Loop에는 상대적으로 적은 단계가 있으며 그 중 더 많은 단계가 While-Loop보다 C 코드로 실행됩니다.

그러므로 Python에서는 For-Loop를 사용할 수 있지만 while 루프는 사용하면 안 됩니다. 이는 Python에서 For-Loop가 더 우아할 뿐만 아니라 성능도 더 좋기 때문입니다.

느린 예

지식을 새롭게 해보세요! 나는 Python 프로그램을 항상 느리게 만드는 여섯 가지 나쁜 습관을 사용합니다!

빠른 예

지식을 새롭게 해보세요! 나는 Python 프로그램을 항상 느리게 만드는 여섯 가지 나쁜 습관을 사용합니다!

위 내용은 지식을 새롭게 해보세요! 나는 Python 프로그램을 항상 느리게 만드는 여섯 가지 나쁜 습관을 사용합니다!의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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