2022. 07. 28(목) Python 공부 4일차

Dylan·2022년 7월 28일
0

실습 3

문제1

  • for 구문과 range() 함수를 이용하여 다음과 같이 출력되도록 하시오.
# 실습 1

for x in range(0, 10) : # range(10) 도 가능
    print(x, end=' ')

print()

for x in range(0, 51, 5): # 0부터 50까지 5칸 간격으로 출력
    print(x, end=' ')

print()

for x in range(10, 0, -1): # 10부터 1까지 거꾸로 출력
    print(x, end=' ')

print()

문제2

  • score 리스트에 다섯 개의 성적(정수)를 입력 받아서 다음과 같이 출력하시오. 성적을 입력받을 때는 반드시 for 구문을 사용하고 파이썬 내장 함수를 적절히 이용하시오.
# 실습 2

score = []

for i in range(5):
    data = int(input('성적을 입력하시오 : '))
    score.append(data)

print('입력한 성적들 :', score)

# max, min, sum, len

print('최고 성적 :', max(score))
print('최저 성적 :', min(score))

average = sum(score) / len(score)

print('평균 : %.2f' % average)

문제3

  • A 고등학교 어떤 반 학생들 5명의 번호와 국어, 영어, 수학 성적이 다음과 같다. 5명 각자의 평균을 출력하시오. ('사전'과 '리스트' 이용할것)

# 실습 3

score = {1:[80, 90, 86], 2:[78, 88, 85], 3:[85, 85, 92], 4:[70, 69, 65], 5:[90, 95, 100]}

for key, value in score.items():
    print(key, '번 : %.2f' % (sum(value) / len(value)))

IV. 함수와 모듈

함수 1

1_ 함수

  • 블랙박스 (black box)
    • 함수는 입력과 출력을 갖는 black box이다.
    • 주어진 입력에 대해서 어떤 과정을 거쳐 출력이 나오는지가 숨겨져 있다.
  • 함수의 재사용성 (reuse)
  • 함수 이름, 입력, 출력 중요함
  • 내장함수 (built-in functions)
    • 파이썬 언어에서 미리 만들어서 제공하는 함수들
    • IDLE에서 dir(__builtins__) 라고 입력하면 파이썬에서 제공하는 내장 함수 목록을 볼 수 있다.
    • 내장 함수에 어떤 것들이 있는지 학습하고 적절히 사용할 줄 아는 것이 중요하다
  • 사용자 정의 함수 (user-defined functions)
    • 사용자가 직접 만드는 함수
    • 함수 작성 문법을 익히고 직접 작성해 보는 것이 중요하다

2_ 파이썬 내장 함수

  • 군집자료형에 유용한 함수들

    • len(), max(), min(), sum(), sorted(), reversed() 함수

    sorted() 함수는 실행했을 때만 정렬이 되고 원래 객체는 변하지 않는다.

  • reversed 함수 - 군집자료형 데이터를 역순으로 바꾼다.

    • 순서가 있는 list, typle, str 에만 적용할 수 있다.

3_ 사용자 정의 함수

실제로 넘어가는 데이터를 인수(arguments)라 하고 그 데이터를 받는 공간을 매개변수(parameter)라 한다.

4_ 함수의 인수와 반환값

  • 인수, 반환값이 없는 함수

    • 함수에 입력이 없으면 빈 괄호로 둔다.
    • 함수에 출력이 없을 수도 있다 (return 구문이 없다).
  • 인수가 여러 개인 함수 ( 인수 개수만큼 parameter 필요함)

    • 예) main 에서 국어, 영어, 수학 성적을 입력받아 calculate 함수의 입력으로 넘긴다. calculate 함수는 평균을 반환한다.
  • 함수에서 return 문이 여러 번 나오는 경우
    • return 문이 여러 번 나오더라도 가장 먼저 return을 만나는 순간 함수는 값을 반환하고 종료한다.
  • 반환값이 여러 개인 경우
    • 함수에 반환값이 2개 이상인 경우 튜플로 묶어서 반환한다.
    • 예) 두 수를 입력받아서 두 수의 합과 두 수의 곱을 반환하는 함수

5_ 함수의 위치와 main 작성하기

  • 함수의 위치
    • 함수는 호출 전에 정의되어 있어야 한다.
  • main 함수 작성하기
    • main은 프로그램 시작점을 의미한다.

함수 2

1_ 전역 변수와 지역 변수

  • 전역 변수(global variable) : 프로그램 전체에서 사용 가능
  • 지역 변수(local variable) : 함수 내에서만 사용 가능
  • scoping rule : 변수를 찾을 떄 지역 변수 -> 전역 변수 순서로 찾는다.
  • global 선언

    • 전역 변수를 함수 내에서 바꾸고자 하면, global 선언이 필요함

    • 함수에서 만든 지역 변수를 전역 변수로 사용하고자 하면 global 선언이 필요함

  • 함수 매개변수는 지역 변수이다.

  • mutable 객체가 인수인 경우 (리스트, 집합, 사전)

    • 리스트 인수

2_ 함수의 인수

  • 기본값(default value)이 있는 인수

    • 함수를 호출할 때 인수를 넘겨주지 않아도 인수가 자신의 기본값을 취하하도록 하는 기능.
  • 함수를 정의할 때 인수의 기본값 사용시 주의점

    • 기본값이 있는 인수가 먼저 올 수 없다.
    • 인수가 여러 개인 경우의 예
  • 키워드 인수

    • 함수 호출 시에 인수 이름(매개변수)과 값을 같이 전달하기

    • 키워드 인수의 위치는 일반 인수 이후이다.

  • 가변 인수 사용하기

    • 정해지지 않은 수의 인수를 함수에 전달하기
    • 함수를 정의할 때 인수 목록에 반드시 넘겨야하 하는 고정 인수를 우선 나열하고, 나머지를 마지막에 튜플 형식으로 한꺼번에 받는다.

    가변인수도 항상 맨 마지막에 적어주어야 한다.

  • 정의되지 않은 키워드 인수 처리하기

    • ** 형식으로 기술
    • 전달받는 형식은 사전이다. 즉, 키는 키워드(변수명)가 되고, 값은 키워드 인수로 전달되는 값이 된다.

3_ 람다 함수 (lambda)

  • 람다 함수의 정의
    • 이름없는 한 줄짜리 함수이다.
    • 람다 함수는 return 문을 사용하지 않는다.
    • 람다 함수의 몸체는 문이 아닌 하나의 식이다.
    • 람다 함수는 함수를 함수 인자로 넘길 때 유용하다.
  • map 내장 함수

map 함수의 결과는 list로 바꿔야 볼 수 있다.

  • map 내장 함수 예
  • filter 내장 함수

모듈

1_ 모듈 소개하기

  • 파이썬 구성 요소

  • 모듈 (module)

    • 코드들을 한 단위로 묶어 사용할 수 있게 하는 하나의 단위
    • 모듈의 종류
      • 표준 모듈 - 파이썬 패키지 안에 포함된 모듈
      • 사용자 모듈 - 사용자가 만드는 모듈
      • 써드 파티 (third party) 모듈 - 개인이 만들어서 제공하는 모듈
    • 모듈 사용의 장점
      • 코드의 재사용성
      • 서로 다른 모듈에 같은 이름의 메소드가 있어도 충돌이 생기지 않음

2_ 모듈 사용하기

  • 모듈은 반드시 import 후에 사용할 수 있다.

  • 모듈 import 방법

    1. import <모듈>

    2. from <모듈> import <함수명>

    3. import <모듈> as <alias>

3_ 모듈 만들기

  • 데이터, 함수들로 구성된 파일을 만든다.
  • 파일명이 모듈명이 된다.

4_ random 모듈

  • 임의의 값을 선택하는 함수들로 구성된 모듈

  • 임의의 정수 생성 (randint())

  • 임의의 정수 생성 (randrange())

  • 임의의 정수 여러개 생성

  • 임의의 실수 생성 (random(), uniform())

    • random() : 0.0에서 1.0 사이의 임의의 float값 반환
    • uniform(a, b) : 두 인수 a와 b사이의 임의의 float값 반환
  • 리스트에 random 모듈 이용하기

  • 튜플에서 random 모듈 이용하기
  • 문자열에서 random 모듈 이용하기

출처 : https://www.edwith.org/sogang_python/joinLectures/7133

0개의 댓글