Notice
Recent Posts
Recent Comments
Link
«   2025/05   »
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
Archives
Today
Total
관리 메뉴

칠이구729의 코딩 노트

Python 공부 (2) 본문

Python

Python 공부 (2)

칠이구729 2021. 4. 29. 15:38

#[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(intinput('숫자 두 개를 입력하세요 : '). split())  

print(a + b) # 정상적인 두 수의 합이 출력된다.



# 입력받은 값을 콤마를 기준으로 분리하기

 

# slpit() 안에 ', '를 넣어 분리할 기준을 ', '로 지정함

a, b = map(intinput('숫자 두 개를 입력하세요 : '). 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(123# 1 2 3 이 출력

 

# 값 사이에 문자를 넣어 출력하고 싶을 경우 

# sep를 사용하여 값 사이의 문자를 지정할 수 있다.

print(123, sep=','sep=', ') # 값 사이에 ', '를 집어넣을 경우 1,2,3 이 출력됨

print(123sep=', '# 값 사이에 ', '를 집어 넣을 경우 1, 2, 3이 출력됨

print(123sep='+'# sep의 안에는 특수문자뿐만이 아니라 일반적인 문자도 넣을 수 있다.



# 줄 바꿈(개행) 사용하기

# print를 한 번만 사용해서 값을 여러 줄로 출력하고 싶다면 sep안에 개행 문자 '\n'을 적으면 된다.

print(123sep='\n'# 1, 2, 3이 한 줄마다 출력된다.

print('1\n2\n3'# 혹은 문자열 안에 직접 '\n'을 넣어도 가능하다.



# 반대로 여러 줄로 나오는 것을 뒤에 한 줄로 만들고 싶을 경우

 

print(1end='')  # 이처럼 end에 빈 문자열을 지정하면 다음 출력이 바로 뒤에 붙는다.

print(2, end='')

print(3# 실행결과 : 123

 

print(1end=' '# end 안에 ' '을 넣을 경우 다음 문자열이 출력되기 전에

print(2end=' '# 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(2102)) # d 리스트 안에 2부터 10까지 2씩 늘어나는 값을 넣는다.

e = list(range(100, -1)) # e 리스트 안에 10부터 0까지 -1씩 되는 값을 넣는다.

for i in e:

    print(i,end=''print(i, end='') # 일렬로 저장된 요소들을 처음부터 끝까지 출력



# 튜플 만들기 *튜플은 저장된 요소를 변경, 추가, 삭제할 수 없다.

a = (12.1'hello'True# 리스트오 마찬가지로 튜플 안에는 여러 자료형을 섞어서 저장할 수 있다.

b = (22,) # 요소가 1개인 튜플은 만들 때는 () 안에 (값,)를 넣어야 한다. *', '가 없을 경우 튜플이 아니게 된다.

c = tuple(range(10)) # 0부터 9까지 10개의 요소를 튜플로 생성한다.

d = tuple(range(1,10,2)) # 1부터 10까지 2씩 증가하는 튜플을 생성한다.

e = 123 # 이런 식으로 작성해도 튜플이 생성된다.

for i in d:

    print(i,end=print(i, end=' ')



# 튜플 -> 리스트, 리스트 -> 튜플

a = [123# a라는 리스트를 만든다.

tuple(a) # 리스트 a를 튜플 안에 넣으면 새로운 튜플이 생긴다.

print(type(tuple(a))) # 리스트 a를 튜플에 넣으면 자료형이 튜플로 바뀌는 것을 알 수 있다.

for i in a:

    print(i,end=print(i, end=' ')



# 리스트와 튜플로 변수 여러 개 만들기

x = [123# 리스트 X에 값을 3개를 넣고

a, b, c = x # 그 값들을 변수 a, b, c에 넣는다.

print(a, b, c, sep='sep= '# 출력 결과 : 1, 2, 3

y = (456# 튜플 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 = [0123]

b = [4567]

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(0323215))) # 출력 결과 : 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 = [00000# 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 = [12345# 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, 문자열은 삭제할 수 없다.