목차:
02_1) 자료형(data type)과 문자열(string)
02_2) 숫자
02_3) 변수와 입력
02_4) 숫자와 문자열의 다양한 기능
02_1) 자료형(data type)과 문자열(string)
-자료형과, 문자열 만들기
-문자열 연산자
▶자료형과, 문자열 만들기
자료형의 종류 :
-문자열(string) ex) "Hello world"
-숫자(number) ex) 47, 30, 10.34
-불(boolean) ex) True, False
-등등(ETC)
자료형 확인방법 : type() 함수
문자열 만드는 방법(2가지) :
- 큰따옴표 사용
- 작은따옴표 사용
그렇다면 문자열안에서 따옴표를 출력하고 싶을때는 어떻게 해야할까?
->반대로 사용하면 된다.(예시로 확인을 해보자)
print("Hello World") # 큰따옴표 사용
Hello World
print("Hello World") # 작은따옴표 사용
Hello World
print('she said to me "Hello World"') # 작은따옴표를 이용하여 큰따옴표를 문자열 내부에 대입
she said to me "Hello World"
print("she said to me 'Hello World'") # 큰따옴표를 이용하여 작은따옴표를 문자열 내부에 대입
she said to me 'Hello World'
이스케이프 문자 : 역슬래시(\)기호와 함께 조합해서 사용하는 특수문자
\ : 코드 입력시 너무 길어질때 \기호를 사용하여 줄바꿈해서 코드를 입력함
\" : 큰따옴표 의미
\' : 작은따옴표 의미
\n : 줄바꿈을 의미
\t : 탭을 의미
\\ : 역슬래쉬(\)를 의미
(아래 예시를 보며 다른것은 집적 출력해 보자)
print("Hello\nHello")
Hello
Hello
if last==1 or last==3 or last==4: #아래와 같은 식이다
if last==1\
or last==3\
or last==4:
여러줄 문자열 만들기:
- \n 입력 : 줄을 바꾸고 싶은곳 마다 입력
- """ or ''' 사용 : print(""" 문장 """) 이와 같은 형식을 만들어주고 줄바꿈을 하고 싶은 문장마다 엔터를
입력
-"""\ 사용 : print("""\ 문장
문장\
""")
이와 같은 형식으로 만들어주고 줄바꿈을 하고 싶은 문장마다 엔터를 입력
(\의 사용만 다른 2, 3번의 차이는 2번은 문장 맨위아래로 줄바꿈이 삽입됨,
3번은 삽입되지 않음)
▶문자열 연산자
문자열 연결 연산자 : +
syntax) "문자열"+"문자열"
주의 ) "문자열"+숫자 오류
print("He"+"llo")
Hello
print("He"+1)
오류출력함
print("He"+'1') # 작은따옴표를 함으로써 숫자1을 문자열로 인식시켰음으로 오류가 없음
He1
print("He"+"1") # 큰따옴표를 함으로써 숫자1을 문자열로 인식시켰음으로 오류가 없음
He1
문자열 반복 연산자 : *
syntax) "문자열" * 숫자 or 숫자* "문자열"
문자 선택 연산자(인덱싱) : []
주의) 파이썬은 제로 인덱스 유형임으로 맨 앞의 값이 [1] 이 아니라 [0] 부터 시작함.
print("Hello[1]")
e
print("Hello[0]")
H
print("Hello[-1]") # 0을 기준으로 생각하고 음수를 입력시 뒤로 넘어가서 순서를 읽어 옴
o
print("Hello[-2]")
l
문자열 범위 선택 연산자(슬라이싱) : [:]
주의) 파이썬은 마지막 숫자를 포함하지 않음.
print("Hello"[0:2])
He
print("Hello"[2:4])
ll
print("Hello"[1:]) # 첫번째 글자부터 마지막 글자 까지
ello
print("Hello"[:2]) # 0번째 글자부터 첫번째 글자 까지
He
문자열 길이 구하기 : len() 함수
->문자열에 들어있는 문자의 개수 카운팅 함
print(len("Hello")) # len("Hello")-> print(5)->5
5
02_2) 숫자
-숫자 연산자
-연산자의 우선순위
▶숫자 연산자
정수형 : 소수점이 없는 숫자 ex) 0 , 62 , -425 ->정수(integer)
실수형 : 소수점이 있는 숫자 ex) 0.0 , 52.1 , -13.55 , 5.42e2(=542) -> 실수(floating point, 부동 소수점)
다양한 연산자들 :
+ | 덧셈 연산자 | 3 + 5 = 8 |
- | 뺄셈 연산자 | 3 - 8 = -5 |
* | 곱셈 연산자 | 3 * 8 = 24 |
/ | 나눗셈 연산자 | 3 / 8 = 0.375 |
// | 정수 나누기 연산자 | 8 / 3 = 2 |
% | 나머지 연산자 | 5 % 2 = 1 |
** | 제곱 연산자(n승근) | 3**3 =27 |
▶연산자의 운선순위
연산자의 운선순위
- 초등학교 교육과정에서 배운 순서와 동일
- ( ) 괄호를 사용하여 표시(매우선호)
02_3) 변수와 입력
-복합 대입 연산자
-사용자 입력 : input()
-문자열을 숫자로 바꾸기, 숫자를 문자열로 바꾸기
▶복합 대입 연산자
변수 만들기/사용하기
syntax) 변수=값 (값을 변수에 할당 함.)
주의) 변수= "문자열" , 변수= 숫자 (큰따움표의 유무 주의!)
a = "문자열" # a에 문자열을 할당함
print(a)
문자열
print("a")
a
print("a",a)
a 문자열
a = True
print(a)
True
print("a")
a
a = 50 # a에 50을 할당함
print(a)
50
print("a")
a
주의) 1) C언어와 다르게 자료형을 선언해줄 필요가 없다. ex)int a=10 ;
2) 변수에 할당된 값을 출력하고 싶을 때는 " " or ' ' 사용 안 함
복합 대입 연산자
+= | 숫자 덧셈 후 대입 |
-= | 숫자 뺄셈 후 대입 |
*= | 숫자 곱셈 후 대입 |
/= | 숫자 나눗셈 후 대입 |
%= | 숫자의 나머지를 구한 후 대입 |
**= | 숫자 제곱 후 대입 |
---------------------------문자열 동일-------------------------- | ------------------------문자열 동일--------------------------- |
+= | 문자열 연결 후 대입 |
*= | 문자열 반복 후 대입 |
addblock = 100
addblock += 40 # addblcok = addblcok + 40 과 동일한 의미
print("addblcok value:", addblock)
addblcok value : 140
string = "Hello"
string += "!" # string = sting+"!" 과 동일한 의미
string += "!"
string += "!"
print("string : ",string)
string : Hello!!!
▶사용자 입력 : input("문장") 함수
주의) 파이썬은 input() 함수에서 받아들인것들은 무조건 문!자!열! 자료형이다.
string=input("How old are you ?")
print(string)
How old are you ? 26 #엔터 누룸
26 #우리가 보기에는 정수형 처럼 생겼지만 파이썬에서는 문자열 자료형이다!
▶문자열을 숫자로 바꾸기( = Cast ), 숫자를 문자열로 바꾸기
syntax) -int() 함수:문자열을 int(정수)자료형으로 변환함
-float() 함수:문자열을 float(실수,부동 소수점)자료형으로 변환함
input_a = input("원하는 숫자를 입력하세요")
input_aa = int(input_a) #정수형(int)형으로 변환함
50
print(input_a+input_a) # 문자열로 받아들인 상태여서 5050출력 함
5050
print(input_aa+input_aa) # 정수형으로 받아들였기 때문에 100출력 함
100
주의) 1) 숫자가 아닌 것을 숫자로 변환할때 -> 오류발생 ex) int("hi") -> 오류
2) 소수점이 있는 숫자 형식의 문자열을 int()함수로 변환하려고 할때 ex) int("44.562") -> 오류
사실상 한큐에 input 값을 받고 정수형,실수형으로 바꿔주는 방법이 있다.
input_a=int(input("숫자를 입력하시오")) # 왼쪽과 같이 하면 두줄로 할것을 한줄로 처리할수 있음
52
print(type(input_a),input_a)
<class 'int'> 52
syntax) -str(다른자료형)
apple_a = str(25)
apple_b = str(25.4258)
print(type(apple_a),apple_a)
print(type(apple_b),apple_b)
<class 'str'> 25 # 문자열로 인식된 상태임
<class 'str'> 25.4258 # 문자열로 인식된 상태임
02_4) 숫자와 문자열의 다양한 기능
-문자열의 format() 함수
-format() 함수의 다양한 기능
-문자열의 다양한 함수들
▶문자열의 .format() 함수
-중괄호 {}를 포함한 문자열 뒤에 마침표(.)를 찍고 format()함수를 사용하고, 중괄호의 개수와 format 함수 괄호 안
매개변수의 개수는 반드시 같아야 함.
주의) {} 기호의 개수가 매개변수의 개수보다 많으면 안됨.(적을 경우에는 앞에것만 출력함)
tip) {} 기호 앞뒤 혹은 {} {}사이에 다양한 문자열 대입 가능
ex) "{}".format(10)
"{} {}.format(10, 20)
string_a= "{}".format(10)
print(string_a)
10
string_b = "나는 키가 {}cm이다".format(182)
print(string_b)
나는 키가 182cm이다
▶format() 함수의 다양한 기능
정수 출력의 다양한 형태
basic syntax) {:d}
output_a="{:d}".format(26) # int자료형의 정수를 출력하겠다고 선언함.
print(output_a) # 즉 매개변수로 정수만 올수 있음.
26
output_b="{:5d}".format(26) # 5칸을 잡고 뒤에서 부터 26이라는 숫자를 채움
print(output_b)
26 # ()()()(2)(6) 인 상태
output_c="{:05d}".format(-26) # 5칸을 잡고 빈칸은 0으로 처리
print(output_c)
-0026 # 음수는 한칸을 먹는다
output_d="{:+d}".format(26) # 양수를 추가해서 출력
print(output_d)
+26
output_e="{:-d}".format(26) # 음수를 추가해서 출력
print(output_e)
-26
output_f="{: d}".format(26) # 공백을 두고 출력
print(output_f)
26 # ()(2)(6) 인 상태
output_g="{: d}".format(-26) # 공백 자리에 음수가 추가됨
print(output_g)
-26
output_h="{:=+5d}".format(26) # 양수 기호를 앞으로 밀고 출력
print(output_h)
+ 26 # (+)()()(2)(6)
output_i="{:=-4d}".format(26) # 음수 기호를 앞으로 밀고 출력
print(output_i)
- 26 # (-)()(2)(6)
부동 소수점 출력의 다양한 형태
basic syntax) {:f}
Tip) 정추 출력의 형태와 매우 유사하다
output_c="{:f}".format(26.1997)
print(output_c)
26.199700
output_a="{:15f}".format(26.1997) #15칸 만들고 뒤에서 부터 입력
print(output_a)
26.199700 #()()()()()(2)(6)(.)(1)(9)(9)(7)(0)(0)(0)
output_b="{:15.3f}".format(26.1997)
print(output_b)
26.199 #()()()()()()()()()(2)(6)(.)(1)(9)(9)
output_d="{:15.4f}".format(26.1997)
print(output_d)
26.1997 #()()()()()()()()(2)(6)(.)(1)(9)(9)(7)
의미 없는 소수점 제거하기
-> 의미 없는 0을 제거한 후 출력하고 싶은경우 사용
basic syntax) {:g}
output_a = 52.0
output_b = "{:g}".format(output_a)
print(output_a)
52.0
print(output_b)
52 # 의미 없는 0을 제거한 후 출력됨
▶문자열의 다양한 함수들
대소문자 바꾸기
syntax) upper() -> 대문자로 변경
) lower() -> 소문자로 변경
input="Apple"
print(input.upper())
APPLE
input="Pear"
print(input.lower())
pear
문자열 양옆의 공백 제거하기
syntax) strip() -> 문자열의 양옆의 공백을 제거함.
lstrip() -> 문자열 왼쪽의 공백을 제거함.
rstrip() -> 문자열 오른쪽의 공백을 제거함.
input_a """
문자열
양옆의
공백을 제거합시다
"""
print(input_a)
문자열
양옆의
공백을 제거합시다
print(input_a.strip())
문자열
양옆의
공백을 제거합시다
문자열의 구성 파악하기: is~()
출력은 True , False 로 나오게 됨
isalnum() #문자열이 알파벳 또는 숫자로만 구성되어 있는지 확인함
isalpha() #문자열이 알파벳으로만 구성되어 있는지 확인함
isidentifier() #문자열이 식별자로 사용할 수 있는 것인지 확인함
isdecimal() #문자열이 정수 형태인지 확인함
isdigit() #문자열이 숫자로 인식될 수 있는 것인지 확인함
isspace() #문자열이 공백으로만 구성되어 있는지 확인함
islower() #문자열이 소문자로만 구성되어 있는지 확인함
isupper() #문자열이 대문자로만 구성되어 있는지 확인함
문자열 찾기 : find() 와 rfind()
syntax) find() -> 왼쪽부터 찾아서 처음 등장하는 위치를 찾음.
refind() -> 오른쪽부터 찾아서 처음 등장하는 위치를 찾음.
output_a ="안녕안녕하세요".find("안녕")
print(output_a)
0 # 첫번째 안녕의 안(인덱스0) 을 받아오기 때문
output_a ="안녕안녕하세요".rfind("안녕")
print(output_a)
2 # 두번째 안녕의 안(인덱스2) 을 받아오기 때문
문자열과 in 연산자 ( 4강에서 더 배움)
print("He" in "Hello")
True
print("Hi" in "Hello")
False
문자열 자르기: split()
-문자열을 특정한 문자로 자를 때 split() 함수 사용.
Tip) split("구분자") -구분자에 의해 구분해서 출력하게 된다.
a= "10 20 30 40 50".split() # 괄호안의 문자열인 공백을 기준으로 자름
print(a)
['10', '20', '30', '40', '50']
b= " 10 20 30 40 50".split(" ") # 10 앞에 공백이 들어가 있음
print(b)
['', '10', '20', '30', '40', '50'] #괄호안의 문자열인 공백을 기준으로 자름
'프로그래밍 > 파이썬' 카테고리의 다른 글
06강 ) 예외 처리 (0) | 2022.01.25 |
---|---|
05강) 함수 (0) | 2022.01.21 |
파이썬) 라이브러리 업뎃중 (0) | 2022.01.17 |
04강) 반복문 (0) | 2022.01.13 |
03강) 조건문 (0) | 2022.01.12 |