PYTHON은 여러가지 형태를 갖는다.
숫자형, 문자열 자료형, 리스트 자료형, 튜플 자료형, 딕셔너리 자료형, 집합 자료형, 불 자료형
하나씩 살펴보자
말그대로 숫자 형태로 이루어진 자료형이다. 1,2,3, 55, 463254 와 같은 정수, 0.31415, -0.47과 같은 실수형, 8진수, 16진수 같은 다양한 형태가 있는데 그럼 각자 다 어떻게 표현할까
정수형
a=123
a=346236
a=0
실수형
a=0.1245
a=345.34632
a=-3.657
8진수(OCTAL)와 16진수(Hexademical)
파이썬의 8진수는 숫자0+알파벳 소문자 o 또는 대문자 O을 사용해서 시작해보자
a=0o1432
파이썬의 16진수는 숫자0 + 소문자 x 로 시작하면 된다
a=0xd56
a=0x65e
PYTHON의 사칙연산
a=3
b=56
c=234
print(a+b+c)
print(a-b*c)
print(a/b*c)
제곱
x의 y제곱
a=3
b=61
print(a**b)
반환
나눗셈 후 나머지를 반환하는 % 연산자. a를 b로 나누고 나머지를 반환해준다.
a=7
b=3
print(a&b)
나눗셈 후 몫을 반환해주는 //연산자.
a=7
b=4
print(a//b) 정수값만 리턴해준다.
숫자형은 이정도로 알고 넘어가자.
문자열(string)(str)은 문자, 단어 등으로 구성된 집합이다.
ex)
"WTF"
"play with you""
"I like cat"
"12325"
"Life is too short, You need Python"
보면 문자열은 ""로 둘러싸여 있다. 숫자가 들어있는데 왜 문자열이냐고? ""로 둘러싸여있으면 문자열로 인식된다.
그럼 어떻게 쓰는데? 4가지 방법이 있다.
1."I don't like Python."
2.'he is dumb'
3."""what?"""
4.'''what?'''
그러면 ''를 사용할 때 문자열 안에 '를 넣는 문장은 못쓰는거임?
-네 못씁니다. 그럴 땐 ""로 둘러싸주세요. 그렇지 않으면 구문 오류(SyntaxError)가 나타난다.
백슬래시(/)를 쓰면 가능은 하다.
>>> food = 'Python\'s favorite food is perl'
>>> say = "\"Python is very easy.\" he says."
줄바꿈 코드
\n를 사용해보자
a="python \n compiler"
print(a)=python
compiler
'''을 사용해보자. \n 의 단점을 커버해준다
line="""
multiline
tripleline
quadraline"""
print(line)
>>>
multiline
tripleline
quadraline
'''나 """ 안에 마음껏 쓸만큼 쓰고 줄을 띄고 다시 '''나 """로 닫아주면 된다.
이스케이프 코드
\n :문자열 안에서 줄을 바꿀 때 사용
\t :문자열 사이에 탭 간격을 줄 때 사용
\ :문자 \를 그대로 표현할 때 사용
\' :작은따옴표(')를 그대로 표현할 때 사용
\" :큰따옴표(")를 그대로 표현할 때 사용
\r :캐리지 리턴
\f :폼 피드(줄 바꿈 문자, 현재 커서를 다음 줄로 이동)
\000 :널 문자
자주 사용하는건 그리 많지 않다.
문자열은 더하거나 곱할 수 있다. 더하기나 곱하기가 사용 가능하다.
a="girl"
b=a*3+a
print(b)
출력해보면
girlgirlgirlgirl
이렇게 나온다
문자열의 길이를 구하는 len
a="pretty girl who i loved"
print(len(a))
를 컴파일러에 넣어보면
23
으로 출력된다. 문자 열의 길이를 나타내준다
문자열 인덱싱
인덱싱이란 무언가를 가리킨다는 의미이고 슬라이싱은 잘라낸다는 의미이다.
다음을 한번 보자
a = "Life is too short, You need Python"
Life is too short, You need Python
0 1 2 3
0123456789012345678901234567890123
이걸 보면 이해하기 쉬울 것이다.
간단히 말하면 0부터 9까지 세자 라는 이야기다.
인덱싱
a="life is to short, You need Python"
print(a[3])
을 돌려보면
e
가 출력된다.
그러면
a="life is to short, You need Python"
print(a[-3])
는 어떻게 나오나요?
h
가 출력된다.
예제를 풀어보자
Q.
letters가 바인딩하는 문자열에서 첫번째와 세번째 문자를 출력하세요
>>letters = 'python'
>>실행 예 p t
A.
a="letters"
print(lang[0], lang[2])
슬라이싱
한 문자를 뽑아내는게 아니라 문장에서 단어나 좀 길게 뽑아내고 싶다. 그러면 슬라이싱을 사용하면 된다.
a="life is to short"
print(a) 해서 나는 'life'를 뽑아내고 싶다. 어떻게 해야할까?
a="life is to short"
print(a[0:4])
을 돌려보자
그러면 'life'가 나온다.
슬라이싱 할 때 예외상황
어? 앞에 인덱싱을 할 때 0부터 세라고 하지않았나요?
맞다. 그치만 슬라이싱을 할 때는 a[시작번호:끝번호]를 지정할 때 끝 번호에 해당하는 것은 포함하지 않기 때문에 print(a[0:3])이 아니라 print(a[0:4])가 되어야 한다.
그러면 슬라이싱으로 여러가지 문제를 풀어보자
문자열을 거꾸로 뒤집어 출력하세요.
>> string = "PYTHON"
>> 실행 예 NOHTYP
print(string[::-1])
문자열을 나눠보자
>>> a = "20010331Rainy"
>>> date = a[:8]
>>> weather = a[8:]
print(date)
print(weather)
pithon을 python으로 바꿔보자
a="pithon"
n=a[:1]
h=a[2:]
print(n+"y"+h)
다음과 같은 문자열에서 '2020/03'만 출력하세요.
분기 = "2020/03(E) (IFRS연결)"
print(분기[:7])
문자열 포매팅
문자열 에서 알아야되는것이 또 있다. 포매팅(Formating)은 문자열 안에 어떤 값을 집어넣는 것 이다.
값은 숫자 뿐만이 아니라 문자열, 변수, 2개 이상의 값을 넣을수도 있다.
한번 해보기 전에 포매팅 코드부터 알고가자
코드 설명
%s 문자열(String)
%c 문자 1개(character)
%d 정수(Integer)
%f 부동소수(floating-point)
%o 8진수
%x 16진수
%% Literal % (문자 % 자체)
이 코드를 써서 여러가지 예제를 살펴보자
a= "I eat %d apples." % 3
print(a)
a="I eat %s apples." % "five"
print(a)
number = 3
"I eat %d apples." % number
print(number)
number = 10
day = "three"
a="I ate %d apples. so I was sick for %s days." % (number, day)
print(a)
포매팅 코드와 숫자를 혼합해서 사용할 수도 있다. 간략하게 알아보자
a="%10s" % "hi"
print(a) -> ' hi'
a="%-10s" % "hi"
print(a) -> 'hi '
a="%0.4f" % 3.42134234
print(a) -> '3.4213'
a="%10.4f" % 3.42134234
print(a) -> ' 3.4213'
a=3
print(f"i eat {a} apples.") -> i eat 3 apples.
마지막 예제인
a=3
print(f"i eat {a} apples.") -> i eat 3 apples.
과 같은 방식을 제일 많이 사용한다. 제일 쉽고 깔끔하게 나타낼 수 있다. .format() 매서드라고 한다.
f 문자열 포매팅을 하나만 더 보자
name= '홍길동'
age= 30
print(f'제 이름은 {name} 입니다. 나이는 {age} 입니다.')
->제 이름은 홍길동 입니다. 나이는 30 입니다.
이런 식이다. 중괄호 안에 + -과 같은 수식을 함께 사용할 수도 있고 정렬을 할 수도 있다. {}를 표시하려면 {{}} 식으로 두개를 넣어주면 된다.
문자열의 마지막으로 문자열 내장함수를 볼거다.
.count, .find, .index, .join, .upper, .lower, .capitalize, .lstrip, ,rstrip, strip, .replace, .split, .replace
등이 있다.
다양한 메서드를 사용해서 예제를 풀어보면서 이해해보자.
아래의 전화번호에서 하이푼 ('-')을 제거하고 출력하세요.
Q. phone_number = "010-1111-2222"
A.
phone_number = "010-1111-2222"
phone_number1 = phone_number.replace("-", " ")
print(phone_number1) - > 010 1111 2222
Q. 전화번호를 아래와 같이 모두 붙여 출력하세요.
실행 예
01011112222
A.
phone_number = "010-1111-2222"
phone_number1 = phone_number.replace('-', '')
print(phone_number1) - >01011112222
Q. url 에 저장된 웹 페이지 주소에서 도메인을 출력하세요.
url = "http://sharebook.kr"
실행 예 : kr
A.
url = "http://sharebook.kr"
url_split = url.split('.')
print(url_split[-1])
Q. 변수에 다음과 같이 문자열과 정수가 바인딩되어 있을 때 % formatting을 사용해서 다음과 같이 출력해보세요.
name1 = "김민수"
age1 = 10
name2 = "이철희"
age2 = 13
이름: 김민수 나이: 10
이름: 이철희 나이: 13
A.
print(f'이름: {name1} 나이: {age1}')
print(f'이름: {name2} 나이: {age2}')
*F-String 방식은 파이썬 3.6부터 지원된다
Q. 삼성전자의 상장주식수가 다음과 같습니다. 컴마를 제거한 후 이를 정수 타입으로 변환해보세요.
상장주식수 = "5,969,782,550"
A.
상장주식수 = "5,969,782,550"
a= 상장주식수.replace(',', '')
b=int(a)
print(b) ->5969782550
Q. 문자열의 좌우의 공백이 있을 때 이를 제거해보세요.
data = " 삼성전자 "
A.
data = " 삼성전자 "
b=data.strip()
print(b) ->삼성전자
모자란건
[Wikidocs]:(https://wikidocs.net/78558) 여기서 풀어보자