2022. 07. 27(수) Python 공부 3일차

Dylan·2022년 7월 27일
0

실습 1

  • A 학교에서는 주당 12시간 강의를 기본으로 하고 있다. 만약에 강의 시간이 12시간을 초과하면 초과한 시간에 대해 시간당 급여의 30%를 더 지급한다. 주당 총 근무 시간과 A학교의 시간당 급여를 입력받아 1주일 급여를 계산하는 프로그램을 작성하시오
# 실습 1

working_hour = int(input('근무시간을 입력하시오 : '))
pay_per_hour = int(input('시간당 수당을 입력하시오 : '))

total_pay = working_hour * pay_per_hour

if working_hour > 12 :
    additional_pay = (working_hour - 12) * pay_per_hour * 0.3
    total_pay += additional_pay

print()
print('총 급여는', total_pay, '원 입니다.')

실습 2

  • 하나의 양의 정수를 입력받아서 그 수의 약수를 모두 출력하고 약수의 개수도 출력하시오.
# 실습 2

n = int(input('정수를 입력하시오 : '))

a = 1
count = 0

while a <= n:
    if n % a == 0: # 약수 표현
        print(a)
        count += 1
    a += 1

print()
print(n, '의 약수의 개수 : ', count)

실습 3

  • 다섯 개의 정수를 하나씩 입력받아서 그 정수들 중에서 가장 큰 값을 출력하시오.
# 실습 3

n = int(input('정수를 입력하시오 : '))
max = n

loop_count = 1

while loop_count <= 4:
    n = int(input('정수를 입력하시오 : '))
    if n > max:
        max = n
    loop_count += 1

print()
print('가장 큰 값 :', max)

군집자료형과 for 반복문

리스트, 튜플

1_ 리스트와 연산

  • 대괄호 []를 사용하여 여러 데이터를 저장할 수 있는 자료형
  • 순서가 있고, 인덱스를 이용하여 데이터에 접근할 수 있다.
  • 리스트는 mutable 하다

  • 슬라이싱 (slicing)

  • 리스트에 대한 +(연결) , *(반복) 연산

  • in, not in, len()

2_ 리스트 사용하기

  • 메소드 (method) - 데이터 객체에 대해서 어떤 일을 처리할 수 있도록 하는 코드
  • 리스트에서 사용할 수 있는 메소드
	>>> dir(list)
    ['__add__', '__class__', ... '__subclasshook__', 'append', 'clear', 'copy' ,
    'count', 'extend', 'index', 'insert', 'pop', 'remove', 'reverse', 'sort']
  • 리스트.메소드 의 형태로 사용해야 한다.

  • 리스트에 데이터 추가하기

    • append(x) - 데이터 x를 리스트 끝에 추가한다.
    • insert(i, x) - 인덱스 i에 데이터 x를 삽입한다.
  • 리스트에서 데이터 삭제하기

    • pop() - 리스트의 맨 마지막 데이터를 반환하고 삭제한다
    • pop(i) - 리스트에서 인덱스 i 에 있는 데이터를 반환하고 삭제한다.
    • remove(x) - 리스트에서 데이터 x를 삭제한다. x가 여러 개 있으면 맨 처음 x를 삭제한다.
  • 리스트에서 데이터 위치 찾기 / 데이터 개수 세기

    • index(x) - 리스트에서 데이터 x의 인덱스를 반환한다.
    • count(x) - 리스트에서 데이터 x의 개수를 반환한다.
  • 빈 리스트와 리스트 비우기 - clear()

  • 리스트 복사하기 ('=' 이용하기)

  • 리스트 복사하기 - copy()

  • 리스트 연결하기 - extend(M)

  • 리스트 정렬하기 - sort()

  • 리스트 역순으로 바꾸기 - reverse()

3_ 튜플과 연산

  • 리스트처럼 여러 데이터를 저장할 수 있는 자료형
  • 인덱싱, 슬라이싱 이용할 수 있다.
  • +, *, in, not in, len() 사용할 수 있다.
  • [] 대신에 ()를 사용
  • 리스트와의 차이점 - 튜플은 immutable 하다. (한번 만들면 바꿀 수 없다)

튜플에서 데이터를 바꾸면 TypeError가 남

튜플에서 주로 사용하는 메소드는 index(x), count(x) 이다.

  • 빈 튜플
	T = ()
    T = tuple()
  • 원소가 하나인 튜플 만들기

콤마가 있냐 없냐에 따라 튜플인지 일반 클래스타입인지 나뉜다

  • 튜플은 여러 변수에 값을 동시에 할당할 수 있도록 한다.

  • 튜플 이용한 swap

집합, 사전

1_ 집합 (set)

  • 집합은 중복된 데이터를 가질 수 없고 순서가 없는 데이터 구조이다.
  • 인덱스 기호 ([]), +, *를 사용할 수 없다.
  • in, not in, len()은 사용할 수 있다
  • mutable 자료형이다.

빈 집합을 만들 때 파이썬에서 단순히 중괄호로만 생성한다면 집합이 아닌 dict 타입이 생성되니 빈 집합을 생성시 꼭 set()를 써야한다

2_ 집합 사용하기

아직 설명이 안된 intersection이랑 isdisjoint 메소드들은 집합에서 주로 사용하는 메소드들 이다.

  • 집합에 원소 추가하기

집합에 원소를 추가 할 때 이미 있는 데이터를 추가하면 변동이 없다. 순서는 신경 쓰지 않는다. 오직 있거나 없거나 만 생각한다.

  • 집합에서 원소 삭제하기

집합에서 원소를 삭제할 때 discard()는 집합안에 없는 원소를 삭제해도 에러가 없지만 remove()는 에러가 발생한다.

  • 집합에서 원소 삭제하기 / 공집합 만들기

pop() 메소드는 집합에서 임의의 원소를 반환하고 삭제한다. clear() 메소드는 집합을 공집합으로 만든다.

3_ 사전 (dict)

  • 사전은 집합의 일종이다 ( 순서 개념이 없다)
  • +, * 를 사용할 수 없다. 인덱스 기호([])는 사용한다.
  • in, not in, len()은 사용할 수 있다.
  • 사전에는 (키:값)의 쌍으로 하나의 데이터가 저장된다.
  • 사전 예

키는 중복이 되어선 안되지만 값은 중복이 허용 된다.

  • 사전의 키
    • mutable 자료형은 '키'가 될 수 없다. (리스트, 집합, 사전)
    • 정수, 실수, bool, 복소수, 문자열, 튜플은 '키'가 될 수 있다.
  • 사전의 값
    • 모든 자료형이 사전의 '값'이 될 수 있다.
  • 빈 사전 생성하기
  • 사전에 아이템 추가 / 수정하기
  • 사전에 아이템 삭제하기 / in, not in, len()

4_ 사전 사용하기

items(), keys(), values() 사용도가 높은 메소드들이다

  • clear() 메소드

{}은 빈 집합이 아니라 빈 사전이다.

  • copy() 메소드

copy() 메소드로 복사를 하는게 아닌 '='를 이용해서 복사를 시도한다면 실제로 복사가 되는게 아니라 같은 id값을 공유하는 변수가 하나 더 생기는 느낌이다.

  • update(D) 메소드

update() 메소드는 앞에 설정된 객체만 업데이트 되고 ( ) 안에 들어있는 객체는 변하지 않는다.

  • items() - 사전에서 (키, 값)을 쌍으로 반환한다.

items() 메소드를 활용해서 출력을 하면 (키, 값)을 그냥 출력해주는게 아니라 앞에 dict_items가 같이 딸려오는데 이 부분은 아이템즈의 결과를 가지고 무엇인가 작업을 하겠다고 한다면 앞부분에 list를 감싸서 변환하면 된다.

  • keys() - 사전에서 키만을 반환한다.

  • values() - 사전에서 값만을 반환한다.

for 반복문

1_ range() 함수

  • range() 함수 : 일정 범위의 수를 반환한다.

2_ for 반복문

  • for 구문을 이용한 반복문

3_ range() 함수와 for 반복문

4_ 문자열과 for 반복문

5_ 리스트와 for 반복문

6_ 사전과 for 반복문

  • keys() 메소드 이용하기

사전은 집합의 일종이기 떄문에 순서는 신경쓰지 않는다.

  • items() 메소드 이용하기

  • values() 메소드 이용하기

7_ 리스트 안에 for 반복문 사용하기

8_ 군집 자료형의 형 변환

0개의 댓글