python.02

2020. 3. 11. 19:33
728x90

*한국 콘텐츠 아카데미의 온라인 강의를 듣다가 알게 된 사실인데, 강사님이 영상에서 사용하는 ipython이 소개된 사이트https://www.tutorialspoint.com/ ) 에 없어서 저는 따로 visual studio에서 파이썬 코딩 연습을 하기로 했습니다.

앞의 포스트에서 Python이 무엇인지를 알아보았다면, 이번에는 파이썬 프로그램의 필수 존재들인 기본 자료형과 문자열의 특징을 살펴보겠습니다.

 

 

1. 기본 자료형의 종류

Python 뿐만이 아니라 대부분의 프로그래밍 언어들은 정수형, 실수형 등 여러 가지 자료형을 사용합니다. 정수형(float)은 순수하게 정수만 다루는 형태를 의미하며 양수, 음수도 Python에서 다루기도 합니다.

사칙연산 ( + , - , * , / , // ) 

Python에서는 사칙연산이 전부 가능한데, 일단 나눗셈을 통해 여러 특징을 살펴보도록 하겠습니다.

5 / 2 를 하면 당연히 2.5가 도출될 것이라 예상하겠지만, 사실은 2가 결과값으로 나옵니다. 이는 정수형을 정수형으로 나누었기 때문에 그 결과값도 정수형이 나오게 된 것입니다. 따라서 5.0 / 2.0 이라고 해줘야 실수인 2.5가 도출된다는 얘기입니다.

만약, 결과가 실수 값으로 나왔는데 소수점 아래 자리는 버리고 만 챙기고 싶다면 나눗셈 연산자 / 2개 동시에 입력하면 됩니다 (//). 예를 들어, 5.0 // 2.0 을 입력하면 2가 나올 것입니다.

반대로 몫을 버리고 소수점 아래 나머지만 챙기고 싶다면 % (모듈러스 또는 percentage) 연산자를 사용하면 됩니다.

제곱 연산 ( ** )

제곱 연산은 바로 ** 입니다.

2**2 는 2의 2제곱, 2**0.5 는 2의 0.5제곱이자 루트2 (√2 ) 라고 할 수 있습니다. 2 8, 2 8제곱은 256입니다.

복소수의 연산 ( j )

파이썬은 특이하게도 복소수의 범위까지도 허용합니다. 이번에는 복소수형에 대해 알아보겠습니다.

일반적으로 학교 수학 시간에 배울 때 허수를 imaginary number에서 따와서 i로 표현했습니다. 그렇다면 허수와 실수를 통틀어 복소수 (complex number)라고 부르는데, 한마디로 복잡한 수라고 볼 수 있습니다.

복소수의 연산(j)에 대하여 a2 + 3j 로 정의하면 a 는 complex라고 뜹니다.

그러고 나서 b complex(2, 3) 으로 정의하면 bcomplex라고 뜨는 것을 볼 수 있습니다.

복소수끼리의 덧셈과 뺄셈은 간단합니다. 학교 다닐 때 배웠던 것처럼 실수부는 실수부끼리, 허수부는 허수부끼리 각각 더하거나 빼주면 복소수의 덧셈을 완성할 수 있습니다. 곱셈의 경우엔 곱셈 공식에 따라 전개해서 곱해주면 됩니다. 이제 a2+3j 인 경우, a켤레복소수를 만들어 주는 a.conjugate() 함수를 적용해서 a 값을 2-3j 로 바꿔줄 수도 있습니다.

이렇게 정수형, 실수형, 혹은 복소수형과 같은 기본적인 자료형의 사칙연산에 대해 살펴보았습니다.

 

 

2. 문자열 관련 함수

일단 ‘’ 와 “” 를 혼용할 수 없다는 점을 기억해주시고, 이제부턴 python에서 사용되는 문자열의 특징에 대해 알아보도록 하겠습니다.

Python에서는 그냥 ‘I love python’이라 입력을 해도, ‘I’ + ‘love’ + ‘python’ 이라 입력을 해도 같은 결과가 나옵니다! , 앞에 print() 등의 함수를 따로 써주지 않아도 된다는 점에서 C나 java 보다는 비교적 쉽게 활용됩니다.

번호 매기기

예시)

str = “i love python, not java”
str[10]  
# h

이번에는 위와 같이 str을 정의한 코드를 입력하고 str[10]의 값을 출력하라 명령하면 11번째 요소인 h가 결과값으로 보여집니다. 왜냐하면 python에서는 문자열의 시작을 0번째라고 인식하기 때문입니다 : 

str[0] = ‘i’

str[1] = ‘ ’

str[2] = ‘l’

str[3] = ‘o’

str[10] = ‘h’

 

범위 지정하기

그리고 범위를 지정하는 방법에 대해 알아두자면,

str[0:10] 또는 str[:10] // 처음부터 9번째 문자열까지 출력

(str[-1]) // -1은 가장 마지막에 있는 문자열을 출력

str[0:-1] // -1보다 한 글자 앞 까지만 출력하라는 명령. , 문장의 가장 마지막 문자를 뺀 나머지만 출력함.

str[:] 또는 str // 전체 문장을 출력할 때

str[5:] // 6번째 글자부터 그 이후를 출력

 

포맷팅(formatting)

Python의 문자열 처리하는 방법 중에서 포맷팅에 대해 한번 알아보겠습니다.

print'I like %s programming language' % 'python'

위와 같이 입력하면 앞에 있는 %s 부분이 뒤에 % 다음에 나오는 단어(python)로 치환 됩니다. 즉, %s 를 써두면 전체 문장을 그대로 가져와서 인용하되, 두 번째 % 뒤에 나오는 단어만 바꿔서 그대로 사용할 수 있습니다.

만약 s대신 d를 사용해보면 어떨까요?

print'I like %d programming language' % 'java'


ddecimal의 약자로 십진수를 의미하기 때문에 에러가 발생할겁니다. 왜냐하면 %d 를 사용할 경우엔 두 번째 % 뒤에 숫자를 입력해야하지만 위의 예시에는 문자열이 나와있기 때문입니다.

%d 를 사용할 때엔 두번째 % 뒤에 '3.14' 가 아닌 그냥 3.14 를 입력해야 합니다. 코테이션( '' )을 써버리면 숫자가 아닌 문자열로 인식하기 때문에 오류가 난다는 점을 주의해야 합니다. 또한, 3.14를 입력하면 3이 출력되는데, 이는 decimal이 십진수이긴 하나 일반적으로 정수를 나타내기 때문에 정수인 3이 나옵니다. 3.14를 반환받고 싶으면 실수를 의미하는 플로트 %f 를 사용해야 합니다.

이외에도 몇 가지 함수들을 더 알아보도록 하겠습니다 :

len(str)  // str 함수의 length(길이)

str.count()  // 문장 안에 해당 문자열이 몇 개 나오는지 세는 함수. str.count(‘m’) 함수는 문장에 m이 몇 번 나오는지 찾아내라는 명령입니다. 만약 m이 문장 안에 들어가 있지 않다면 0이 출력됩니다.

str.upper()  // 모든 입력된 문자를 대문자로 바꿔줌.

str.lower()  // 모든 입력된 문자를 소문자로 바꿔줌.

str.split()  // 문장 안의 띄어쓰기를 기준으로 단어를 쪼개서 list로 만들어 출력함. 

 

이번에는 포맷팅 중에서도 고급 포맷팅에 대해서 한번 알아보도록 하겠습니다.

“I like {0} language and {1}os”.format(“python”, “Linux”)

라고 입력하면 {0} 자리엔 Python, {1} 자리엔자리엔 Linux가 매칭 됩니다.이런 식으로 parameter를 지정을 할 수도 있으며 혹은 조금 더 고급스럽게 한다면

lang = “python”
os = “Linux”

“I like {lang} language and {os} os”.format(lang = “java”, os = “Windows”)
# 결과 : “I like java language and Windows os”

 

lang과 os를 정의한 다음 숫자 0, 1 대신 변수명을 입력하는 것입니다. 


정리하기

  • 기본 자료형에는 정수, 부동소수, 복소수, 8진수, 16진수, 진리형 등이 있습니다.
  • 문자열은 큰 따옴표와 작은 따옴표 모두 사용할 수 있으며 덧셈 연산자로도 손쉽게 연결할 수 있습니다. 또한 문자열은 [3:10], [3:], [:10], [:]처럼 범위를 지정해서 접근할 수 있으며, 문자열 포매팅을 사용하면 문자열을 쉽게 변환할 수 있습니다.
728x90

'Python' 카테고리의 다른 글

Python.05  (0) 2020.05.18
Python.04  (0) 2020.05.18
python.03  (0) 2020.03.15
python.01 (Intro)  (0) 2020.03.06

BELATED ARTICLES

more