2018-10-10day9 함수기초
copy.복사 (대상): 얕은 복사 복사 복사.deepcopy(개체): 딥 카피 """
"""복사: 변수의 값을 한 부 부여하여 새로운 데이터를 생성합니다. 그리고 새로운 데이터에 대응하는 주소를 얕은 복사로 되돌려줍니다. 주소를 직접 복사합니다(절편과 사전 목록의copy 방법은 모두 얕은 복사입니다) 깊은 복사: 주소에 대응하는 값을 복사하여 새로운 값을 생성합니다"""
a1 = [1,2]
a2 = {'a':10}
list1 = [a1,a2]
list2 = list1.copy()
list3 = copy.deepcopy(list1)
list2.append(1)
list3.append(1)
print(list2)
print(list3)
list2[0].append(3)#
list3[0].append(3)#
print(list2)
print(list3)
2. 사전과 목록의 응용
목록의 요소와 사전은 모든 종류의 데이터일 수 있습니다
""1. 목록에 사전이 있습니다
persons = [
{'name':' ','age':30,'sex':' '},
{'name':' ','age':58,'sex':' '},
{'name':' ','age':40,'sex':' '}
]
print(persons)
print(persons[1]['name'])
페르소나에서 가장 나이가 많은 사람의 이름을 찾아내세요.
age = 0
max1 = 30
for x in range(0,len(persons)):
age = persons[x]['age']
if age > max1:
max1 =age
name = persons[x]['name']
print(name,max1)
2. 사전에 프로그램 하나를 작성하여 한 학급의 정보를 저장하고 학급명, 위치를 포함하여 모든 학생(학생 중 이름, 연령을 저장해야 함)
my_class = {
'class_nmae':'py1807',
'location':'18-6',
'all_stu':[
{'name': 'xiaohua', 'age':18, 'school': ' '},
{'name': 'xiaohong', 'age': 20, 'school': ' '},
{'name': 'xiaoming', 'age': 17, 'school': ' '}]
}
print(my_class['all_stu'][0]['school'])
연습: 반에 학생 한 명을 추가, 이름: 왕씨, 나이: 40, 학습: 북대청조
name = input(' :')
age = input(' :')
school = input(' :')
new_dict = {'name':name,'age':age,'school':school} my_class['all_stu'].append(new_dict)
print(my_class['all_stu'])
연습2: 반에서 20세 미만의 학생 삭제
:
all_stu = my_class['all_stu']
for student in all_stu[:]:
if student['age'] < 20:
all_stu.remove(student)
print(my_class)
:
index = 0
while index < len(all_stu):
student = all_stu[index]
if student['age'] < 20:
del all_stu[index]
continue
index += 1
print(my_class)
3. 함수의 매개 변수
1. 위치 매개 변수와 키워드 매개 변수''전달: 일정한 위치 매개 변수: 인삼의 순서에 따라 인삼에게 일일이 값을 부여한다. 키워드 매개 변수: 인삼 1=값 1, 인삼 2=값 2...'""
def func1(a,b,c):
print('a:', a, 'b', b, 'c', c,)
위치 매개 변수func1(10,20,30) 키워드 매개 변수func1(c=300,a=200,b=100)
2. 기본 함수''''함수 성명할 때 매개 변수에 기본값을 설정할 수 있지만 기본값이 있는 매개 변수는 매개 변수 목록의 마지막에 기본값이 있는 매개 변수에 놓아야 하며 호출할 때'''''
def func2(a,c,b=0):
print('a:', a, 'b', b, 'c', c,)
# a=10 c=20
func2(10,20)
# a=100 c=200 b=300
func2(100,200,300)
def func3(a=10,c=30,b=20):
print('a:', a, 'b', b, 'c', c,)
func3(a=100,b=200)
func3(100,b=200)
3. 부정확한 길이 매개 변수 ""매개 변수의 개수가 확실하지 않을 때, 이 매개 변수를 하나의 원조로 만들어 여러 개의 매개 변수의 주의를 받을 수 있다. 만약 함수에 여러 개의 매개 변수가 있다면, 부정확한 길이 매개 변수는 마지막 ""에 함수를 쓰고 여러 개의 수의 합을 계산해야 한다.
def my_sum(*nums):
print(nums)
my_sum(1)
my_sum(1,2)
my_sum(1,2,3,4)
my_sum()
def func4(name,age,*scores):
print(scores,name,age)
func4('xiaohua',89,18,6546,65)
4. 함수 선언
""함수는 특정한 기능을 실현하는 코드 세그먼트에 대한 봉인이다
분류: 사용자 정의 함수(프로그래머의 생명으로 이루어진 기능)와 내장 함수(시스템 및 성명 완성)
1. 함수를 설명하는 문법 def 함수 이름(매개 변수 목록): 함수체
설명: a, def -->python에서 함수를 설명하는 키워드 b. 함수 이름 --> 식별자, 키워드가 될 수 없습니다.PEP8명명명규범(모든 알파벳 소문자, 여러 단어 사이 사용 분리)을 준수하여 명지의(이름 보고 함수 아는 기능) c.()-->고정형식 d. 매개 변수 목록 -->형삼 목록, 매개 변수 이름 1, 매개 변수 이름 2,...여러 개의 매개 변수가 있을 수도 있고, 함수의 외부에서 함수에 값을 전달하는 데 사용되는 e.:-->고정 형식 f. 함수체 -->가 함수 기능을 실현하는 코드 세그먼트가 없을 수도 있다
2. 초보자가 함수를 설명하는 절차
a. 함수를 확정하는 기능 b. 기능에 따라 함수 이름 c. 매개 변수 확정: 있는지 없는지 확인하고 몇 개 (함수를 실현하는 기능이 함수 밖에서 값을 전달할 필요가 있는지 없는지를 보고 몇 개 전달해야 하는지) d. 함수 기능 e. 반환값을 확정한다.
3. 함수 호출
함수를 설명할 때 함수체를 실행하지 않으며 함수가 호출될 때만 문법을 실행합니다: 함수 이름 (실참 목록) 설명: 함수 이름 -->은 이미 설명한 함수 () -->고정된 실참 목록 -->데이터 1, 데이터 2...인삼에''''값을 부여하는 데 사용
함수를 써서 두 수의 합을 인쇄하다
def my_sum(num1,num2):
print(num1+num2)
my_sum(20,20)
함수를 작성하여 "*"5개 인쇄
def print_star():
print('*'*5)
print_star()
함수 쓰기'*'n 개 인쇄
def print_star2(n):
print('*'*n)
print_star2(20)
연습: 함수 하나를 써서 1+2+3+...+ 계산하기n의 합
def sum1_n(n):
sum1 = 0
for x in range(0,n+1):
sum1 += x
print(sum1)
5. 함수 호출
1. 서식 함수 이름(실참 목록)
2. 함수 호출 과정(중점!!!!)첫 번째 단계: 함수 성명 위치로 돌아가기 두 번째 단계: 인삼에 실참으로 값을 부여하기(전참: 매개 변수마다 값이 있어야 하며 많지도 적지도 않아야 한다) 세 번째 단계: 실행 함수체 네 번째 단계: 되돌아오는 값 다섯 번째 단계: 실행이 끝난 함수체는 함수 호출 위치로 돌아가 다음 코드를 수행한다.
"""
def sum2(num1,num2):
#num1 = 10 num2 = 20
print(num1+num2)
sum2(10,20)
print("=====")
6. 함수의 반환값
"""함수의 반환값은 함수 호출 표현식의 값입니다. 리턴 키워드 뒤에 있는 표현식의 값인python의 모든 함수에 반환값이 있습니다. 반환값은 기본값인 None(실행 함수체는return을 만나지 않았음)이고return을 만났습니다. 함수의 반환값은 함수 뒤에 있는 값 함수 호출 표현식입니다. -> 호출 함수의 문장(함수명(실참)) return--> 키워드, 함수체에만 쓸 수 있습니다.반환값과 끝 함수를 되돌려줍니다
주의: 함수의 반환 값을 보고, Reurn을 만났는지 안 만났는지만 봅니다.리턴을 만나지 않으면 none이고, 만나면 리턴 뒤의 값이다.
2. 함수 호출 과정(중점!!!!)첫 번째 단계: 함수 성명 위치로 돌아가기 두 번째 단계: 인삼에 실제 참조로 값을 부여하기(전참: 모든 매개 변수에 값이 있어야 하며 많지도 적지도 않아야 한다) 세 번째 단계: 실행 함수체 네 번째 단계: 되돌아오는 값 되돌리기 ---> 함수 호출 표현식에 되돌아오기 다섯 번째 단계: 실행이 끝난 함수체는 함수 호출 위치로 돌아가고 다음 코드를 실행한다.
상황 1: return 없음
def func1():
print('hello python!')
re = func1()
print(re)
반환 값 print 직접 인쇄(func1()
반환 값을 목록의 요소list1 = [func1 (), 1] print(list1)
상황2:return ""실행 함수가 있을 때return 함수를 만나면 바로 끝납니다. 그리고return 뒤의 결과를 반환값으로 주의합니다. 함수에return만 있는 것이 아니라 함수의 반환값은return 뒤의 값 "입니다.
def func2():
print('====')
print('!!!!')
return 100
print('*****')
re = func2()
print( re)
def func3(n):
if n % 2:
return ' '
print(func3(4)) #None
print(func3(5)) #' '
"""함수를 실현하는 기능과 새로운 데이터가 생성되면 새로운 데이터를 되돌려줍니다. 반대로 사용하지 않습니다."""
함수를 하나 쓰면, 기능은 한 수의 곱셈을 계산하는 것이다
def jie_ceng(num):
sum1 = 1
for x in range(1,num+1):
sum1 *= x
return sum1
re = jie_ceng(10)
print(re)
print('==%d=='% re)
list1 = [re,re]
print(list1)
함수를 써서 인사말을 출력해라. "밥 먹었어?"
def say_hello():
print(' ?')
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.