day-9 - 함수 베이스

7768 단어
import copy "copy.copy(개체): 얕은 복사 copy.deepcopy(개체): 깊은 복사
a = 100 b = a b = 200
a = [1, 2] b = a.copy() b.append(3) print(a)
"""복사: 변수의 값을 한 부 부여하여 새로운 데이터를 생성합니다. 그리고 새로운 데이터에 대응하는 주소를 되돌려줍니다. 얕은 복사: 주소를 직접 복사합니다(슬라이드와 사전 목록의copy 방법은 모두 얕은 복사) 깊은 복사: 주소에 대응하는 값을 복사하고 새로운 주소를 생성합니다"""
a1 = [1, 2]
a2 = {'a': 10}
list1 = [a1, a2]

얕은 복사


list2 = list1.copy()


list2 = copy.copy(list1)

딥 카피


list2 = copy.deepcopy(list1)


list2.append(1)
print(list2)
print(list1)

list2[0].append(100)
print(list2)
print(list1)


""목록의 요소와 사전의 값은 모든 종류의 데이터 ""

1. 목록에 사전이 있다

persons = [
    {'name': ' ', 'age': 30, 'sex': ' '},
    {'name': ' ', 'age': 58, 'sex': ' '},
    {'name': ' ', 'age': 40, 'sex': ' '}
]
# print(persons)
# print(persons[1])
# print(persons[1]['name'])
person = persons[1]
print(person)
name = person['name']
print(name)

페르소나에서 가장 큰 나이에 대응하는 이름을 찾아내세요.

max1 = 0   #  
name = ''  #  
for item in persons:
    age = item['age']
    if age > max1:
        max1 = age
        name = item['name']

print(max1, name)

2. 사전에 목록이 있음


프로그램 작성, 한 학급 정보 저장, 학급 이름, 위치 포함, 모든 학생(학생 중 이름, 나이와 학교 저장)

my_class = {
    'class_name': 'python1807',
    'location': '18-6',
    'all_students': [
        {'name': ' ', 'age': 18, 'school': ' '},
        {'name': ' ', 'age': 19, 'school': ' '},
        {'name': ' ', 'age': 20, 'school': ' '}
    ]
}
print(my_class['all_students'][0]['school'])

연습: 반에 학생 한 명을 추가, 이름: 왕씨, 나이: 40, 학교: 북대청조


= input('이름을 입력하십시오') age = int(input(나이를 입력하십시오') school = input('학교를 입력하십시오') 입력한 정보에 따라 대응하는 학생을 생성합니다 student = {'name':name,'age':age,'school':school} 학생을 반의 모든 학생에 추가하는 myclass['all_students'].append(student) print(my_class)
연습2: 반에서 20세 이하의 학생을 삭제합니다~

모든 학생을 꺼내다

all_student = my_class['all_students']
# for student in all_student[:]:
#     if student['age'] < 20:
#         all_student.remove(student)
# print(my_class)

index = 0
while index < len(all_student):
    student = all_student[index]
    if student['age'] < 20:
        del all_student[index]
        continue
    index += 1
print(my_class)

함수는 특정한 기능을 실현하는 코드 구간에 대한 봉인이다
분류: 사용자 정의 함수(프로그래머가 스스로 그 기능을 실현한다고 성명)와 내장 함수(시스템이 이미 완성했다고 성명함)
1. 함수를 설명하는 문법 def 함수 이름(매개 변수 목록): 함수체
설명: a.def -->python에서 함수를 설명하는 키워드 b. 함수 이름 --> 식별자, 키워드가 될 수 없습니다.PEP8명명명규범(모든 알파벳 소문자, 여러 단어 사이에 밑줄로 구분) 준수 명지의(이름 보고 함수 아는 기능) c. () --> 고정 형식 d. 매개 변수 목록 --> 참조 목록, 매개 변수 이름 1, 매개 변수 이름 2,...여러 개의 매개 변수가 있을 수도 있고, 함수의 외부에서 함수에 값을 전달하는 데 사용되는 매개 변수가 없을 수도 있다.
2. 초보자가 함수를 성명하는 절차 a. 함수를 확정하는 기능 b. 기능에 따라 함수 이름 c. 매개 변수를 확정한다. 있는지 확인하고 몇 개 (함수를 실현하는 기능을 보면 함수 밖에서 값을 전달할 필요가 없고 몇 개 전달해야 하는지) d. 함수 기능 e. 반환값을 확정한다.
3. 함수의 성명 함수를 호출할 때 함수체를 실행하지 않습니다.함수체는 함수가 호출될 때만 실행된다
구문:함수 이름(실참 목록)
설명: 함수 이름 -->은 이미 성명된 함수 () -->고정된 실참 목록 -->데이터 1, 데이터 2...인삼에''''값을 부여하는 데 사용

함수를 써서 두 수의 합을 인쇄하다

def yt_sum(num1, num2):
    print(num1 + num2)


yt_sum(10, 20)
yt_sum(100, 200)

함수를 작성하여'*'5개 인쇄

def print_star():
    print('*'*5)


print_star()

함수 쓰기,'*'n 인쇄

def print_star2(n):
    print('*'*n)


print_star2(10)
print_star2(20)

연습: 함수 하나 쓰고 1+2+...+ 계산하기n의 합

def yt_sum2(n):
    sum1 = 0
    for x in range(1, n+1):
        sum1 += x
    print(sum1)


yt_sum2(100)


1. 서식 함수 이름(실참 목록)
2. 함수 호출 과정(중점!!!!)첫 번째 단계: 함수 성명 위치로 돌아가기 두 번째 단계: 인삼에 실제 참조로 값을 부여하기(전참: 모든 매개 변수에 값이 있어야 함) 세 번째 단계: 실행 함수체 네 번째 단계: 되돌아오는 값 다섯 번째 단계: 함수체를 실행하고 함수 호출 위치로 돌아가기 다음 뒷면의 코드 """

def sum2(num1, num2):
    # num1 = 10, num2 = 20
    print(num1 + num2)


sum2(10, 20)
print('=====')


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(sum(nums))


my_sum()
my_sum(1)
my_sum(1, 2)
my_sum(1, 2, 3, 4)


def func4(name, age, *scores):
    print(scores, name, age)


func4(' ', 18, 90, 29, 89)

""함수의 반환 값은 함수 호출 표현식의 값입니다. 리턴 키워드 뒤에 있는 표현식의 값입니다.python의 모든 함수는 반환 값이 있습니다. 반환 값은 기본적으로 None입니다. (실행 함수체는 리턴을 만나지 못했고 함수의 반환 값은 None입니다. 리턴 함수의 반환 값은 리턴의 뒤에 있는 값입니다.)
함수 호출 표현식 --> 호출 함수의 문장 (함수 이름 (실참) return --> 키워드, 함수체에만 쓸 수 있습니다.반환값과 끝 함수를 되돌려줍니다
주의: 함수의 반환 값을 보십시오.return을 만났는지만 보십시오.만나지 않으면 None이고, 리턴을 만나면 리턴 뒤의 값이다.
2. 함수 호출 과정(중점!!!!)첫 번째 단계: 함수 성명 위치로 돌아가기 두 번째 단계: 인삼에 실참으로 값을 부여하기 (전참: 매개 변수마다 값이 있어야 함) 세 번째 단계: 실행 함수체 네 번째 단계: 되돌아오는 값 되돌리기 --> 함수 호출 표현식에 되돌아오기 다섯 번째 단계: 함수체를 실행하고 함수 호출 위치로 돌아가기 다음 코드 "

상황1:return 없음

def func1():
    print('hello python!')
    print('abcc')
    for x in range(10):
        print(x)


반환 값을 변수에 부여

re = func1()
print(re)

직접 인쇄 반환값

print(func1())

반환 값을 목록의 요소로 삼다

list1 = [func1(), 1]
print(list1)

상황2:return 있음


""함수를 실행할 때,return을 만났을 때, 함수는 바로 끝납니다. 또한,return 뒤의 결과를 반환값으로 합니다 "


def func2():
    print('=====')
    print('!!!!!')
    return 100
    print('*****')


re = func2()
print(re)


"주의: 함수에return만 있는 것이 아니라 함수의 반환값은return 뒤의 값입니다"
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('밥 먹었어요?')

좋은 웹페이지 즐겨찾기