시작은 미약하였으나 , 그 끝은 창대하리라

02강) 자료형 본문

프로그래밍/파이썬

02강) 자료형

애플파ol 2022. 1. 11. 16:54

목차:

         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
Comments