Python으로 프로그래밍 배우기 — 함수 소개

Christina Morillo 님의 사진 — https://www.pexels.com/@divinetechygirl

함수는 많은 Python 프로그램의 생명선입니다. 이 할부에서 그들에 대해 모두 배우자!

이 시리즈에 대한 소개에서 우리는 파이썬의 내장 기능이 사용 : print()input(). 첫 번째는 정보를 터미널에 출력하는 데 사용되었습니다. 두 번째는 터미널에서 입력을받는 데 사용되었습니다. 이 기사에서는 Python의 내장 함수에 대해 자세히 알아 봅니다. 우리는 또한 다른 누구도 생각하지 못한 일을하는 우리만의 함수를 만들 것입니다!

어쨌든 기능이란 무엇입니까?

Wikipedia로 가서 "함수"수학적 정의를 먼저 읽은 다음 여기로 돌아와 제 단순화를 읽으십시오!

좋습니다. 함수는 인수에 대해 특정 작업을 수행하고 예측 가능한 출력을 생성합니다. 허, 그다지 간단하지 않고 다른 정의만큼 정확하지도 않습니다. 현금을 제공하는 ATM (자동 입출금기) 기계의 예를 들어 보겠습니다 (은행에서 승인 한 경우!).

ATM에는 다양한 입력 (카드, 핀 번호, 요청 된 현금 금액, 기계의 현금 사용 가능 여부 및 은행에서 인출을 승인하는지 여부)을 기반으로 돈을 제공하는 기능이 있습니다. . ATM은 이것보다 훨씬 더 복잡하지만 간단한 예제 만 있으면 괜찮습니다. ATM을 사용하여 현금을 인출 할 때마다 동일한 기능을 사용하고 있습니다. 입력이 동일하게 유지되면 출력은 예측 가능하게 동일합니다. 현금 (모든 것이 정상이면)이고 현금은 없습니다 (예 : 기계가 비어있는 경우). ATM이 무작위로 작동하면 전혀 쓸모가 없습니다.

두 숫자의 곱을 찾는 것이 함수라고 말할 수 있습니다. 두 개의 숫자를 입력 인수로 받아들이고 곱한 다음 출력이 함수이므로 제품을 반환하는 파이썬 함수입니다.

코드하자!

VS Code에서 product.py라는 새 파일을 만들고 다음 텍스트를 입력했습니다.

def product(a, b):
return a * b
print (product (2, 7))
사용자 정의 함수.

이 간단한 함수를 분석해 보겠습니다.

  • 우리는에 의해 시작 데프 파이썬 키워드를 사용하여 함수 ining def새로운 기능 정의가 바로 다음에 나타냅니다.
  • 그런 다음 함수 이름을 제공합니다 product..
  • 다음으로이 함수가 두 개의 인수를 받도록 지정합니다. a, b
  • 그런 다음 네 개의 공백을 들여 쓰기하여 2 행에서 함수의 본문을 시작합니다. 파이썬은 들여 쓰기를 많이 사용합니다. 4 개의 공백을 사용하거나 탭 문자를 4 개의 공백으로 변환하도록 편집기를 설정하여 향후 골칫거리를 피하십시오. Python 커뮤니티는 PEP-8 가이드에서이 규칙과 기타 규칙을 정의했습니다 .
  • 본문은라는 변수를 정의하고 여기 calculation에 a * b의 곱을 할당합니다.
  • 본문은 키워드 return를 사용 하여이 지점에서 종료됨을 나타내며 변수 값을 calculation함수를 호출 한 코드로 다시 반환합니다 .
  • 반환 값은로 제공됩니다 a * b. 두 인수를 곱하여 제품을 만듭니다.
  • 이 함수는 제품을 호출자에게 반환 answer하고이 값에 대해 생성 한 변수에 저장됩니다 .

answer = product (2, 7)

이 시점에서 나는 파이썬에서 함수가 호출되기 전에 그 함수를 아는 것이 정말 중요하다는 것을 언급해야합니다. 이것이 함수가이 파일에서 처음 나타나고 마지막으로 호출되는 이유입니다.

이것은 많은 단계이지만 단순화 할 수 있습니다. 단계 사이의 값을 유지하기 위해 두 개의 변수를 만들었습니다 : calculationanswer. 중간 값을 저장할 필요가 없습니다. 더 직접적 일 수도 있습니다. 다음 스크린 샷에서 a * b의 결과를 직접 반환하고 product()함수 내에서 print()함수를 직접 호출하고 있음을 알 수 있습니다. 프로그래머는 종종 동일한 결과를 생성하는 두 가지 다른 스타일 (예 : 여기)로 코드를 작성하는 방법을 선택합니다. 한 스타일은 더 읽기 쉽고 하나는 더 적은 리소스를 사용합니다.

사용자 정의 pront () 함수!

이전 게시물에서 내가 존재하지 않는 print()함수의 철자를 잘못 입력하여 구문 오류라는 버그를 도입 할 수 있었다는 사실을 기억할 수 pront()있습니다. 이제 그 pront()함수를 만들어 봅시다 ! 단일 함수에서 입력을 요청하고 출력 생성하는 작업을 모두 수행합니다.

다음은 잘리고 간결한 스타일입니다.

그리고 여기에 더 자세한 스타일의 더 긴 버전이 있습니다.

그리고 이것이 VS Code에서 어떻게 보이는지입니다.

키워드 및 위치 인수

이전 예에서는 pront()함수에 두 개의 인수를 사용했습니다 . 첫 번째 인수는 입력 프롬프트를위한 ​​것이고 두 번째 인수는 환영 메시지를 제공했습니다. 이러한 인수는 위치 적 입니다. 반전하면 결과는 거꾸로됩니다. pront()다음 코드로 함수를 호출하여 직접 시도해보십시오 .

pront ("Hello,", "Please enter your name: ")

pront (message="Hello,", prompt="Please enter your name: ")
인수 이름을 키워드로 사용

사용자 정의 함수에서 값 반환

이 게시물의 첫 번째 예에서는 return키워드를 사용 하여 함수 호출자에게 값을 반환했습니다. 그러나 두 번째 예에서는 값을 반환하는 데 pront()사용하지 않았습니다 return. 왜? 함수 작성자는 프로그래밍 스타일에 따라 함수가 반환되는 방식을 선택할 수 있습니다.

  • 항상 단일 값을 반환하는 것은 많은 사람들에게 좋은 스타일로 간주됩니다. 값을 반환하지 않거나 여러 값을 반환하는 함수는 사용하기가 더 어렵습니다. 그들은 대부분의 기능처럼 작동하지 않습니다.
  • 값을 반환하지 않는 것은 함수가 모든 것을 처리하기를 원하는 fire-and-forget 함수에 때때로 의미가 있습니다.
  • 아래에 설명 된대로 일부 시나리오에서 의미가있는 Python에서 여러 값을 반환 할 수 있습니다.

함수에서 둘 이상의 값을 반환하는 것이 언제 합리적입니까? 그것은 판단의 문제입니다. 지구 표면상의 한 지점의 위치는 지점의 위도 (북쪽 또는 남쪽 각도)와 경도 (동쪽 또는 서쪽 각도)의 두 값으로 표현할 수 있습니다. 10 진수 표기법에서 에펠 탑의 위치는 위도와 경도를 나타내는 (48.858093, 2.294694)입니다.

geolocation에펠 탑, 자유의 여신상 또는 시드니 오페라 하우스의 세 랜드 마크의 하드 코딩 된 위치 정보를 반환 할 수 있는 함수 를 정의 해 보겠습니다 .

이 함수는 곧 다룰 새로운 개념 (if, elif, else)을 도입합니다. 지금은 여기로 밀수입하고 있습니다. 현재 흥미로운 점은 return명령문이 위도와 경도 라는 두 가지 값을 단일 결과로 반환 한다는 입니다.

이 단일 결과는 자체적으로 여러 부분으로 구성된 복합 데이터 유형입니다. 이를 튜플이라고합니다. 현실 세계에서 객체의 지리적 위치는 위도와 경도의 두 부분으로 이루어진 복합입니다. 사람의 법적 이름은 종종 그 사람의 이름과 성을 포함하는 복합 데이터 유형입니다 : ( "Richard,"Quinn ") 시조의 예입니다!

파이썬 함수에서 여러 값을 반환 할 때 우리가 실제로 말하는 것은 "여러 부분으로 구성된 복합 값을 반환합니다 — 튜플"입니다.

우리는 무엇을 성취 했습니까?

축하합니다. "Python으로 프로그래밍 배우기 — 함수 소개"기사의 마지막 부분에 도달했습니다. 지금까지 수행 한 작업은 다음과 같습니다.

  • 컴퓨터 프로그램의 기능이 무엇인지 토론하십시오.
  • def키워드를 사용하여 함수를 만들었습니다 .
  • 함수에 인수로 값을 전달했습니다.
  • 함수를 호출 할 때 키워드를 사용하여 인수를 지정하는 것이 좋습니다.
  • 함수에서 호출자에게 0, 1 또는 여러 값을 반환하는 것에 대해 논의했습니다.

지금까지이 시리즈의 기사 :

Suggested posts

Python으로 차트 주석 자동 생성

Python으로 차트 주석 자동 생성

따라서 매일 업데이트되는 최신의 아름다운 대화 형 대시 보드를 만들었으며 이제 경영진은 로그인하여 자신이 원할 때마다 판매 상황을 확인할 수 있습니다. 그러나 항상 그래프를 싫어하고 보고서에 숫자를 제공하기를 원하는 사람들이 있습니다. 그들은 차트를 클릭하지 않을 것입니다.

Express.js 시작하기

Express.js 시작하기

Express는 웹 및 모바일 앱을 만드는 경험을 즐겁게 만드는 기능 세트가 포함 된 Node.js 프레임 워크입니다.

Related posts

"실용적인 프로그래머"의 5 가지 필수 사항

역대 베스트셀러 코딩 북의 요점

"실용적인 프로그래머"의 5 가지 필수 사항

Pragmatic Programmer는 1999 년에 처음 출판되었으며 이후 역대 최고의 프로그래밍 책으로 선정되었습니다. 저자 Andy Hunt와 David Thomas는 Agile Manifesto의 원저자 중 하나였으며 몇 가지 심각한 자격을 가지고 있습니다.

대규모 GraphQL 쿼리 공격으로부터 보호

공격자가 공개적으로 사용 가능한 GraphQL 인터페이스를 사용하여 사이트를 스크랩하거나 서비스 거부 공격을 실행하는 방법에 대해 알아보십시오. 이들은 4 가지 방법 중 하나로이를 수행 할 수 있습니다. 단일 대형 쿼리를 신중하게 구성하여 실행하고, 관련 데이터를 가져올 수있는 병렬 쿼리를 많이 작성하고, 일괄 요청을 사용하여 많은 쿼리를 연속적으로 실행하고, 마지막으로 많은 요청을 보냅니다.

기술 인터뷰의 사회적 구성 요소

코딩 문제는 스트레스가 많지만 스트레스에 대한 당신의 반응은 당신의 기술적 능력보다 더 크게 말합니다.

기술 인터뷰의 사회적 구성 요소

기술 업계의 직책을 위해 인터뷰 할 때 일반적으로 제안을 고려하기 전에 최소한 3 차례의 인터뷰를 거치게됩니다. 라운드는 일반적으로 다음과 같습니다. 그렇게 생각하면 잘못된 것입니다.

훌륭한 개발자의 3 가지 행동 특성

훌륭한 개발자의 3 가지 행동 특성

훌륭한 개발자를 만드는 비 기술적 인 것들 나는이 기사를 작성하는 것을 한동안 미루고 있습니다. 나는 그것을 작성할 자격이 있다고 생각하지 못했습니다. 오늘은 쓸 때라고 생각했습니다.