# 실습 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
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
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)
리스트에 대한 +(연결) , *(반복) 연산
in, not in, len()
>>> dir(list)
['__add__', '__class__', ... '__subclasshook__', 'append', 'clear', 'copy' ,
'count', 'extend', 'index', 'insert', 'pop', 'remove', 'reverse', 'sort']
리스트.메소드 의 형태로 사용해야 한다.
리스트에 데이터 추가하기
리스트에서 데이터 삭제하기
리스트에서 데이터 위치 찾기 / 데이터 개수 세기
빈 리스트와 리스트 비우기 - clear()
리스트 복사하기 ('=' 이용하기)
리스트 복사하기 - copy()
리스트 연결하기 - extend(M)
리스트 정렬하기 - sort()
리스트 역순으로 바꾸기 - reverse()
튜플에서 데이터를 바꾸면 TypeError가 남
튜플에서 주로 사용하는 메소드는 index(x), count(x) 이다.
T = ()
T = tuple()
콤마가 있냐 없냐에 따라 튜플인지 일반 클래스타입인지 나뉜다
튜플은 여러 변수에 값을 동시에 할당할 수 있도록 한다.
튜플 이용한 swap
빈 집합을 만들 때 파이썬에서 단순히 중괄호로만 생성한다면 집합이 아닌 dict 타입이 생성되니 빈 집합을 생성시 꼭 set()를 써야한다
아직 설명이 안된 intersection이랑 isdisjoint 메소드들은 집합에서 주로 사용하는 메소드들 이다.
집합에 원소를 추가 할 때 이미 있는 데이터를 추가하면 변동이 없다. 순서는 신경 쓰지 않는다. 오직 있거나 없거나 만 생각한다.
집합에서 원소를 삭제할 때 discard()는 집합안에 없는 원소를 삭제해도 에러가 없지만 remove()는 에러가 발생한다.
pop() 메소드는 집합에서 임의의 원소를 반환하고 삭제한다. clear() 메소드는 집합을 공집합으로 만든다.
키는 중복이 되어선 안되지만 값은 중복이 허용 된다.
items(), keys(), values() 사용도가 높은 메소드들이다
{}은 빈 집합이 아니라 빈 사전이다.
copy() 메소드로 복사를 하는게 아닌 '='를 이용해서 복사를 시도한다면 실제로 복사가 되는게 아니라 같은 id값을 공유하는 변수가 하나 더 생기는 느낌이다.
update() 메소드는 앞에 설정된 객체만 업데이트 되고 ( ) 안에 들어있는 객체는 변하지 않는다.
items() 메소드를 활용해서 출력을 하면 (키, 값)을 그냥 출력해주는게 아니라 앞에 dict_items가 같이 딸려오는데 이 부분은 아이템즈의 결과를 가지고 무엇인가 작업을 하겠다고 한다면 앞부분에 list를 감싸서 변환하면 된다.
keys() - 사전에서 키만을 반환한다.
values() - 사전에서 값만을 반환한다.
사전은 집합의 일종이기 떄문에 순서는 신경쓰지 않는다.
items() 메소드 이용하기
values() 메소드 이용하기