본문 바로가기

(6)

Python - 문자열(String)

저번 포스팅에서는 기본적인 자료형과 연산자에 대해 알아보았다. 이제는 문자열에 대해서 알아보려고 한다. 문자열은 따옴표(큰따옴표, 작은따옴표)로 감싸 져서 표현된 문자, 단어들의 묶음을 말한다. (따옴표 안에 숫자가 들어가도 자료형이 바뀌지 않는다) 문자열은 어떤 문자든 문자 자체를 그대로 출력하는데, 모든 경우에 그런 것은 아니다. 따옴표로 감싸진 문자열에서 문자가 특별하게 인식되는 경우는 총 세 가지로 나뉘는데, 따옴표 안에 같은 종류의 따옴표를 사용한 경우 이스케이프 시퀀스(Escape sequence)를 사용한 경우 문자열 포매팅을 한 경우 따옴표를 문자열로 표현하는 방법은 아래의 4가지가 있다. 작은따옴표로 감싸기('문자열') 큰따옴표로 감싸기("문자열") 작은따옴표로 세 개로 감싸기('''문자..

Python - 기본적인 자료형과 연산자

앞에서는 변수와 콘솔 출력 함수에 대해 공부하였다. 이번 포스팅에서는 기본적인 자료형과 연산자에 대해 알아보도록 한다. 사람은 숫자와 문자를 자연스레 구분할 수 있지만, 컴퓨터는 그렇지 않다. 그 때문에 컴퓨터로 정보를 처리하려면 꼭 처리할 정보가 어떤 형식인지 명시해주어야 한다. 파이썬은 자료형을 자동으로 판별해주지만, 때에 따라 자료형을 명시해주어야 하는 경우도 발생한다. 자료형을 알고 코딩한다는 것은 내가 처리하려는 정보에 대해 자세히 파악하고 있다는 의미이며, 이는 프로그래머의 아주 중요한 자질 중 하나이다. 우리는 앞서 콘솔 출력 함수인 print 함수를 배웠다. 이제는 콘솔 입력 함수를 알아보자! 지금까지 코드에 연산할 숫자를 코드 안에 변수로 선언했지만, 콘솔 입력 함수를 사용하면 원하는 값..

Python - 변수와 콘솔 출력 함수

이번 공부의 목표는 화면에 원하는 문자를 출력한다 변수와 그 기본 용어에 대해 알고 사용할 수 있다. 콘솔 출력 먼저 콘솔 출력에 대해 배우겠다. '콘솔'은 컴퓨터와 소통하는 창이다. 어떤 기능을 구현했다 할지라도, 결과 화면이 없다면 연산 결괏값을 보여주지 못하여 이 계산기가 제대로 동작하는지 알 수 없다. 즉 기능이 제대로 작동함을 알기 위해 꼭 '콘솔 출력'을 해야 한다. 계산기처럼 필요한 기능을 구현한 뒤 입력값을 넣을 때 콘솔을 통해 확인할 수 있고, 기능에 따라 계산된 결괏값 또한 콘솔 창으로 확인한다. 이렇게 콘솔에 값을 입력, 출력할 수 있으며 이를 위해 콘솔 입출력 함수를 사용한다. 콘솔 출력문은 아래와 같다. print(10) print(10, 20) 결괏값은 1번 줄의 경우 '10',..

Python - 조건문

반복문에이어 파이썬의 조건문에 대해 알아보려고 한다. 예를 들어 영어로 남녀의 성별을 정확히 입력하면 한글 성별을 알려주고, 그 외에는 "알 수 없는 성별"이라고 알려주는 과정은 아래의 순서도로 나타낼 수 있다. 순서도를 해석해보면 예시에 적절한 순서 도임을 알 수 있고, 이를 파이썬 코드로 바꿔보겠다. printf("성별을 입력해주세요 male 혹은 female") gender = input() if(gender == "male"): print("남자입니다") elif(gneder == "female"): print("여자입니다") else: print("알 수 없는 성별입니다") 위 코드를 실행하면 "성별을 입력해주세요"라는 요청에 따라 male 혹은 female을 입력하면 남자인지, 여자인지를 판별..

Python - 반복문

앞에서는 파이썬이 어떤 것인지 간략하게 알아봤다. 이제는 본격적으로 Python의 구문에 대해서 배워보도록 한다. Hello World!라는 문장을 7번 출력해야 하는 경우 print("Hello! world") print("Hello! world") print("Hello! world") print("Hello! world") print("Hello! world") print("Hello! world") print("Hello! world") 위와 같이 코드를 짤 수 있다. 이미 반복문의 개념을 알고 있는 사람이라면(설령 모른다고 할지라도) 같은 코드를 여러 번 반복해서 작성해야 하는 불편함이 존재한다는 것을 알 수 있다. 이는 단지 한 문장을 7번 '반복'하면 된다는 것을 직관적으로 느낄 수 있을 것..

파이썬(Python)이란?

요기요에서 주니어 백엔드 개발자 채용 공고를 보내주며 지원해보라는 선배의 추천이 있었다. https://boards.greenhouse.io/deliveryherokoreatech/jobs/4505551002#app Junior Backend Developer (Rookie Hero 3기) Seoul Office boards.greenhouse.io 백엔드 개발자인 것도 정말 좋고 원하는 인재상도 매우 관심이 갔지만(내가 그런 인재라고 자신있게 말할 수는 없지만) 사용언어가 파이썬이라는 것에서 매우 절망스러웠다. 12월 5일까지 접수 12월 7일에 코딩 테스트가 진행된다고 하는데... 그 안에 파이썬을 배우는건 둘째치고 코테를 칠만한 능숙한 실력이 될 수 있을지 모르겠다.... 지금이라도 (그동안 배워보..

프로그래밍 공부/Python

Python - 문자열(String)

728x90

저번 포스팅에서는 기본적인 자료형과 연산자에 대해 알아보았다. 
이제는 문자열에 대해서 알아보려고 한다.

문자열은 따옴표(큰따옴표, 작은따옴표)로 감싸 져서 표현된 문자, 단어들의 묶음을 말한다. (따옴표 안에 숫자가 들어가도 자료형이 바뀌지 않는다)

문자열은 어떤 문자든 문자 자체를 그대로 출력하는데, 모든 경우에 그런 것은 아니다. 따옴표로 감싸진 문자열에서 문자가 특별하게 인식되는 경우는 총 세 가지로 나뉘는데,

  1. 따옴표 안에 같은 종류의 따옴표를 사용한 경우
  2. 이스케이프 시퀀스(Escape sequence)를 사용한 경우
  3. 문자열 포매팅을 한 경우

따옴표를 문자열로 표현하는 방법은 아래의 4가지가 있다.

  • 작은따옴표로 감싸기('문자열')
  • 큰따옴표로 감싸기("문자열")
  • 작은따옴표로 세 개로 감싸기('''문자열''')
  • 큰따옴표 세 개로 감싸기("""문자열""")

추가적으로 따옴표 세 개(""", ''')를 사용하면 명시적인 개행으로 문장을 나눌 수 있다. 이렇게 여러 방면으로 사용할 수 있는 따옴표지만 작은따옴표와 큰따옴표를 섞어 사용하면 코드의 일관성이 떨어지게 되니 프로그래밍의 생명인 일관성과 간결함을 지키기 위해 백 슬래쉬( \ )를 이용하여 따옴표를 처리하기도 한다. (이렇게 백 슬래쉬를 이용한 특정 문자를 이스케이프 시퀀스라고 얘기한다)

이스케이프 시퀀스(escape sequence)

문자열에서 표현하기 어려운 특정 문다를 백 슬래쉬(\)로 표현하는 것을 이스케이프 시퀀스라고 한다.
대표적으로 문자열을 개행하여(한 줄 띄어서) 출력하고 싶을 때 따옴표 안에 \n을 입력한다.
\n 이외에 문자열 안에서 사용할 수 있는 이스케이프 시퀀스는 아래와 같다. (자주 사용되지는 않는다)

이스케이프 시퀀스(escape sequence) 의미
\\ 백슬래시
\' 작은 따옴표
\" 큰 따옴표
\n 개행(엔터)
\b 백스페이스(글자 하나를 지운다)
\t

 

이제 문자열 연산에 대해서 알아보자!

문자열을 덧셈 부호를 이용해 연결한 것을 Concatenation이라고 한다. 문자열은 곱셈도 가능한데, 문자열 * 문자열의 형태가 아니라
"문자열 * 정수" 형태로 가능하다. 문자열의 곱셈은 문자열을 반복한다는 의미이다.

파이썬이 아닌 다른 엄격한 프로그래밍 언어를 학습했던 사람들에게는 다소 생소한 연산일 것이다. 

인덱싱과 슬라이싱

프로그래밍에서 인덱스(index)는 수많은 데이터 중 원하는 항목을 쉽게 찾도록 기록된 표기이다. 문자열은 바로 2진수로 바꿀 수 없기 때문에, 숫자와 다르게 아스키코드(ASCII CODE)를 사용한다. 아스키코드는 영문 키보드를 사용해 입력할 수 있는 모든 문자에 숫자를 매칭 시킨 표준 체계이다. 하나의 숫자는 아무리 길어도 단일 값이지만, 문자열은 각 문자마다 값을 가진다. 따라서 문자열은 하나로 보일지라도 문자마다 인덱싱이 가능하다.

이제 인덱싱에 대해 알아보자! 인덱싱은 문자열에 포함된 각 문자에 대해 순차적으로 번호를 매기는 것을 뜻한다. 예로 들어 "APPLE" 문자열을 인덱싱 하면 'A', 'P', 'P', 'L', 'E' 순서대로 0, 1, 2, 3, 4라는 인덱스를 가지게 된다. 문자열의 각 문자에 접근하기 위해 작성해야 할 코드 형식은 "변수 이름[인덱스 값]"이다. 여기서 인덱스 값은 인덱스 번호를 뜻하며 인덱스 번호는 0부터 시작한다. (문자열에서뿐만 아니라 프로그래밍에서 순서를 따질 때 모든 인덱스 값은 0부터 시작한다)

또한 파이썬에서는 인덱스는 앞에서부터 뿐만 아니라 뒤에서부터 역시 접근할 수 있다. 그저 인덱스 값에 '- (마이너스)'를 붙이면 되지만, 마지막 요소의 인덱스 값은 '-0'이 아닌 '-1'부터 시작한다. (문자열 자료형은 Immutable타입으로 한 번 초기화하면 사용자 임의로 값을 바꿀 수 없다) 

슬라이싱

슬라이싱은 단어 그대로 지정 범위만큼 데이터 요소를 잘라내는 기능이다. "변수명[첫 인덱스 번호: 마지막 인덱스 번호]" 형식으로 작성하며, 만약 ver [0:5]라고 작성하면 인덱스 값 0부터 4까지 잘라낸다. 슬라이싱할 때 앞 인덱스 숫자를 생략하게 되면 맨 처음부터, 뒤 인덱스 값을 생략하면 맨 뒤까지 범위를 지정한다. 슬라이싱 또한 인덱스 번호에 '- (마이너스) '를 붙임으로써 뒤 요소부터 접근이 가능하다. 

문자열 포매팅

'문자열 자료형'에서 따옴표로 감싸진 문자열 안에서 특별하게 인식되는 문자가 있다는 것을 앞에서 설명했었다. ( 1. 따옴표 안 따옴표, 2. 이스케이프 시퀀스 ) 이제 세 번째 경우, %를 이용한 '문자열 포매팅'을 배울 차례이다. 문자열 포매팅은 사용자가 문자열의 포맷을 지정하는 것이다. 

포맷 코드를 먼저 살펴보자

포맷 코드 설명
%s 문자열(String)
%c 문자 1개(character)
%d 정수(integer)
%f 실수/부동 소수(floating-point)
%x 16진수
%% % 자체

이제 포맷 코드 표를 이용하여 코드를 작성해보겠다.

city = "seoul"
today = 12
day = "화요일"
temperature = 26
announcement = "%s의 %d일 %s 기온은 %d도 입니다." %(city, today, day, temperature)

print("%s의 %d일 %s 기온은 %d도 입니다." %(city, today, day, temperature)) #방법1
print(announcement) #방법2

문자열 안에 %d, %s와 같은 포맷 코드를 입력한 뒤, 문자열 뒤에 %를 시작으로 변숫값을 작성한다. 그러면 앞에서 지정한 포맷부터 차례대로 변숫값이 대입된다.

*주의점

숫자형은 문자열 포맷 코드를 상요하여 표현할 수 있지만, 문자열은 숫자형 포맷 코드를 사용하여 표현할 수 없다.

%f를 사용할 때 f 앞에.(숫자)를 기록하여 소수점을 몇 자리까지 표시할 것인가 지정할 수 있다. (ex. %.2f 라고 작성한다면 소수점 둘째 자리까지 표현한다는 의미이다)

정수형은 실수형으로, 실수형을 정수형으로 포매팅 가능하다. 단, 정수형을 실수형으로 표현하면 소수점 첫째 자리 0이 붙고, 실수형을 정수형으로 표현하면 소수점 첫째 자리에서 내림 처리한다.

출력할 때 출력 폭을 지정할 수 있다. "%(폭)d" 형식으로 입력하면 자동으로 오른쪽으로 정렬되고 왼쪽에는 공백으로 채워진다. 만약 포매팅하고 싶은 요소가 숫자라면 (폭) 앞에 0을 입력하여 빈 곳을 0으로 채울 수 있다.

만약 왼쪽으로 정렬하고 싶다면 "%-(폭)d" 형식으로 입력한다.

문자열을 포매팅하는 데에는 % 키워드 말고도 format() 함수를 사용하여서도 포매팅할 수 있는데, % 키워드 포매팅보다 좀 더 세세하게 사용이 가능하다! % 문자열 포매팅은 문자열 안에서 사용한 포맷 코드와 뒤에 입력한 변수가 1대 1 대응을 해야 했다.

하지만 format() 함수는 %d 같은 포맷 대신에 "{인덱스 값}"을 사용하여 format() 함수 안의 값을 순서 상관없이 사용할 수 있다. 인덱스 값에 대해서 설명하자면, {0}은 format(요소 1, 요소 2,....) 일 때 '요소 1'의 값을 받아온다. format 함수를 이용한 포매팅 사용 형식은 "문자열. format(요소 1, 요소 2...)"이다.

format() 함수 내에서 변수를 선언하고 초기화하면 그 값을 "{변수명}" 형식으로 바로 받아올 수 있다. 물론 인덱스 값과 혼용하여 사용할 수도 있다. 아래는 변수명과 인덱스 값을 혼용한 예이다.

print("저의 이름은 {1}입니다. 
그리고 나이는 {4}살이고 키는 {0}cm입니다. 제 가장 친한 친구는 {name}입니다." .format(181.12, "김구름"
, height = 181.123, age = 25, name = "박에듀"))

 위 예시 코드처럼 앞쪽의 이름과 키는 인덱스 값을 나이와 뒤쪽의 이름은 변수명을 포매팅할 수 있다.

이전 포스팅에서 %10d와 같이 포맷 코드에 특정 값을 추가하여 출력 폭을 지정할 수 있었다. format( ) 함수에서 또한 마찬가지로 사용할 수 있다. 문자열 내에 ""{인덱스 값 or 변수:(출력형식)}" .format(요소)" 형식으로 입력하면 된다. (출력 형식)에는 다음과 같은 몇 가지가 있다.

출력 형식 설명 사용 예시
(문자)<(폭) 폭만큼 확보한 공간에 왼쪽 정렬로 포매팅 후 나머지를 문자로 채운다.

"{0:<10}".format(5)

"{0:0<10}".format(5)

"{0:x<10}".format(5)

(문자)>(폭) 폭만큼 확보한 공간에 오른쪽 정렬로 포매팅 후 나머지를 문자로 채운다.

"{0:>10}".format(5)

"{0:0>10}".format(5)

"{0:x>10}".format(5)

(문자)^(폭) 폭만큼 확보한 공간에 가운데 정렬로 포매팅 후 나머지를 문자로 채운다.

"{0:^10}".format(5)

"{0:0^10}".format(5)

"{0:x^10}".format(5)

아래의 예시 코드를 실행하면 다음과 같은 결과가 나온다.

print("{length: >10d}".format(length = 30))
# 공백문자: (공백) ,정렬: 오른쪽 정렬, 폭: 10
# 순서대로 입력해야하고 생략 가능

print("{0:0^10}".format("goorm"))
# 공백문자: 0 ,정렬: 가운데 정렬, 폭: 10
# 순서대로 입력해야하고 생략 가능

print("{height:!>13.2f}".format(height = 181.24363))
# 공백문자: ! ,정렬: 오른쪽 정렬, 폭: 13, 소수점 2자리 표시
# 순서대로 입력해야하고 생략 가능

>는 무시하자

포매팅할 때 사용하는 { , } 괄호 또한 문자열로 취급해야 할 경우가 있다. 그럴 때는 '{'(문자열)'}'에 {,}를 한번 더 추가하여 
'{{'나'}}' 처럼 2개를 연속해 사용하면 출력 가능하다! 

마지막으로 3.6 버전에서 새로 사용할 수 있게 된 f 문자열 포매팅 방식을 소개한다. 최근에 나온 만큼 매우 간단하게 사용할 수 있다.
f 문자열 포매팅은 format( ) 함수처럼 포맷 코드는 그대로 '{}'를 사용하고 문자열 앞에 f만 붙이면 쉽게 사용할 수 있다.

아래는 f 문자열 포매팅 방식의 예시 코드이다.

name = "김구름"
age = 25
height = 181.123
print(f"저의 이름은 {name}입니다. 그리고 나이는 
{age+10}살이고 키는 {height:!^10.2f)cm 입니다.")

 

문자열 함수

파이썬은 데이터를 다루는데 유용하고 직관적인 내장 함수(기본 함수)를 많이 가지고 있다. 함수는 특정 기능을 수행하기 위해 제작된 명령 묶음이며, 함수 이름과 괄호를 기본으로 구성된다. 콘솔 출력 함수 print( )는 함수 이름 print와 괄호로 구성되고, print(a)와 같이 괄호 안에 요소를 넣어 사용한다. 

이제부터 매우 유용하게 쓰이는 문자열 관련 함수에 대해 알아보겠다. 문자열 함수는 문자열 혹은 문자열 변수 뒤에 '.'을 붙인 뒤 함수를 적어 사용할 수 있다. 대부분의 함수는 어떤 기능을 하는지 이름만 들어도 알 수 있도록 직관적이다. (함수명 옆의 괄호 안에 들어가는 값을 '전달 인자'라고 한다.  전달 인자는 없을 수도 있다)

함수 설명
count() 전달 인자의 문자 개수를 변환
find() 함수의 대상이 되는 문자열에 전달 인자와 같은 문자가 있는지 찾고, 그 문자가 처음 발견된 인덱스 값을 반환. 만약 전달 인자가 문자열내에 없다면 -1 반환
index() find()와 같은 역할을 수행하나, 전달 인자가 문자열 내에 없으면 오류 발생
join()

전달 인자 사이에 함수의 대상이 되는 문자열을 삽입 
(ex. " , ".join("goorm") --> "g, o, o, r, m" )

upper() /
lower()
함수의 대상이 되는 문자열을 대문자로  / 소문자로 변환
lstrip() /
rstrip()
함수의 대상이 되는 문자열의 가장 왼쪽 / 오른쪽 공백을 모두 삭제
strip() 함수의 대상이 되는 문자열의 양쪽에 있는 한 칸 이상의 공백 모두 
삭제
replace() replace(전달 인자1 , 전달 인자2) 형식으로 사용하며, 함수의 대상이 되는 문자열에서 전달 인자1과 동일한 부분을 찾아 전달 인자2로 교체
split() 함수의 대상이 되는 문자열을 전달 인자 기준으로 쪼개 리스트로 반환
(ex. "g ! oo ! rm".split(" ! ") --> ['g','oo','rm'])

 (split() 설명에서 나온 리스트는 추후에 포스팅할 예정이다. 간단하게 설명하면 리스트는 여러 요소들을 모아놓은 묶음이다)

앞에서 언급한 것처럼 함수는 "변수 이름(혹은 문자열 자체).함수()" 형태로 작성하여 사용한다. 그러나 꼭 .함수() 형태로 작성하여 사용한다. 그러나 꼭 .함수() 형태만이 유용하게 쓰이는 것이 아니다. 데이터를 처리할 때 단순한 print() 함수와 같은 형태인 len() 함수는 프로그래밍에서 꽤 자주 쓰이는 중요한 함수이다. 이 함수는 문자열 말고도 여러 값이 모여있는 자료형의 길이를 반환하는 함수이다.
"len(변수 혹은 값 자체)" 형태로 사용한다.

다음 포스트는 '리스트'에 대한 공부를 진행할 예정이다.

728x90

'프로그래밍 공부 > Python' 카테고리의 다른 글

Python - 기본적인 자료형과 연산자  (0) 2019.11.23
Python - 변수와 콘솔 출력 함수  (0) 2019.11.22
Python - 조건문  (0) 2019.11.22
Python - 반복문  (0) 2019.11.22
파이썬(Python)이란?  (0) 2019.11.22
프로그래밍 공부/Python

Python - 기본적인 자료형과 연산자

728x90

앞에서는 변수와 콘솔 출력 함수에 대해 공부하였다.
이번 포스팅에서는 기본적인 자료형과 연산자에 대해 알아보도록 한다.

사람은 숫자와 문자를 자연스레 구분할 수 있지만, 컴퓨터는 그렇지 않다. 그 때문에 컴퓨터로 정보를 처리하려면 꼭 처리할 정보가 어떤 형식인지 명시해주어야 한다. 파이썬은 자료형을 자동으로 판별해주지만, 때에 따라 자료형을 명시해주어야 하는 경우도 발생한다. 자료형을 알고 코딩한다는 것은 내가 처리하려는 정보에 대해 자세히 파악하고 있다는 의미이며, 이는 프로그래머의 아주 중요한 자질 중 하나이다.

우리는 앞서 콘솔 출력 함수인 print 함수를 배웠다. 이제는 콘솔 입력 함수를 알아보자! 

지금까지 코드에 연산할 숫자를 코드 안에 변수로 선언했지만, 콘솔 입력 함수를 사용하면 원하는 값을 콘솔 창에 직접 입력할 수 있다. input()은 가장 기초적인 콘솔 입력 함수이며, 사용자가 콘솔 창에 입력한 값을 변수에 저장한다.  input 함수의 소괄호() 안에는 입력받는 값에 대한 설명을 적는다

a = input("값을 입력하세요 :")
print(a)

위와 같이 코드를 작성할 경우 사용자가 입력한 값을 그대로 출력한다.

이번에는 콘솔 입력 함수를 사용 시 자료형에 대해 고려해야 할 부분을 알아보기로 하자, 먼저 두 값을 입력받은 뒤 그 값들을 더한 결괏값을 출력해보자

a = input("첫번째 숫자를 입력하세요 :")
b = input("두번째 숫자를 입력하세요 :")
print("두 수를 더한 결과는 :", a + b , "입니다.")

예를 들어 a에 10b에 20을 입력하였다면 결과는 "두 수를 더한 결과는 : 30입니다." 문자열이 나타날 것이라 예측하였을 것이다. 
하지만 결과는 "두 수를 더한 결과는 :1020입니다."라는 결과가 나온다. 

왜 이런 결과가 나왔을까? 

input()은 입력한 값을 '문자열'로 저장한다. 따라서 1과 3을 입력한 뒤 두 값을 + 연산하면, 문자열 두 개를 연결하여 13이 출력된다.
이 때문에 입력받은 값을 숫자 연산을 하고 싶다면 해당 값을 정수형(int) 혹은 실수형(float)으로 변환해야 한다.

a = int(input("정수를 입력하세요 :")
b = float(input("실수를 입력하세요 :")
print("두 수를 더한 결과는: ", a + b + "입니다.")
print(type(a+b))

위의 코드를 실행하였을 때 결괏값은 a 정수와 b 실수를 더한 값이 제대로 출력되고, a + b의 타입은 float 형으로 출력된다.

파이썬에서는 자료형이 자동으로 지정되는 경우가 다수이다. 이때, 변수의 자료형을 확인하고 싶다면 type() 함수로 알아낼 수 있다.

숫자형

숫자형이란 숫자 형태로 이루어진 자료형으로, 수학 시간에 배운 숫자의 구분과 비슷하다.

숫자형 코드예시
정수(int) 1, 2, 0, -10
실수(float) 3.15, -23.1
복소수(complex) j, 2j, 3+2j, 1+2j
16진수 0xDA
02진수 0b110101

정수형은 일반적인 정수이며, 프로그램에서 int형이라 저장된다.
실수형은 소수점이 포함된 숫자로, 프로그램에서 float형이라 저장된다.
복소수형은 허수를 포함한 수를 의미하고, 실수부는 "변수.real" 허수부는 "변수.imag"로, 켤레복소수는 "변수.conjugate()"로 반환한다.
16진수는 Hex의 x를 따와 0x1A 형태로, 2진수는 1과 0으로 표현한다. 이 모든 수는 따로 형변환 없이 연산 가능하며 10진수로 출력한다.

정수 + 실수 --> 실수 
정수 + 복소수 --> 복소수 

의 연산결과가 나타난다.

불(bool)형

참(True)과 거짓(False)을 다루는 'bool'형에 대해서도 알아보자. bool형은 간단한 자료형이지만 프로그램 실행 흐름을 제어할 때 사용하기 때문에 매우 신중히 사용해야 한다. bool형을 초기화하는 형식은 "변수 = True/False"이며, True나 False의 앞글자는 반드시 대문자로 입력해야 한다. 앞에서 간략하게 훑어봤던 '조건문'은 bool형과 바늘과 실의 관계이다.

a = True;

if (a):
	print("참")
else :
	print("거짓")

위 코드는 간단한 조건문 그리고 bool형의 조합이다. a가 'True' 면 '참'이 그 외에는(False 포함) '거짓'이라고 출력되는 코드이다.

자료형의 참/거짓

파이썬에서 True/False를 사용할 때 주의해야 할 것은 주어진 조건에 대한 참/거짓뿐만 아니라 값의 존재 여부에 따라서도 판별한다는 점이다. 다른 컴퓨터 언어에서는 0과 1을 참/거짓으로 많이 사용하지만, 파이썬은 좀 더 범위를 넓혀 값이 존재하면 참, 존재하지 않으면 거짓으로 판별한다. 

값에 대한 참/거짓 구분
"Goorm", "hello"등 어떤 문자열 True
"" False
[1,2,3] True
[], (), {} False
1 True
0, None False

 

  1. "" 안에 문자 혹은 문자열이 '존재'하므로 True를 뜻한다. 즉, 따옴표 안에 문자가 없다면 어떤 값도 존재하지 않음으로 False를 출력한다. 따옴표는 그저 문장의 시작과 끝을 알려주는 도구임을 다시 확인할 수 있다.
  2. 괄호 또한 따옴표와 마찬가지로 생각한다. 괄호는 각 값을 묶어 보관하는 도구일 뿐, 문자를 뜻하지는 않는다.
  3. 일반적으로 숫자 0은 존재하지 않음을 뜻하므로 파이썬에서 또한 False로 나타난다.

이제 파이썬의 세 가지 연산자들에 대해 배워보자

수식 연산자

여러 자료형의 변수를 연산하는 '연산자'에 대해 알아보자. 수식 연산자는 두 개의 피연산자를 요구하는 이항 연산자(binary operator)이다. 

종류 기능 사용 가능한 자료형
+ 두 값을 더한다 정수, 실수, 복소수, 문자
- 왼쪽 값에서 오른쪽 값을 뺀다 정수, 실수, 복소수
* 두 값을 곱한다. 정수, 실수, 복소수
/ 왼쪽 값을 오른쪽 값으로 나눈다. 정수, 실수, 복소수
% 왼쪽 값을 오른쪽 값으로 나눈 나머지를 반환한다.  

연산자는 두 개를 겹쳐 사용할 때 다른 의미를 가지기도 한다.

종류 기능 사용 가능한 자료형
** 왼쪽 값을 오른쪽 값만큼 제곱한다. 정수, 실수, 복소수
// 왼쪽 값을 오른쪽 값으로 나눈 몫을 반환한다. 정수

앞으로 프로그래밍에서 숫자 데이터는 많이 다루게 될 것이다. 특히 * 연산자는 문자 * 숫자 형태로 사용할 수 있다는 예외를 기억하자! 

또 파이썬에서 문자열 + 숫자는 불가능하지만, 정수 + 실수와 같이 연산 대상인 변수가 모두 숫자라면 int형이든 float형이든 자유롭게 연산할 수 있다. 

논리 연산자

논리 연산자는 두 bool형 변수의 논리 연산을 위해 사용하며, 합집합, 교집합, 차집합의 개념과 동일하다. 

종류 기능 설명
and 두 값이 모두 True일 때만 True를 반환한다

T and T = T

T and F = F

or 두 값 중 하나라도 True이면 True를 반환한다

T or T = T

F or T = T

not False이면 True를, True이면 False를 반환한다

not False = True

not True = False

이와 같은 논리 연산자는 추후 조건문과 함께 자주 사용하니 종류와 기능에 대해 숙지하자! 

관계 연산자

관계 연산자는 두 값의 대소 혹은 동등의 관계를 따지는 연산자이다.

종류 기능
== 두 값이 같은지 비교한다
!= 두 값이 다른지 비교한다

<=

오른쪽 값이 왼쪽 값보다 더 큰가 비교한다.

=가 추가되면 크거나 같은지 비교한다.

>

>=

왼쪽 값이 오른쪽 값보다 더 큰가 비교한다.

=가 추가되면 크거나 같은지 비교한다.

 

출력 결과는 어떤 숫자 값이 아니라 True, False로 나오게 된다. 관계 연산자는 반복문, 조건문에서 조건식으로 매우 자주 사용한다.

 

728x90

'프로그래밍 공부 > Python' 카테고리의 다른 글

Python - 문자열(String)  (0) 2019.11.28
Python - 변수와 콘솔 출력 함수  (0) 2019.11.22
Python - 조건문  (0) 2019.11.22
Python - 반복문  (0) 2019.11.22
파이썬(Python)이란?  (0) 2019.11.22
프로그래밍 공부/Python

Python - 변수와 콘솔 출력 함수

728x90

이번 공부의 목표는

  1. 화면에 원하는 문자를 출력한다
  2. 변수와 그 기본 용어에 대해 알고 사용할 수 있다. 

콘솔 출력

먼저 콘솔 출력에 대해 배우겠다. '콘솔'은 컴퓨터와 소통하는 창이다. 어떤 기능을 구현했다 할지라도, 결과 화면이 없다면 연산 결괏값을 보여주지 못하여 이 계산기가 제대로 동작하는지 알 수 없다. 즉 기능이 제대로 작동함을 알기 위해 꼭 '콘솔 출력'을 해야 한다.

계산기처럼 필요한 기능을 구현한 뒤 입력값을 넣을 때 콘솔을 통해 확인할 수 있고, 기능에 따라 계산된 결괏값 또한 콘솔 창으로 확인한다. 이렇게 콘솔에 값을 입력, 출력할 수 있으며 이를 위해 콘솔 입출력 함수를 사용한다.

콘솔 출력문은 아래와 같다.

print(10)
print(10, 20)

결괏값은 1번 줄의 경우 '10', 2번 줄의 경우 '10 20'이다.

변수의 선언과 초기화

변수에 대해 알아보자! 변수는 말 그대로 변하는 수이자, 특정한 형식을 가진 값을 저장하는 공간을 의미한다.

int x = 2

  • 자료형(data type): 변수가 가지는 특정한 형식(1은 정수형, c는 문자형)
  • 변수명: 변수의 이름
  • 변숫값: 변수에 저장한 값

세 요소 중 자료형과 변수명을 작성하여 변수를 생성하면 '변수를 선언했다'라고 말하며 새로 생성된 변수에 처음 값을 입력하는 과정을 '변수 초기화'라고 한다. 

C언어와 같은 엄격한 컴퓨터 언어에서는 변수에 저장할 값에 따라 '자료형'을 직접 작성해야 한다. 때문에 'int b = 10.5'와 같은 잘못된 자료형을 작성할 수 있다. 하지만 파이썬에서는 비교적 이런 실수를 할 가능성이 적다.

#자료형 입력이 필요없는 파이썬 코드 
a = 10 #변수 a 초기화
b = 10.5 #변수 b 초기화

 

추가적으로 동일한 자료형을 가진 변수들은 한 문장의 코드로 한 번에 초기화할 수 있다. 

a, b = 10, 30;

실제 결괏값도 a에 10, b에 30의 정수 값이 저장된 것을 알 수 있다. 
이는 코드의 간결화 작업에 큰 도움이 된다.

 

728x90

'프로그래밍 공부 > Python' 카테고리의 다른 글

Python - 문자열(String)  (0) 2019.11.28
Python - 기본적인 자료형과 연산자  (0) 2019.11.23
Python - 조건문  (0) 2019.11.22
Python - 반복문  (0) 2019.11.22
파이썬(Python)이란?  (0) 2019.11.22
프로그래밍 공부/Python

Python - 조건문

728x90

반복문에이어 파이썬의 조건문에 대해 알아보려고 한다. 

예를 들어 영어로 남녀의 성별을 정확히 입력하면 한글 성별을 알려주고, 그 외에는 "알 수 없는 성별"이라고 알려주는 과정은 아래의 순서도로 나타낼 수 있다.

순서도를 해석해보면 예시에 적절한 순서 도임을 알 수 있고, 이를 파이썬 코드로 바꿔보겠다.

printf("성별을 입력해주세요 male 혹은 female")
gender = input()

if(gender == "male"):
	print("남자입니다")
elif(gneder == "female"):
	print("여자입니다")
else:
	print("알 수 없는 성별입니다")

위 코드를 실행하면 "성별을 입력해주세요"라는 요청에 따라 male 혹은 female을 입력하면 남자인지, 여자인지를 판별하여 알려줍니다.
이 코드는 if 조건문을 사용한 것으로, 7번째 줄 if 옆의 괄호 속 조건의 참, 거짓을 판별하여 그에 알맞은 결과를 실행합니다. 

주석

주석은 일종의 부가설명을 의미하는데, 여러 개발자가 함께 일하다 보면 서로의 코드를 자주 살펴봐야 한다. 그래서 자신이 작성한 코드에 설명을 적어놓는데, 이때 주석(Comment)을 사용한다. 주석 처리된 부분은 컴퓨터를 위한 내용이 아니기 때문에 컴파일 과정을 거치지 않는다.

파이썬에서는 한줄 주석#, 여러 문장을 주석 처리할 때 """ ~ """ (큰따음표 세 개)를 여닫을 때 사용한다.

728x90

'프로그래밍 공부 > Python' 카테고리의 다른 글

Python - 문자열(String)  (0) 2019.11.28
Python - 기본적인 자료형과 연산자  (0) 2019.11.23
Python - 변수와 콘솔 출력 함수  (0) 2019.11.22
Python - 반복문  (0) 2019.11.22
파이썬(Python)이란?  (0) 2019.11.22
프로그래밍 공부/Python

Python - 반복문

728x90

앞에서는 파이썬이 어떤 것인지 간략하게 알아봤다. 
이제는 본격적으로 Python의 구문에 대해서 배워보도록 한다. 

Hello World!라는 문장을 7번 출력해야 하는 경우

print("Hello! world")
print("Hello! world")
print("Hello! world")
print("Hello! world")
print("Hello! world")
print("Hello! world")
print("Hello! world")

위와 같이 코드를 짤 수 있다. 이미 반복문의 개념을 알고 있는 사람이라면(설령 모른다고 할지라도) 같은 코드를 여러 번 반복해서 작성해야 하는 불편함이 존재한다는 것을 알 수 있다. 

이는 단지 한 문장을 7번 '반복'하면 된다는 것을 직관적으로 느낄 수 있을 것이다. 
이 코드를 좀 더 간결하고 논리적으로 작성하기위해 먼저 순서도의 개념을 설명한다.

순서도

  •  순서도는 어떤 일을 처리할 때 여러 종류의 상자와 이를 잇는 화살표를 이용하여 명령을 어떤 순서대로 어떻게 처리해야 하는지 보여주는 도표이다. 각 상자는 모양에 따라 의미가 있으며, 화살표 방향대로 진행한다. 

타원형: 순서도의 시작과 끝
육각형: 작업하기 전 초기 설정
마름모: 조건에 따라 참/거짓 구분
사각형: 처리해야 할 조건

위의 순서도를 해석해보면, 몇 번 출력했는지 확인할 수 있도록 출력한 횟수를 i에 저장한 뒤, 'Hello world!'를 출력할 때마다 i에 1씩 더해 7이 될 때까지 반복한다는 의미이다. 이제 이걸 아래와 같이 파이썬 코드로 작성할 수 있다.

for i in range(7):
	print("Hello world!")

 실행결과는 아래와 같다.

이렇게 for 반복문을 이용하여 'Hello world!'를 7번 반복 출력할 수 있다. 이처럼 반복문은 '일을 되풀이' 할 때 사용합니다.

728x90

'프로그래밍 공부 > Python' 카테고리의 다른 글

Python - 문자열(String)  (0) 2019.11.28
Python - 기본적인 자료형과 연산자  (0) 2019.11.23
Python - 변수와 콘솔 출력 함수  (0) 2019.11.22
Python - 조건문  (0) 2019.11.22
파이썬(Python)이란?  (0) 2019.11.22
프로그래밍 공부/Python

파이썬(Python)이란?

728x90

요기요에서 주니어 백엔드 개발자 채용 공고를 보내주며 지원해보라는 선배의 추천이 있었다. 

https://boards.greenhouse.io/deliveryherokoreatech/jobs/4505551002#app

 

Junior Backend Developer (Rookie Hero 3기)

Seoul Office

boards.greenhouse.io

백엔드 개발자인 것도 정말 좋고 원하는 인재상도 매우 관심이 갔지만(내가 그런 인재라고 자신있게 말할 수는 없지만) 사용언어가 파이썬이라는 것에서 매우 절망스러웠다. 12월 5일까지 접수 12월 7일에 코딩 테스트가 진행된다고 하는데... 그 안에 파이썬을 배우는건 둘째치고 코테를 칠만한 능숙한 실력이 될 수 있을지 모르겠다....  지금이라도 (그동안 배워보고 싶다는 생각이 많았던) 파이썬을 공부하기로 했다.

현재 나는 구름edu에서 진행하는 DevelUp 1기 멤버이기에 2개의 파이썬 강의가 공개되어 있었다. 

그중에 수업 목차가 더 명시적이라고 느껴지는

'바로 실행해보면서 배우는 파이썬 3' 강좌를 수강하기로 한다. 

강의 내용을 요약하면서 블로그에 정리하도록 하겠다. (복습할 때 수월하도록!!)

 

본론으로 들어가자! 

파이썬(Python)이란 무엇인가? 

파이썬은 다른 언어와 비교해서 쉽고 높은 생산성을 가진다. 파이썬 언어의 창시자 '귀도 판 로썸(Guido van Rossum)'은 파이썬이라는 이름의 유래를 그가 즐겨보던 영국의 코미디 그룹 몬티 파이썬에서 따왔다고 한다. 하지만 그리스 신화에 나오는 피톤(Phyton)이라는 이름을 가진 거대한 뱀이 더 유명하여 파이썬 로고에는 뱀 두 마리가 얽혀있는 모양이 되었다. (로고에 박힌 두 동그라미는 뱀의 눈이다)

 

파이썬으로 많은 것을 할 수 있지만 그중 대표적으로 두 가지가 있다.

  1. 웹 프로그래밍
    파이썬으로 웹 프로그래밍을 할 때는 주로 'Django(장고)'라는 오픈 소스 기반의 웹 프레임워크를 사용한다. 
  2. 빅 데이터 분석
    사람의 힘으로 처리하기 힘든 대용량 데이터를 분석하고 데이터 간의 패턴을 알려주며 이를 시각화하여 보여주는 분야이다. (인공지능 개발에 많이 사용된다)

※ 인터프리터 언어 

말 그대로 해석하면 해석기라는 의미를 가지며, 소스 코드를 바로 실행하는 컴퓨터 프로그램 혹은 그러한 환경을 의미한다. 
파이썬은 인터프리터 언어이지만 C, Java 등의 언어는 컴파일러 언어라고 하는데, 그 차이는 아래와 같다. 

인터프리터

  • 용어 정의: 소스 코드를 바로 실행하는 컴퓨터 프로그램 혹은 그러한 환경(실시간 통역)
  • 특징: 소스 코드를 한 줄씩 읽어 들이며 번역과 실행을 동시에 진행하여 별도의 실행 파일이 존재하지 않으며, 잘못된 명령을 수정하기 쉽다. 하지만 소스 코드를 직접 실행하기 때문에 실행 속도가 느리다.
  • 대표 언어: Python, JavaScript 

컴파일러

  • 용어 정의: 특정 프로그래밍 언어를 다른 언어로 번역하는 프로그램(통·번역)
  • 특징: 소스 코드를 목적 코드로 번역하여 옮기기 때문에 실행 가능한 프로그램을 생성한다. 생성된 프로그램은 목적 프로그램 혹은 바이너리 파일이라 부른다. (이미 프로그램을 생성했기 때문에 실행이 매우 빠르다)
  • 대표 언어: C, C++

※ 인덴트 (띄어쓰기, 공백)

파이썬은 다른 프로그래밍 언어보다 인덴트(띄어쓰기, 공백)에 민감한 언어이다. 일반적으로 많이 사용하는 다른 프로그래밍 언어는 중괄호를 이용해서 블록을 표현하는 반면, 파이썬은 공백을 이용하기 때문에 공백을 사용할 때 매우 신중해야 한다. 

 

 

728x90

'프로그래밍 공부 > Python' 카테고리의 다른 글

Python - 문자열(String)  (0) 2019.11.28
Python - 기본적인 자료형과 연산자  (0) 2019.11.23
Python - 변수와 콘솔 출력 함수  (0) 2019.11.22
Python - 조건문  (0) 2019.11.22
Python - 반복문  (0) 2019.11.22