[파이썬] 고급 기능

고급 기능

함수 인수와 반환 값의 역할

  • 당신이 함수를 정의 할 때, 여부를 매개 변수를 허용하는, 또는 반환 결과 를 기반으로 실제 기능적 요구 사항 결정!
  1. 함수 경우 데이터 불확실 내부 처리 , 데이터는 내부 파라미터 함수의 외부로 전달 될 수있다
  2. 당신이 함수하려는 경우 실행이 완료되면 외부 세계에 그 결과를보고 , 당신은 함수의 반환 값을 증가시킬 수있다

고급 함수의 반환 값

  • return 당신은 반환 더 많은 데이터를 달성하고자하는 경우 사실, 하나는 당신이 "용기"를 사용할 수 있습니다, 데이터를 반환 할 수 있습니다 => 같은 파이썬 튜플로, 자바 배열을로드

함수의 리턴 값 복수

def measure():
    """
    测量温度和湿度
    :return: 同时返回温度和湿度
    """
    print("测量开始...")
    temp = 39
    wetness = 50
    print("测量结束...")
    # 元组-可以包含多个数据,因此可以使用元组让函数一次返回多个值
    # 如果函数返回的类型是元组,小括号可以省略
    # return (temp,wetness)
    return temp,wetness

# result接受的是一个元组
result = measure()
print(result)

# 如果函数返回的类型是元组,同时希望单独的处理元组中的元素
# 可以使用多个变量,一次接受函数的返回结果
gl_temp,gl_wetness = measure()

print(gl_temp)
print(gl_wetness)

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

질문 질문

  1. 두 정수 변수가 있습니다,a=6,b=100
  2. 다른 변수, 사용하지 마십시오 두 변수의 교환 가치를
a = 6
b = 100

# 解法1: 使用中间变量
temp = a
a = b
b = temp

# 解法2 : ^的运算性质,
a = a ^ b
b = a ^ b
a = a ^ b

# 解法3: Python专用
# 提示: 等号的右边是一个元组,只是把小括号省略
a, b = b, a

고급 함수 매개 변수

함수 매개 변수의 지정을

  • 함수 내에서의 사용에 대한 매개 변수 할당 문은 , 호출 기능에 영향을주지 않고 시간을 통과하는 것입니다 인수 변수를
    • 매개 변수 전달 여부 변수 또는 불변의 ,만큼 의 매개 변수 의 사용 할당 문 만합니다 함수 내부의 지역 변수를 참조 수정, 그것은 외부 변수 참조에 영향을주지 않습니다

결론은 : 할당을 위해 함수 매개 변수는 외부 세계에 영향을 미치지 않습니다,하지만 같은 이름의 새 로컬 변수를 만들

def demo(num,num_list):
    print("函数内部的代码")
    # 在函数内部,针对函数参数使用赋值语句,不会修改到外部的实参变量
    num = 100
    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)

상기 방법에 의해 가변 파라미터의 종류의 기능을 변경하려면

  • 전달 된 파라미터는 상기이면 가변 형식은 사용 내부 기능, 방법을 콘텐츠 데이터를 수정할 수는 또한 외부 데이터에 영향을 미칠 것이다

함수 파라미터를 들어, 할당은 외부 변경 될 수 없지만 의해 외부 변수의 종류에 영향을 미칠 수

def demo(num_list):
    print("函数内代码")
    # 使用方法修改列表的内容
    num_list.append(9)
    print(num_list)
    print("函数执行完成")

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

인터뷰 질문 - +=

  • 에서는 Python통화가 변수리스트, +=에센스의 구현 변수의리스트이며 extend, 가변 기준을 변경하지 않는 방법 => 통상 변수에 대한 참조를 변경하지만 + = 목록 당량 extend(), 참조리스트를 변경하지 않는다
In [1]: a = 1
In [2]: var1 = id(a)
In [3]: a += 1
In [4]: var2 = id(a)
In [5]: var1 == var2
Out[5]: False
# 上下两者是不一样的
# 前者是相加再重新赋值,后者是调用list.extend()
num_list = num_list + num_list
num += num_list
def demo(num, num_list):
    print("函数开始")
    # num += num => num = num + num
    num += num

    # 列表使用 += 不会做相加再赋值的操作!
    # num_list += num_list => num_list.extend()
    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)

기본 매개 변수

  • 당신이 함수를 정의 할 때, 당신이 줄 수있는 매개 변수 지정하는 기본 값을 매개 변수 이름의 기본 값으로, 기본 매개 변수 를 미리 인수에 결정된다 => 기본값을
  • 당신이 함수를 호출 할 때 들어오는 경우, 기본 매개 변수 값을 지정하지, 함수 내부의 사용자 정의 함수를 사용하는 매개 변수의 기본값을
  • 기본 함수 파라미터, 파라미터의 디폴트 값에 대한 공통 값을 세트 함으로써, 상기 발신 기능을 단순화

list.sort () 기본값

gl_list = [6,3,9]

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

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

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

  • 인수 후 할당 문을 사용하여, 당신은 매개 변수의 디폴트 값을 지정할 수 있습니다
# 假设班上的男生较多,所以这里使用男生作为缺省值
def print_info(name,gender=True):
    """
    :param name: 班上同学的名字
    :param gender: True 男生 False女生
    """
    gender_text = "男生"
    if not gender:
        gender_text = "女生"
    print("%s 是 %s" % (name,gender_text))

print_info("小明")
print_info("小美",gender=False)

신속한

  1. 기본 매개 변수는 필요가 사용하는 가장 일반적인 값 기본 값을! => 예를 들어gender=True
  2. 매개 변수의 값이 경우 판정 될 수없는 , 그것은 => 등! 외부로부터 전달 디폴트 값은 함수 호출의 특정 값을 설정하지 않아야 name는 각각 실질적으로 동일하지 안 기본값 설정

메모 기본 매개 변수

  1. 기본 매개 변수의 위치를 ​​정의
    • 매개 변수 목록의 마지막에 기본적으로 그 기본 매개 변수를 확인해야합니다
    • 그래서, 다음의 정의가 잘못!
    # 下面缺省函数参数的位置是错误的
    def print_info(name,gender=True,title)
  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("小明")
print_info("小美",gender=False)
print_info("老王",title="班长")

다중 값 매개 변수 (노하우)

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

  • 때로는해야 할 수도 있습니다 함수 핸들 수 매개 변수 의 수 불확실한 시간,이 시간, 당신은 사용할 수있는 다중 값 매개 변수를
  • Python가 있습니다 두 종류의 다중 값 매개 변수 :
    • 앞의 파라미터 이름을 증가 으로 허용 튜플*
    • 앞에 매개 변수 이름을 늘 * 받아 들일 수 사전
  • 다중 값 매개 변수 이름이 일반적으로 할 때, 익숙 다음과 같은 두 가지 이름을 사용하여
    • *args- 저장 튜플 파라미터 전방*
    • **kwargs- 계속 사전 매개 변수를 두 개의 전면이 있습니다*
    • args되어 arguments, 약자 변수가 의미있는, kw이다 keyword약어는, kwargs당신은 기억할 수있는 키 매개 변수를

다중 값 매개 변수

def demo(num, *args, **kwargs):
    print(num)
    print(args)
    print(kwargs)

#   num (         ) {                              }
demo(1, 2, 3, 4, 5, name="小明", age=18, gender=True)

팁 : 다중 매개 변수 응용 프로그램은 종종 네트워크에 다니엘에 의해 개발 된 몇 가지 프레임 워크 알려진 다중 값 매개 변수에 나타납니다 우리가 다니엘 코드를 읽을 수 있도록 도움

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

수요

  1. 함수의 정의는 sum_numbers받아 들일 수 정수의 수를
  2. 기능 요구 사항의 전송 디지털 축적 모든 반환 누적 된 결과
def sum_numbers(*args):
    # 打印args这个元组
    print(args)
    return sum(args)

result = sum_numbers(1,2,3,4,5)
print(result)

튜플 및 사전 풀고

  • 다중 값 매개 변수로 함수를 호출 할 때, 당신이 원하는 경우 :
    • 튜플 변수 에 직접 전달args
    • 사전 변수입니다 받는 직접 전달kwargs
  • 그것은 사용할 수 있습니다 풀고 , 단순화 된 전송 파라미터를 푸는 방식으로시를 :
    • 에서 변수 원 전 기 의 증가*
    • 에서 변수의 사전 증가 개의*
      ```파이썬
      DEF 데모 (* 인수, ** kwargs로) :
      인쇄 (인수)
      인쇄 (kwargs로)

튜플 변수 / 변수 사전

gl_tuple = (1,2,3)
gl_dict = { "이름": "小明", "나이": 18}

구문 간략화 전송 튜플 변수 / 변수 사전 풀기

데모 (* gl_tuple, ** gl_dict)

```

재귀 함수

재귀 함수를 특징

추천

출처www.cnblogs.com/Rowry/p/11832445.html