고급 기능
함수 인수와 반환 값의 역할
- 당신이 함수를 정의 할 때, 여부를 매개 변수를 허용하는, 또는 반환 결과 를 기반으로 실제 기능적 요구 사항 결정!
- 함수 경우 데이터 불확실 내부 처리 , 데이터는 내부 파라미터 함수의 외부로 전달 될 수있다
- 당신이 함수하려는 경우 실행이 완료되면 외부 세계에 그 결과를보고 , 당신은 함수의 반환 값을 증가시킬 수있다
고급 함수의 반환 값
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)
인터뷰 질문 - 두 개의 디지털 교환
질문 질문
- 두 정수 변수가 있습니다,
a=6,b=100
- 다른 변수, 사용하지 마십시오 두 변수의 교환 가치를
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)
신속한
- 기본 매개 변수는 필요가 사용하는 가장 일반적인 값 기본 값을! => 예를 들어
gender=True
- 매개 변수의 값이 경우 판정 될 수없는 , 그것은 => 등! 외부로부터 전달 디폴트 값은 함수 호출의 특정 값을 설정하지 않아야
name
는 각각 실질적으로 동일하지 안 기본값 설정
메모 기본 매개 변수
- 기본 매개 변수의 위치를 정의
- 매개 변수 목록의 마지막에 기본적으로 그 기본 매개 변수를 확인해야합니다
- 그래서, 다음의 정의가 잘못!
# 下面缺省函数参数的位置是错误的 def print_info(name,gender=True,title)
- 여러 기본 매개 변수를 사용하여 함수를 호출
- 에서 함수 호출 이있는 경우, 하나 개 이상의 기본 매개 변수를, 당신은 매개 변수 이름을 지정해야합니다 인터프리터 매개 변수 사이의 관계를 알고 할 수 있도록!
# 假设班上的男生较多,所以这里使用男生作为缺省值
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)
팁 : 다중 매개 변수 응용 프로그램은 종종 네트워크에 다니엘에 의해 개발 된 몇 가지 프레임 워크 알려진 다중 값 매개 변수에 나타납니다 우리가 다니엘 코드를 읽을 수 있도록 도움
다중 파라미터 케이스 - 디지털 컴퓨팅 및 복수
수요
- 함수의 정의는
sum_numbers
받아 들일 수 정수의 수를 - 기능 요구 사항의 전송 디지털 축적 모든 반환 누적 된 결과
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)
```