칠이구729의 코딩 노트
Python 공부 (2) 본문
#[2일 차]
# 변수를 삭제할 때는 'del 변수'를 사용하여 삭제할 수 있다.
# type(변수)를 사용하여 변수의 자료형을 알아낼 수 있다. (값)도 가능
# int(값)을 사용한다면 값 안에 들어가는 내용을 int형으로 만들 수 있다 ex) int(5 / 2)일 경우 '2'가 된다.
# float(값)도 int()와 같음
# 두 숫자를 입력받아 합 구하기
# 그냥 입력받은 후 합 할 경우
a, b = input('숫자를 두 개 입력하세요 : '). split()).split()
print(a + b) # 2와 5를 입력했을 때 7이 아닌 25가 출력된다.
# 입력 값을 정수로 변환한 후 계산하기
a, b = input('숫자 두 개를 입력하세요 : '). split()).split()
a = int(a) # 변수에 들어있던 값을 정수로 변환한 후 다시 저장
b = int(b)
print(a + b) # 정상적인 두 수의 합이 출력된다. ex) 2, 5를 입력했을 때 7이 출력됨
# map 함수를 사용하여 정수로 변환하기
# 사용 방법 ex) map(자료형, 내용) 내용을 지정한 자료형으로 바꾼다.
a, b = map(int, input('숫자 두 개를 입력하세요 : '). split())
print(a + b) # 정상적인 두 수의 합이 출력된다.
# 입력받은 값을 콤마를 기준으로 분리하기
# slpit() 안에 ', '를 넣어 분리할 기준을 ', '로 지정함
a, b = map(int, input('숫자 두 개를 입력하세요 : '). split(', '))).split(','))
print(a + b) #정상적인 두 수의 합이 출력됨
# 문제 : 정수 세 개를 입력받고 합계 출력하기
# -10 20 30 (입력)
# print(a + b + c)를 하였을 때
# 40이 출력되도록 할 것
a, b, c = map(int,input().split())
print(a + b + c) # 정상적으로 40이 출력됨
# 값을 여러 개 출력하기
# print는 여러 개의 값을 출력할 때 ', '를 사용하여 출력할 수 있다.
print(1, 2, 3) # 1 2 3 이 출력
# 값 사이에 문자를 넣어 출력하고 싶을 경우
# sep를 사용하여 값 사이의 문자를 지정할 수 있다.
print(1, 2, 3, sep=','sep=', ') # 값 사이에 ', '를 집어넣을 경우 1,2,3 이 출력됨
print(1, 2, 3, sep=', ') # 값 사이에 ', '를 집어 넣을 경우 1, 2, 3이 출력됨
print(1, 2, 3, sep='+') # sep의 안에는 특수문자뿐만이 아니라 일반적인 문자도 넣을 수 있다.
# 줄 바꿈(개행) 사용하기
# print를 한 번만 사용해서 값을 여러 줄로 출력하고 싶다면 sep안에 개행 문자 '\n'을 적으면 된다.
print(1, 2, 3, sep='\n') # 1, 2, 3이 한 줄마다 출력된다.
print('1\n2\n3') # 혹은 문자열 안에 직접 '\n'을 넣어도 가능하다.
# 반대로 여러 줄로 나오는 것을 뒤에 한 줄로 만들고 싶을 경우
print(1, end='') # 이처럼 end에 빈 문자열을 지정하면 다음 출력이 바로 뒤에 붙는다.
print(2, end='')
print(3) # 실행결과 : 123
print(1, end=' ') # end 안에 ' '을 넣을 경우 다음 문자열이 출력되기 전에
print(2, end=' ') # end 안에 들어있는 값을 붙이고 출력한다.
print(3) # 실행 결고 : 1 2 3
# 문제 현재 년도와 월, 일, 시간, 분을 출력하시오
# ex) 2021/4/29 1:51
year = 2021
month = 4
day = 29
hour = 1
minute = 51
print(year, month, day, sep='/', end=' ')
print(hour, minute, sep=':') # 2021/4/29 1:51이 출력됨
# 비교 연산자를 이용하여 값을 비교하고 True / False 출력하기
x = 10
y = 10
print(x > 10) # x는 10보다 크지 않으므로 False가 출력된다.
print(x == y) # x와 y의 값이 같으므로 True가 출력된다.
print(x!=# x와 y의 값은 다르지 않으므로 False가 출력된다.
# 숫자뿐만이 아닌 문자열도 구분할 수 있다.
print('Hello' == 'Hello') # 두 값이 같으므로 True가 출력된다.
print('Hello' == 'hello') # python은 대소문자를 구별하므로 False가 출력된다.
print('Hello'!='hello') # 두 값이 다르므로 True가 출력된다.
# 객체가 같은지 비교하기
print(1 == 1.0) # 1과 1.0의 값은 같으므로 True가 출력된다.
print(1 is 1.0) # 1과 1.0은 정수와 실수 이므로 False가 출력된다.
print(1 is not 1.0) # 1과 1.0은 객체가 다르므로 True가 출력된다.
# *값을 비교할 때에는 'is'가 아닌 '=='와 같은 비교 연산자를 사용하여야 한다.
# 논리 연산자 사용하기 and, or not
print(True and True) # and는 두 값이 모두 True여야지만 True가 나온다.
print(True or False) # or은 두 값 중 하나라도 True라면 True가 나온다.
print(not True) # not은 결과의 반대 값이 나온다 ex) True라면 False
# 문제 : 합격 여부 출력하기
# 국어, 수학, 영어 점수중 한 과목이라도 50점 미만이 있을 경우 불합격이다
# 합격이면 True, 불합격이면 False를 출력하라 단, print만 사용할 것
kor = 90
math = 77
eng = 49
print(kor >= 50 and math >= 50 and eng >= 50) # eng의 점수가 50점 미만이기 때문에 False가 출력된다.
# 리스트 만들기
a = ['hello', 'world', 10] # 처음부터 값을 넣어서 만들 수 있다.
b = list() # 혹은 빈 리스트를 만들고 나중에 값을 넣을 수 도 있다.
print(a [0],) # a 리스트 안에 들어있는 'hello world 10' 이 출력된다.
c = list(range(10)) # c 리스트 안에 0~9까지 총 10개의 값을 넣는다.
d = list(range(2, 10, 2)) # d 리스트 안에 2부터 10까지 2씩 늘어나는 값을 넣는다.
e = list(range(10, 0, -1)) # e 리스트 안에 10부터 0까지 -1씩 되는 값을 넣는다.
for i in e:
print(i,end=''print(i, end='') # 일렬로 저장된 요소들을 처음부터 끝까지 출력
# 튜플 만들기 *튜플은 저장된 요소를 변경, 추가, 삭제할 수 없다.
a = (1, 2.1, 'hello', True) # 리스트오 마찬가지로 튜플 안에는 여러 자료형을 섞어서 저장할 수 있다.
b = (22,) # 요소가 1개인 튜플은 만들 때는 () 안에 (값,)를 넣어야 한다. *', '가 없을 경우 튜플이 아니게 된다.
c = tuple(range(10)) # 0부터 9까지 10개의 요소를 튜플로 생성한다.
d = tuple(range(1,10,2)) # 1부터 10까지 2씩 증가하는 튜플을 생성한다.
e = 1, 2, 3 # 이런 식으로 작성해도 튜플이 생성된다.
for i in d:
print(i,end=print(i, end=' ')
# 튜플 -> 리스트, 리스트 -> 튜플
a = [1, 2, 3] # a라는 리스트를 만든다.
tuple(a) # 리스트 a를 튜플 안에 넣으면 새로운 튜플이 생긴다.
print(type(tuple(a))) # 리스트 a를 튜플에 넣으면 자료형이 튜플로 바뀌는 것을 알 수 있다.
for i in a:
print(i,end=print(i, end=' ')
# 리스트와 튜플로 변수 여러 개 만들기
x = [1, 2, 3] # 리스트 X에 값을 3개를 넣고
a, b, c = x # 그 값들을 변수 a, b, c에 넣는다.
print(a, b, c, sep='sep= ') # 출력 결과 : 1, 2, 3
y = (4, 5, 6) # 튜플 y에 값을 3개 넣고
d, e, f = y # 그 값들을 변수 d, e, f에 넣는다.
print(d, e, f, sep=' ') # 출력결과 : 4, 5, 6
# input(). split()는 리스트를 반환한다. 그렇기 때문에 입력값을 벼수 여러개에 저장할 수 있다.
x = input().split() # 변수 x 안에 리스트 값 여러 개를 입력하고 ex) 1 2
a, b = x # 그 값을 변수 a, b에 넣는다.
print(a, b, sep=' ') # 출력 결과 : 1 2
# 특정 값이 있는지 확인하기
a = list(range(10)) # 리스트 a에 0 ~ 9까지의 값 추가
b = tuple(range(10)) # 튜플 b에 0 ~ 9까지의 값 추가
print(3 in a) # 리스트 a 안에 3이 있는지 확인 있다면 True 아니면 False
print(10 in b) # 투플 b 안에 9가 있는지 확인
# 시퀀스 객체 연결하기
# 시퀀스 객체는 + 연산자를 이용해서 서로 연결할 수 있다.
a = [0, 1, 2, 3]
b = [4, 5, 6, 7]
print(a + b) # 출력 결과 : [0, 1, 2, 3, 4, 5, 6, 7]
# 단, 시퀀스 자료형 중 range는 + 연산자로 연결할 수 없다.
# 연결하기 위해서는 리스트 혹은 튜플로 만들어서 연결해야 한다.
print(list(range(10)) + list(range(10,20)))
# 출력결과 : [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19]
# 문자열 또한 + 연산자로 연결할 수 있다.
print('Hello ' + 'world') # 출력결과 : Hello world
# 문자열과 숫자를 연결하기
# 문자열과 숫자를 연결할 때에는 str을 사용하여 정수, 실수를 문자열로 변환해야 한다.
print('Hello' + str(10)) # 출력 결과 : Hello10
# 튜플과 리스트를 연결할 때에는 둘 중 하나의 자료형으로 변환해야 한다.
a = list(range(5))
b = tuple(range(5))
print(a + list(b)) # 출력 결과 : [0, 1, 2, 3, 4, 0, 1, 2, 3, 4]
# 시퀀스 객체 반복하기
# 시퀀스 객체 * 정수 혹은 정수 * 시퀀스 객체를 하면 된다.
a = list(range(5))
print(a * 3) # 출력 결과 : [0, 1, 2, 3, 4, 0, 1, 2, 3, 4, 0, 1, 2, 3, 4]
# 리스트와 튜플의 요소 개수 구하기
a = list(range(100)) # 출력결과 : 100
print(len(a)) # len(객체)는 객체의 길이(개수)를 구할 때 사용한다.
# 0부터 32321까지 5씩 증가하는 값을 넣었을 때 총 몇 개의 요소가 생기는지 구할 수 있다
print(len(range(0, 32321, 5))) # 출력 결과 : 6465
# 문자열의 길이 구하기
hello = 'Hello world'
print(len(hello)) # 출력결과 : 11 *문자열의 길이는 공백까지 포함한다.
# 시퀀스 객체에 들어있는 요소에 접근하기
# 시퀀스 객체에 []를 붙이고 [] 안에 요소의 인덱스를 지정하면 접근할 수 있다.
a = list(range(10))
print(a [3])# 출력 결과 : 3
# * 튜플, range, 문자열도 마찬가지이다.
# 시퀀스 객체에 인덱스를 음수로 줄 경우
# 시퀀스 객체에 뒤에서부터 해당하는 요소를 지정한다
a = list(range(10))
print(a [-3])# 출력 결과 : 7 (뒤에서부터 3번째의 요소)
# 요소에 값 할당하기
a = [0, 0, 0, 0, 0] # 0이 5개가 들어있는 리스트
a [0]1 # 인덱스 번호에 값 입력
a [1]2
a [2]3
a [3]4
a [4]5
print(a) # 출력 결과 : [1, 2, 3, 4, 5]
# del로 요소 삭제하기
a = [1, 2, 3, 4, 5] # 1~5가 들어있는 리스트 생성
del a [2]2 # 리스트 a에 2번째 값 삭제
print(a) # 출력 결과 : [1, 2, 4, 5]
# *리스트와 달리 튜플을 요소를 삭제할 수 없다.
# *마찬가지로 range와 ㅊ문자열도 안에 저장된 요소를 삭제할 수 없다.
# 슬라이스 사용하기
# 슬라이스는 시퀀스 객체의 일부를 잘라내서 가져오는 것이다.
# 슬라이스 객체 = slice(시작 인덱스, 끝 인덱스, 인덱스 증가폭)
a = list(range(10))
print('a '+str(a))
b = a [0:4]0:4 # 리스트 a에서 인덱스 0부터 4까지 가져오기
c = a [0:10:2]0:10:2 # 리스트 a에서 인덱스 0부터 10까지 인덱스를 2씩 증가하며 가져오기
d = a [:5]5 # 리스트 a에서 인덱스 0부터 5까지 가져오기
e = a [3:]3 # 리스트 a에서 인덱스 3부터 끝까지 가져오기
f = a [:] # 리스트 전체를 가져오기
g = a [:8:2]8:2 # 리스트의 처음부터 인덱스를 2씩 증가시키면서 익 덱스 8까지 가져오기
print('b' + str(b))
print('c' + str(c))
print('d' + str(d))
print('e' + str(e))
print('f' + str(f))
print('g' + str(g))
# 튜플, range, 문자열도 똑같이 사용할 수 있다.
# 슬라이스에 요소 할당하기
a = list(range(10))
a [2:5]'a', 'b', 'c'] # 인덱스 2부터 4까지 값 할당
# *굳이 개수를 맞추지 않아도 알아서 할당된다.
# 할당할 요소 개수가 적으면 리스트의 요소 개수도 줄어듦 반대도 마찬가지
# 단, 인덱스 증가폭을 지정했을 때는 요소의 개수가 정확히 일치해야 한다.
# *튜플, range, 문자열은 요소를 할당할 수 없다.
print(a) # 출력 결과 : [0, 1, 'a', 'b', 'c', 5, 6, 7, 8, 9]
# del로 슬라이스 삭제하기
# del 시퀀스 객체[시작 인덱스:끝 인덱스]
a = list(range(10))
del a [2:5]2:5]
print(a) # 출력 결과 : [0, 1, 5, 6, 7, 8, 9]
# 다른 것들과 마찬가지로 [시작 인덱스:끝 인덱스:증가 인덱스]가 가능하다.
# *튜플, range, 문자열은 삭제할 수 없다.
'Python' 카테고리의 다른 글
Python 공부 (6) if문 (0) | 2021.05.12 |
---|---|
Python 공부 (5) 내용 정리 (0) | 2021.05.12 |
Python 공부 (4) 딕셔너리의 키에 값 할당하기, 키가 있는지 확인하기 (0) | 2021.05.11 |
Python 공부 (3) 딕셔너리 만들기 (0) | 2021.05.11 |
Python 공부 (1) (0) | 2021.04.28 |