Post

1주 - 2장 자료

Ch. 01 자료형

자료형과 문자열

자료형과 기본 자료형

문자열 : 메일제목,메세지 내용 등 -> 안녕하세요, “hello world”

숫자 : 물건의 가격, 학생 성적 등 -> 52,273,111

불 : 친구의 로그인 상태 -> True,False

자료형을 알아야하는 이유

프로그램의 가장 작은 단위인 데이터(자료)룰 모아 더욱 큰 자료형을 만들어가다 보면 거대한 프로그램이 만들어진다.

그러니 가장 작은 단위의 자료를 아는것은 매우 중요하다.

자료형 확인하기

자료형이란 자료의 형식을 말한다.

확인하기 위한 함수 type()함수

1
2
print(type("안녕하세요")) #class str
print(type(52)) #class int

문자열 만들기

문자열 : str,string 으로 쓰이며 글자들이 나열된 것을 문자열로 부름

"”나 ‘‘로 둘러싸 입력한 것은 모두 문자열로 보면됨

큰따옴표로 문자열 만들기

1
print("냐옹냐옹") #냐옹냐옹

작은따옴표로 문자열 만들기

1
print('냐옹냐옹') #냐옹냐옹

문자열 내부에 따옴표 넣기

작은 따옴표 안에 큰 따옴표를 넣거나

큰 따옴표 안에 작은따옴표를 넣음

1
print("'냐옹냐옹'") #'냐옹냐옹'
1
print('"냐옹냐옹"') #"냐옹냐옹"

이스케이프 문자를 사용해 문자열 만들기

1
print("\"안녕하세요\"라고 말했습니다.") #"안녕하세요"라고 말했습니다.

\ : 이스케이프 문자를 사용하여 문장 중간에 ““를 추가할 수 있음

\n : 줄바꿈을 의미함

\t : 탭을 의미함

\\ : 역슬레시를 의미함

1
2
3
4
5
print("냐옹\n냐옹")
#냐옹
#냐옹
print("냐옹\t냐옹") #냐옹    냐옹
print("냐옹\\냐옹") #냐옹\냐옹

여러 줄 문자열 만들기

큰따옴표 또는 작은 따옴표 3번연속 입력하면 문자열 그대로 출력함

1
2
3
4
5
6
print("""
      냐옹냐옹 
      혼공단
      1주차
      화이팅
""")

위 아래 줄 바꿈을 막기 위해 \ 를 사용하면 줄바꿈 없이 사용가능

1
2
3
4
5
6
print("""\
      냐옹냐옹 
      혼공단
      1주차
      화이팅팅\
      """)

문자열 연산자

문자열 연결 연산자 +

+기호로 문자열 연결 연산을 적용 할 수 있다.

문자열 + 문자열 = 문자열문자열

1
2
3
print("안녕"+"하세요") #안녕하세요
print("안녕하세요"+"!") #안녕하세요!
print("안녕하세요"+1) #문법에러 발생 

문자열 반복 연산자 *

*연산자로 숫자와 연결하면 반복할 수 있다.

1
2
print("안녕"*3) #안녕안녕안녕
print(3*"안녕") #안녕안녕안

문자 선택 연산자(인덱싱) []

문자 선택 연산자는 문자열 내부 문자를 하나 선택하는 연산자이며 [ ] 안에 숫자를 넣어 선택

[0] [1] [2] [3] [4]

이때 인덱스 넘버는 0부터 시작합니다.

1
2
3
4
5
6
print("문자선택연산자")
print("안녕하세요"[0])
print("안녕하세요"[1])
print("안녕하세요"[2])
print("안녕하세요"[3])
print("안녕하세요"[4])

문자열 범위 선택 연산자(슬라이싱) : [:]

문자열의 특정 범위만을 선택하는 연산자

1
print("문자 범위 선택연산자" [:9])

선택 범위 : [시작번호: 끝번호-1] – 예시 [0:2] – 0번과 1번 출력함

둘중 하나를 생략하면 처음부터 또는 끝까지로 자동으로 지정함

[:3] - 처음부터 2번까지

[4:] - 4번부터 끝까지

IndexError(index out of range)

인덱스 범위를 벗어난 숫자를 선택하면 발생하는 오류

1
print("안녕하세요"[9])

인덱스 범위를 벗어나 숫자를 지정할 경우 오류 발생

문자열 길이 구하기

len()함수를 사용하여 길이를 구함

1
print(len("hello")) # 5

숫자

숫자의 종류

정수 : int로 표현되며 소수점이 없는 숫자

부동소수점(실수) : float 로 표현되며 소수점이 있는 숫자

숫자 연산자

사칙연산 +-*/

매우 간단한 사칙연산자 그대로 사용하면 된다

정수 나누기 연산자 //

소수점이 나오면 때고 정수만 출력함

1
2
print(3/2) # 1.5
print(3//2) # 1

나머지 연산자 %

나눗셈 후 나머지 값을 출력함

1
2
3
print(5/2) # 2.5 
print(5//2) # 2
print(5%2) # 1

제곱연산자 **

말 그대로 앞자리수의 몇승을 곱할것인지 계산

1
2
3
print(2**2) #4
print(2**3) #8
print(2**4) #16

연산자 우선순위

우리가 익히아는 사칙연산 우선순위와 같이 계산한다.

(괄호)부터 곱셈(*) 나눗셈(/) 그리고 덧셈(+),뺼셈(-) 이런 순위로 계산하면 쉽다.

변수와 입력

변수란 값을 저장할때 사용하는 식별자를 뜻함

변수 만들기/사용하기

  1. 변수를 선언 pi

  2. 변수에 값을 할당 pi =3.14

  3. 변수를 참조하여 사용 pi-2

1
2
3
pi = 3.14
pi -2 #1.14
pi +2 #5.14

이때에도 똑같이 pi는 같은 자료형과 연산해야지 문법 오류가 안납니다.

pi + 문자열 연산시 문법 오류 발생

1
2
3
4
5
6
7
8
#변수 선언과 할당
pi= 3.14
r= 10

print("원주율=",pi)
print("반지름=",r)
print("원의 둘레=",2*pi*r)
print("원의 넓",pi*r*r)

복합 대입 연산자

연산자 설명 예제 코드 결과
+= 덧셈 후 대입 x += 3 x = x + 3
-= 뺄셈 후 대입 x -= 2 x = x - 2
*= 곱셈 후 대입 x *= 4 x = x * 4
/= 나눗셈 후 대입 (실수형) x /= 2 x = x / 2
//= 나눗셈 후 대입 (정수형) x //= 3 x = x // 3
%= 나머지 연산 후 대입 x %= 5 x = x % 5
**= 거듭제곱 후 대입 x **= 2 x = x ** 2

사용자 입력 : input()

input() :사용자 입력을 받을 수 있는 함수

input()함수로 사용자 입력받기

1
2
string = input("인사말을 입력하세요") #안녕하세요 입력
print(string) #안녕하세요 출력

input()함수의 자료형

input() 함수에 입력한 모든 자료형은 모두 문자열로 변환됨

숫자,참거짓같은 불 값도 모두 문자열로 나옴

문자열을 숫자로 바꾸기

int() : 문자열을 정수 자료형으로 변환

float() : 문자열을 소수 자료형으로 변환

ValueError예외

  1. 숫자가 아닌것을 숫자로 변환하려 할때

  2. 소수점이 있는 수자형식의 문자열을 int()로 변환할떄

숫자를 문자열로 바꾸기

str(다른 자료형)으로 변환하여 연산가능하게 함

1
2
3
4
a = 123
b= "hello"
string_a = str(a)
print(string_a+b) # 123hello

숫자와 문자열의 다양한 기능

문자열의 format()함수

format() : 문자열 안에 매개변수를 사용하기 위한 포메팅 함수

1
2
3
string_a="{}".format(10)
print(string_a) #10
print(type(string_a)) #<class 'str'>
1
2
3
4
5
6
7
8
9
format_a="{}만원".format(5000)
format_b="파이썬 열공하여 연봉{}만원 만들기기".format(8000)
format_c="{} {} {}".format(3000,4000,5000)
format_d="{} {} {}".format(1, "문자열", True)

print(format_a) #5000만원
print(format_b) #파이썬 열공하여 연봉8000만원 만들기기
print(format_c) #3000 4000 5000
print(format_d) #1 문자열 True

indexError예외

{}기호의 개수가 format()함수의 매개변수보다 많으면 에러가 발생함

format()함수의 다양한 기능

정수 출력의 다양한 형태

정수를 특정한 칸에 출력하기

1
2
3
4
5
6
7
8
9
10
11
12
13
output_a = "{}".format(52) 

output_b = "{:5d}".format(52)
output_c = "{:10d}".format(52) 

output_d = "{:05d}".format(52) 
output_e = "{:05d}".format(-52) 

print(output_a) #52
print(output_b) #   52
print(output_c) #        52
print(output_d) #00052
print(output_e) #-0052

대소문자 바꾸기 upper()와 lower()

upper() : 문자열 알파벳을 모두 대분자로 바꿈

lower() : 문자열 알파벳을 모두 소문자로 바꿈

1
2
3
msg = "HelloWorld"
print(msg.upper()) #HELLOWORLD
print(msg.lower()) #helloworld

문자열 양옆의 공백 제거하기 strip()

strip() :문자열 양옆의 공백을 제거함

1
2
3
4
5
6
7
a= """
    안녕하세요
문자열 함수를 알아봅시다
"""
print(a.strip())
#안녕하세요
#문자열 함수를 알아봅시다.

이러한 기능들을 trim이라고 부르기도 합니다.

문자열의 구성 파악하기 isOO()

isalnum():문자열이 알파벳 또는 숫자로만 구성?

isalpha(): 문자열이 알파벳으로 구성?

isidentifier(): 문자열일 식별자로 사용할 수 있는것?

isdecimal(): 문자열이 정수 형태인가?

isdigit(): 문자열이 숫자로 인식되는가?

isspace(): 문자열이 공백으로만 구성되어있나?

islower(): 문자열이 소문자로 구성되어있나?

isupper(): 문자열이 대문자로 구성되어있나?

문자열 찾기 find()

find():왼쪽부터 찾아서 처음 등장하는 위치를 찾음

rfind()오른쪽부터 찾아서 처음 등장하는 위치를 찾음

1
2
3
4
5
output_a = "안녕안녕하세여".find(안녕)
print(output_a) #0번째

output_b = "안녕안녕하세여".rfind(안녕)
print(output_b) #2번째
This post is licensed under CC BY 4.0 by the author.

Trending Tags