파이썬 기초 _ 고급 기능

고급 기능

  • 함수 인수와 반환 값의 역할
  • 함수의 반환 값 고급
  • 함수 매개 변수는 고급
  • 재귀 함수

함수 인수와 반환 값의 01 역할

이 기능은 매개 변수를 갖지 않는다리턴 값이 없어서 , 수 서로 결합 의 총 네 가지 종류 의 조합

  • 매개 변수없는 반환 값 없음
  • 매개 변수, 반환 값 없습니다
  • 매개 변수가 아무런 반환 값이 없습니다
  • 매개 변수, 반환 값이 있습니다

파이썬 기초 _ 고급 기능

함수를 정의, 수신 된 매개 변수인지, 결과를 반환할지 여부를 기반으로 실제 기능 요구 사항 결정!

  • 함수 경우 데이터 불확실 내부 처리 , 데이터는 내부 파라미터 함수의 외부로 전달 될 수있다
  • 당신이 함수하려는 경우 실행이 완료 외부 세계에 그 결과를보고한다 , 당신은 함수의 반환 값을 증가시킬 수있다

1.1 매개 변수없는 반환 값 없음

이러한 함수 인수는 더 값, 다음과 같은 시나리오를 반환 :

  • 그냥 단순히 하나의 일을 , 예를 들어, 메뉴를 표시
  • 함수 내부에서 전역 변수에서 작동 예를 들어, : 새 카드를 , 최종 결과는 전역 변수에 기록

참고 :

  • 글로벌 변수의 데이터 타입 인 경우 변수 타입 , 함수 내에서 사용될 수있는 방법 전역 변수의 내용을 수정하기 - 기준 변수는 변경되지 않는다
  • 함수 내에서, 할당 문을 사용 합니다 수정 변수를 참조

1.2 파라미터없이, 리턴 값

이러한 기능은 매개 변수를 수신하지만, 반환 값은 다음의 시나리오를 가지고 있지 않은 :

  • 데이터 수집, 예를 들면, 온도계 , 매개 변수를 통과 할 필요없이, 그 결과는 현재의 온도 반환

1.3 매개 변수가 아무런 반환 값이 없습니다

이러한 기능, 수신 매개 변수 없음 반환 값, 다음과 같은 경우 :

  • 내부 함수 코드에 대해, 동일하게 유지 상이한 다른 파라미터 데이터 처리
  • 같은 카드 관리 시스템 에 대한 발견 카드 않는 , 수정, 삭제 작업을

1.4 매개 변수, 반환 값이 있습니다

이러한 기능, 수신 파라미터, 리턴 값은 다음과 같은 경우 동안 :

  • 내부 함수 코드에 대해, 동일하게 유지 다른 데이터 처리 서로 다른 파라미터반환 처리 결과 원하는
  • 같은 카드 관리 시스템 은 Using 사전 기본값프롬프트 정보를 내용을 입력하라는 메시지를 표시
    • 를 입력하면, 입력 내용에 반환
    • 입력하지 않으면 기본 값 사전으로 돌아

02. 고급 함수의 반환 값

  • 프로그램 개발은, 때때로, 원하는 것 , 함수가 끝난 후 실행 호출자에게 결과를 알려 구체적인 결과에 대한 후속 치료를 할 발신자를 들어,
  • 리턴 값 의 함수 인 작업의 완료최근 의 호출에 따라서
  • 함수에서 결과를 반환 반환 키워드를 사용하여
  • 함수 호출 파티 수 있습니다 변수를 사용수신 된 함수가 반환

예 - 온도와 습도 측정

  • 동시에 할 수있는 기능을 개발한다고 가정하면 현재 온도와 습도를 반환
  • 다음과 같은 기능을 완료하기 위해 온도를 반환합니다 :
def measure():
    """返回当前的温度"""

    print("开始测量...")
    temp = 39
    print("测量结束...")

    return temp

result = measure()
print(result)
  • 의 사용 튜플 동시에 반송 온도,로 복귀하는 것이 가능하다 습도
  • 변환은 다음과 같이 :
def measure():
    """返回当前的温度"""

    print("开始测量...")
    temp = 39
    wetness = 10
    print("测量结束...")

    return (temp, wetness)

팁 : 함수는 튜플을 반환하는 경우, 괄호를 생략 할 수있다

팁 :

  • 파이썬 수있다 하는 튜플 사용 입문 동시에 할당 변수 복수
  • 참고 : 필요한 변수의 수와 일치하는 요소의 튜플의 수를
result = temp, wetness = measure()

인터뷰 질문 - 두 개의 디지털 교환

질문 질문

  • 두 정수 변수 A = 6 인 경우, b = 100이있다
  • 다른 변수를 사용하지 않고, 두 변수의 값은 교환
    다른 변수의 사용 - 방법 1
# 解法 1 - 使用临时变量
c = b
b = a
a = c

방법 2 - 임시 변수를 사용하지 않고

# 解法 2 - 不使用临时变量
a = a + b
b = a - b
a = a - b

해결 방법 3 - 파이썬 독점 사용 튜플

a, b = b, a

03. 고급 함수 매개 변수

3.1. 불변 변수 패러미터

질문 1 : 함수 내부 할당에 사용되는 매개 변수, 그것은 함수 호출의 실제 매개 변수 전달에 영향을 미치지 않습니다? - 아니!

  • 전달 된 매개 변수인지 여부 변수 또는 불변
    • 만큼 의 매개 변수 의 사용 할당 문 , 할 함수 참조 내부의 지역 변수를 수정 , 그것은 영향을주지 않습니다 외부 변수 참조
def demo(num, num_list):

    print("函数内部")

    # 赋值语句
    num = 200
    num_list = [1, 2, 3]

    print(num)
    print(num_list)

    print("函数代码完成")

gl_num = 99
gl_list = [4, 5, 6]
demo(gl_num, gl_list)
print(gl_num)
print(gl_list)

질문 2 : 전달 된 매개 변수의 경우 변수 유형을 사용하여 내부 기능, 방법을 콘텐츠 데이터를 수정할 수는, 또한 외부 데이터에 영향을 미칠 것

def mutable(num_list):

    # num_list = [1, 2, 3]
    num_list.extend([1, 2, 3])

    print(num_list)

gl_list = [6, 7, 8]
mutable(gl_list)
print(gl_list)

인터뷰 질문 - + =

  • 파이썬 호출에 변수리스트 + = 본질적 변수 목록의 방법의 구현을 확장 변수 참조를 변경하지는
def demo(num, num_list):

    print("函数内部代码")

    # num = num + num
    num += num
    # num_list.extend(num_list) 由于是调用方法,所以不会修改变量的引用
    # 函数执行结束后,外部数据同样会发生变化
    num_list += num_list

    print(num)
    print(num_list)
    print("函数代码完成")

gl_num = 9
gl_list = [1, 2, 3]
demo(gl_num, gl_list)
print(gl_num)
print(gl_list)

3.2 기본 매개 변수

  • 당신이 함수를 정의 할 때, 당신은 수있는 매개 변수에 대한 기본값을 지정하는 매개 변수는 호출되는 기본값이 기본 매개 변수
  • 당신이 함수를 호출 할 때 경우, 들어오는 기본 매개 변수 값을 지정하지, 함수 내부의 사용자 정의 함수를 사용하는 매개 변수의 기본값을
  • 함수의 기본 매개 변수 디폴트 파라미터의 공통 값함으로써 함수 호출을 단순화
    예를 들어, 상기리스트를 정렬하는 방법
gl_num_list = [6, 3, 9]

# 默认就是升序排序,因为这种应用需求更多
gl_num_list.sort()
print(gl_num_list)

# 只有当需要降序排序时,才需要传递 `reverse` 参数
gl_num_list.sort(reverse=True)
print(gl_num_list)

기본 매개 변수는 함수를 지정

  • 인수 후 할당 문을 사용하여, 당신은 매개 변수에 대한 기본 값을 지정할 수 있습니다
def print_info(name, gender=True):

    gender_text = "男生"
    if not gender:
        gender_text = "女生"

    print("%s 是 %s" % (name, gender_text))

신속한

  • 기본 매개 변수를 사용해야 하는 가장 일반적인 값을 기본값으로!
  • 매개 변수 값이 경우 확인할 수 없습니다 , 그것은 기본값으로 설정하지 말아야 당신이 외부 세계로 전달하는 함수를 호출 할 때, 특정 값을!

메모 기본 매개 변수는
위치 1) 기본 매개 변수를 정의

  • 매개 변수 목록의 마지막에 기본값으로 기본 매개 변수를 확인해야합니다
    * 따라서는, 다음의 정의가 잘못!
    데프 print_info (이름, 성별 = 참 , 제목) :

2) 여러 기본 매개 변수와 함수를 호출

  • 함수를 호출 할 때 여러 기본 매개 변수가있는 경우, 당신은 매개 변수 이름을 지정해야합니다 , 그래서 인터프리터는 매개 변수 사이의 관계를 알 수 있도록!
def print_info(name, title="", gender=True):
    """

    :param title: 职位
    :param name: 班上同学的姓名
    :param gender: True 男生 False 女生
    """

    gender_text = "男生"

    if not gender:
        gender_text = "女生"

    print("%s%s 是 %s" % (title, name, gender_text))

# 提示:在指定缺省参数的默认值时,应该使用最常见的值作为默认值!
print_info("xm")
print_info("lb", title="monitor")
print_info("xm", gender=False)

3.3 이상의 매개 변수 (알려진)

기능의 다중 매개 변수 정의에 대한 지원

  • 때때로 매개 변수의 수는 함수를 처리 할 수해야하는이 시간에, 당신은 다중 값 매개 변수를 사용할 수 있습니다, 불확실
  • 파이썬,이 다중 값 매개 변수가 있습니다 :
    • * 매개 변수 이름을 추가하는 튜플을받을 수 있습니다 전에
    • * 수신 할 수있는 사전을 두를 추가하기 전에 매개 변수 이름
  • 다중 값 매개 변수 이름이 일반적으로 할 때, 두 개의 이름을 사용에 익숙한

  • * 인수 - 앞에는 튜플 파라미터를 저장 *
  • ** kwargs로 - 사전 저장 매개 변수, 두 개의 전면이 있습니다 *
  • 인수가 약자 인자이며, 가변 의미가있다
  • kw 키워드 약어이며, kwargs로는 기억할 수있는 주요 매개 변수를
def demo(num, *args, **kwargs):

    print(num)
    print(args)
    print(kwargs)

demo(1, 2, 3, 4, 5, name="xm", age=18, gender=True)

다중 파라미터 케이스 - 디지털 컴퓨팅 및 복수

수요

  • 정수 기능하는 복수의 임의 sum_numbers 정의를 수신 할 수있다
  • 기능 요구 사항 : 전송 및 축적 된 결과에 대한 모든 수치를 반환
def sum_numbers(*args):

    num = 0
    # 遍历 args 元组顺序求和
    for n in args:
        num += n

    return num

print(sum_numbers(1, 2, 3))

튜플 포장을 풀고 사전 (노하우)

  • 다중 값 매개 변수로 함수를 호출 할 때, 당신이 원하는 경우 :
    • 튜플 변수는 인수에 직접 전달
    • 변수 사전, kwargs로 직접 전달
  • 포장 풀기는 그것이 풀고, 전송 매개 변수를 단순화 할 수 있습니다 :
    • 튜플 변수하기 전에 추가 *
    • 사전 변수 전에 *이 추가
def demo(*args, **kwargs):

    print(args)
    print(kwargs)

# 需要将一个元组变量/字典变量传递给函数对应的参数
gl_nums = (1, 2, 3)
gl_xm = {"name": "xm", "age": 18}

# 会把 num_tuple 和 xm 作为元组传递个 args
# demo(gl_nums, gl_xm)
demo(*gl_nums, **gl_xm)

04. 재귀 함수

기능 자체가 호출 프로그래밍 기술 재귀 호출을

4.1 재귀 함수를 특징

특징

  • 내부 함수는 자신을 호출
    • 이 함수는 또한 자신 호출 할 수 있습니다 내부에 내부 기능은 물론, 다른 함수를 호출 할 수 있습니다
      코드의 특징
  • 내부 기능 코드는 다른 매개 변수를 제외하고는 처리의 다른 결과 같다
  • 파라미터가 조건을 만족하면, 기능이 실행되지
    • 이것은 종종 무한 루프에있을 것, 재귀 수출을 매우 중요이라고합니다!
      샘플 코드
def sum_numbers(num):

    print(num)

    # 递归的出口很重要,否则会出现死循环
    if num == 1:
        return

    sum_numbers(num - 1)

sum_numbers(3)

파이썬 기초 _ 고급 기능

4.2 재귀 경우 -에 대한 수치를 계산하기

수요

  • 함수 sum_numbers 정의
  • 정수 변수의 NUM을 수신 할
  • 계산 1 + 2 + ...의 납입
def sum_numbers(num):

    if num == 1:
        return 1

    # 假设 sum_numbers 能够完成 num - 1 的累加
    temp = sum_numbers(num - 1)

    # 函数内部的核心算法就是 两个数字的相加
    return num + temp

print(sum_numbers(2))

파이썬 기초 _ 고급 기능

팁 : 재귀는 프로그래밍 기술, 약간의 어려움을 느낄 것이다 재귀와 초기 접촉입니다! 이 과정에서 의 불확실성의 루프 조건 예에 특히 유용는 : 전체 파일 디렉토리 구조를 트래버스

추천

출처blog.51cto.com/tobeys/2442746