2022. 3. 27. 15:43ㆍPython
파이썬은 굉장히 인간다운 언어이다.
문법이 쉽기 때문에 빠르게 배울 수 있고 무료이지만 매우 강력하다.
인터프리터 언어이기에 조금 느리지만 C와 같이 쓸 수 있다!
시스템 유틸리티/GUI 제작/C, C++과의 결합/웹 프로그래밍/데이터 분석/데이터베이스 프로그래밍 등.. 여러가지 할 수 있지만 시스템과 밀접한 프로그래밍 영역에 대한 접근이나 모바일 프로그래밍 등은 못한다.
<자료형>
자료의 데이터 타입이며 입력한 값을 숫자인지 문자인지 구분할 수 있게 해줌
자료에 대한 타입으로는 숫자, 문자열, 불(논리)
어떠한 값을 담는 자료구조로 변수, 리스트, 튜플, 딕셔너리, 집합 등이 있음
변수란?
어떤 값을 담는 상자이다
a = a+1
//오른쪽에 있는 a+1의 값을 왼쪽 a에 담는다는 뜻
여러가지 자료형들에 대한 예제들을 보자
정수
a = 1
print(type(a))
print(a)
출력 결과
<class 'int'>
1
실수
a = 1.2
print(type(a))
print(a)
출력 결과
<class 'float'>
1.2
print(type(변수))로 해당 변수의 자료형을 확인할 수 있다.
파이썬은 타 언어들과 다르게 변수의 자료형을 굳이 선언 해주지 않아도 정수면 int 실수면 float 등 알아서 정해준다.
a = 3
b = 4
print(a//b)
// a/b는 나누기 a//b는 몫을 나타내는 식이다.
print(a**b)
// **는 제곱으로 계산해준다,
<문자열 자료형>
a = "Hello World"
print(type(a))
print(a)
b= 'Python\'s favorite food is perl'
print(b)
출력 결과
<class 'str'>
Hello World
Python's favorite food is perl
파이썬에서는 "", '' 안에 문자열 변수를 선언할 수 있다.
b를 보면
\
이 문자의 의미는 이 기호 바로 뒤에 나올 문자는 문자열로 인식해달라고 컴퓨터에 말하는 것이다.
저 기호를 붙이지 않고 한다면 'Python' 까지만 문자열로 인식해 출력이 되고 그 이후엔 컴퓨터 입장에선 알 수 없는 말이기에 오류가 뜬다.
이러한 코드를 이스케이프 코드라고 칭하며
프로그래밍할 때 사용할 수 있도록 미리 정의해 둔 문자 조합이다.
자주 쓰이는 몇가지에 대해서 소개 해보겠다.
\n 문자열 안에서 줄을 바꿀 때
\t 문자열 사이에 탭 간격을 줄 때
\\ 문자 \를 그대로 표현할 때
\' 문자 '를 그대로 표현할 때
\" 문자 "를 그대로 표현할 때
\b 백스페이스
\000 널 문자
아래와 같이 큰 따옴표를 3개를 써서 print함수를 사용하면
b= """Python's
favorite
food is
perl"""
print(b)
출력 결과
Python's
favorite
food is
perl
이렇게 이스케이프 문자를 사용하지 않고도 그대로 출력 되는 결과를 확인할 수 있다
*문자열 더하기
a = "Python"
b = "is fun!"
print(a+b)
print(a*5)
출력 결과
Pythonis fun!
PythonPythonPythonPythonPython
좀 놀랐던게 문자열*숫자를 입력하니 해당 문자열을 그 횟수만큼 반복한다는 사실도 확인할 수 있었다 ㄷㄷ
<인덱싱>
- 파이썬에서는 0부터 숫자를 센다.
가령, 이런 문자열이 있다고 가정하고
a = "My name is inho"
a[0] M
a[1] y
a[2] 공백
.
.
.
a[n] o
이러한 형식이다
a = "My name is inho"
print(a[5])
이 코드의 실행 결과는 당연히
m
이 출력이 된다 0부터 시작해 a[5]는 m이기 때문이다.
그러면 음수를 넣으면 어떻게 될까?
a = "My name is inho"
print(a[-1])
출력 결과
o
우리는 음수를 넣으면 오른쪽 끝에서부터 역순으로 카운트 한다는 사실을 확인할 수 있다.
* 인덱싱을 이용한 슬라이싱 기법
a = "My name is inho"
print(a[0:4])
출력 결과
My n
분명 범위는 0번 인덱스부터 4번 인덱스이다.
여기서 4번인덱스는 a이다. 하지만 n까지 출력된 것을 보면 끝 범위 -1까지만 출력을 하는 것을 확인할 수 있다.
고로 a[ : : ]은
//a[이상 : 미만 : 간격] 을 의미한다.
간격의 경우 따로 지정해주지 않으면 1의 값을 기본으로 가진다.
만약 첫번째 '이상'부분에 어떠한 값도 넣지 않는다면?
a = "My name is inho"
print(a[:7])
출력 결과
My name
첫칸을 비울 경우 무조건 처음부터 시작한다는 사실을 확인할 수 있다.
그렇다면 당연히 두번째 칸을 비운다면 끝까지 출력 될거라고 생각이 드는데 확인 해보자
a = "My name is inho"
print(a[2:])
출력 결과
name is inho
2번째 인덱스인 공백부터 시작해 끝까지 출력되는 결과를 확인할 수 있다.
언어를 공부하면서 가장 중요한 것은 아무리 간단한 내용이라도 대충 이렇겠지 하고 넘어가기 보단 하나하나 직접 해보면서 경험하는 것이 중요한 것 같다. C언어 공부할 때 Java에서 배운 내용이고 비슷하니까 대충 이렇겠지~하고 넘어갔다가 결국 처음부터 다시 공부하는 불상사가 일어났다.. 이젠 그런 멍청한 짓 안할려고;
그래서 간격까지 확인 해보자
a = "My name is inho"
print(a[::2])
출력 결과
M aei no
2칸 간격으로 출력을 하는 것을 확인할 수 있다.. 좀 귀찮더라도 제발 꼭 한번씩 다해봐 진짜 나중에 피눈물 흘린다...
좀 더 공부하다 보니 반가운 친구들 발견
num = 5
day = "two"
a = "I ate %d apples. so I was sick for %s days." % (num, day)
print(a)
출력 결과
I ate 5 apples. so I was sick for two days.
근데 오히려 C보다 알아보기 쉽지 않나? 파이썬 처음 접하는 나 조차도 %d, %s를 문자열 뒤에 %(num, day)로 표시한걸 보면 당연히 %에 해당하는 값들을 순서대로 넣어준거라고 생각이 든다
%s = 문자열(String)
%c = 문자 1개(character)
%d = 정수(Integer)
%f = 부동 소수(floating-point)
익숙한 서식지정자 친구들.. 이런건 C와 차이점 없다
a = "%0.2f" %3.124324
print(a)
하나 짚고 가면 %간격.소수점 남기는 자리의 수를 이용해 출력한다는 사실을 기억하고 가자
출력 결과
3.12
<format>
a = "I ate {} apples.".format("five")
print(a)
출력 결과
I ate five apples.
좀 더 보면
a = "I ate {dasdf} {ag} apples.".format(dasdf="five", ag="ee")
print(a)
출력 결과
I ate five ee apples.
굉장히 대충 썼지만 그래서 더 명확히 확인할 수 있다.
format을 이용해 문자열 사이에 원하는 변수나 값을 넣는 방법도 있다는 사실 !
<count와 find함수>
a = "python jonna ha,,,"
print(a.count(','))
print(a.find('t'))
출력 결과
3
2
위와 비슷한 index함수도 있지만 후에 배울 리스트와 연결해서 많이 사용하는 join함수에 대해 짧게 정리해보겠다.
a = ","
print(a.join('abcd'))
출력 결과
a,b,c,d
예제를 보면 알 수 있듯이 문자열 삽입함수이다.
<대소문자 변환 함수 upper/lower>
a = "abcd"
print(a.upper())
b = "EFGH"
print(b.lower())
출력 결과
ABCD
efgh
<공백을 없애주는 strip함수>
a = " Hello~ "
print(a.strip())
출력 결과
Hello~
<문자열을 바꾸는 replace함수>
a = "I love dog"
print(a.replace("dog", "cat"))
출력 결과
I love cat
<문자열을 나누는 split 함수>
*문자열을 잘라서 리스트로 만들어줌
a = "I love dog"
print(a.split())
출력 결과
['I', 'love', 'dog']
split()안에 문자를 기준으로 문자열을 자름
'Python' 카테고리의 다른 글
Python - 제어문 (0) | 2022.03.27 |
---|---|
Python - 자료형의 값을 저장하는 공간 <변수> (0) | 2022.03.27 |
Python - boolean (0) | 2022.03.27 |
Python - tuple/dictionary/set (0) | 2022.03.27 |
Python - 리스트 (0) | 2022.03.27 |