파이썬 기초

기초 파이썬 - 숫자&문자 자료형

데이터_박과장 2023. 10. 10. 20:12

파이썬 언어의 특징

  • 특징 1. 스크립트 언어(Script language)
    파이썬은 컴파일 과정 없이 인터프리터(Interpreter, 해석기)가 소스 코드를 한 줄씩 읽어 들여 곧바로 실행하는 스크립트 언어(Script language)입니다. 그 때문에 컴파일 과정이 필요하지 않아 실행 결과를 바로 확인하고 수정하면서 손쉽게 코드를 작성할 수 있습니다.

 

컴파일 언어와 스크립트 언어의 차이점은?

컴파일 언어는 ‘컴파일’이라는 과정을 통해 프로그래머(인간)이 작성한 코드를 기계어로 번역해 실행하는 언어입니다. 
반면 스크립트 언어는 별도의 ‘컴파일’ 과정 없이 인터프리터가 소스 코드를 한 줄씩 읽어가며 바로 실행하는 언어를 의미합니다.

 

컴파일 언어는 소스 코드를 컴파일하는 과정을 거쳐야 하므로 실행 및 수정에 비교적 많은 시간을 소요하지만, 한 번 기계어로 번역되면 빠른 실행 속도를 보여줍니다. 스크립트 언어는 컴파일 없이 곧바로 실행하므로 결과를 바로 확인하고 빠르게 수정할 수 있지만, 번역과 실행이 동시에 이뤄져 컴파일 언어보다 느린 실행 속도를 보입니다.

 

  • 특징 2. 동적 타이핑(Dynamic typing)
    파이썬은 동적 타입 언어입니다. 변수의 자료형을 지정하지 않고 단순히 선언하는 것만으로도 값을 지정할 수 있습니다. 이때 변수의 자료형은 코드가 실행되는 시점에 결정됩니다. 자료형 변환 시 번거로운 과정을 거치지 않아도 된다는 장점이 있지만, 코드 실행 도중 예상하지 못한 타입으로 인한 에러가 발생할 수 있는 특징이 있습니다.

 

 

변수의 타입(자료형)이란?

특정 변수에 저장하고자 하는 데이터의 종류를 사전에 정의한 것을 의미합니다. 데이터의 종류는 크게 문자와 숫자로 나뉘고, 숫자는 정수와 실수로 세분됩니다. 이렇게 특정 변수에 저장하려는 값은 종류별로 나눈 것이 변수의 타입(자료형)에 해당합니다. 

정적 타입 언어의 경우 프로그래머가 변수에 들어갈 데이터의 타입(자료형)을 명시해줘야 하며, 컴파일 시점에 변수의 타입이 결정됩니다. 반면 동적 타입 언어의 경우 변수의 타입(자료형)을 사전에 선언할 필요 없이 변수만 선언해 값을 지정할 수 있습니다.

 

  • 특징 3. 플랫폼 독립적(Platform-independent)
    파이썬은 리눅스(Linux), 유닉스(Unix), 윈도우즈(Windows), 맥(Mac) 등 대부분의 운영체제(Operating System, OS)에서 모두 동작합니다. 운영체제별로 컴파일할 필요가 없기 때문에 한 번 소스 코드를 작성하면 어떤 운영체제에서든 활용이 가능합니다.

 

 

타 언어와의 차이점

로직을 구분할 때 괄호사용 대신 들여쓰기와 띄어쓰기로 구분하기 때문에 파이썬에서 여백과 띄어쓰기를 지키는 것은 매우 중요합니다. 간단한 'HELLO WORLD' 출력문을 통해 파이썬과 자바와 C++를 비교해 보겠습니다.

 

 

C++

#include <iostream>
using namespace std;
int main() {
   cout<<"Hello, world!";
   return 0;
}

 

 

Java

public class HelloWorld {
   public static void main(String args[]) {
     System.out.println("Hello, world!");
   }
}

 

 

Python

print('Hello, world!')

 

타 언어보다 명령어의 길이가 짧아 보기에 편한 장점이 있습니다. 단, 영어 대소문자의 구분, 여백규칙 준수 등의 규칙을 지켜주셔야 합니다.

 

 

파이썬 내용정리

 

 

자료형:

숫자형: 숫자형은 정수(int)와 실수(float)로 나눌 수 있습니다. 정수는 소수점이 없는 숫자이고, 실수는 소수점이 있는 숫자입니다.

예제 코드:

정수 = 5
실수 = 3.14

 

숫자의 연산을 위한 연산자 설명:

덧셈 (+): 숫자를 더하는 연산을 나타냅니다.
예제 코드:

합계 = 5 + 3  # 합계는 8이 됩니다.

 


뺄셈 (-): 숫자를 빼는 연산을 나타냅니다.
예제 코드:

차 = 7 - 2  # 차는 5가 됩니다.

 

나눗셈 (/): 숫자를 나누는 연산을 나타냅니다.
예제 코드:

나누기 = 10 / 2  # 나누기는 5.0이 됩니다.

 

곱셈 (*): 숫자를 곱하는 연산을 나타냅니다.
예제 코드:

곱하기 = 4 * 3  # 곱하기는 12가 됩니다.

 

 

몫과 나머지: // 연산자는 나눗셈의 몫을 계산하고 % 연산자는 나머지를 계산합니다.
예제 코드:

몫 = 10 // 3  # 몫은 3이 됩니다.
나머지 = 10 % 3  # 나머지는 1이 됩니다.

 

 

문자형:

1. 따옴표의 사용: 문자열은 큰따옴표(")나 작은따옴표(')로 감싸서 표현합니다.
예제 코드:

문자열1 = "안녕하세요"
문자열2 = 'Python'

2. 문자열 더하기: 문자열을 + 연산자로 이어붙일 수 있습니다.
예제 코드:

문자열1 = "안녕"
문자열2 = "하세요"
인사 = 문자열1 + 문자열2  # 인사는 "안녕하세요"가 됩니다.

 

3. 문자열 곱하기: 문자열을 * 연산자로 여러 번 반복할 수 있습니다.
예제 코드:

반복문자열 = "abc" * 3  # 반복문자열은 "abcabcabc"가 됩니다.

 

4. 문자열의 인덱싱과 슬라이싱: 문자열의 각 문자는 인덱스를 가지며, 슬라이싱을 통해 부분 문자열을 추출할 수 있습니다.
예제 코드:

문자열 = "Python"
첫번째문자 = 문자열[0]  # 첫번째문자는 'P'입니다.
부분문자열 = 문자열[2:4]  # 부분문자열은 'th'가 됩니다.

 

5. 문자열 포매팅: 문자열 내에 변수 값을 삽입하는 방법입니다.
예제 코드:

이름 = "Alice"
나이 = 30
인사문 = f"안녕하세요, 제 이름은 {이름}이고, 나이는 {나이}세 입니다."

6. 문자열 포맷 코드: 문자열 포매팅 시 사용되는 특별한 코드입니다. 예를 들어, %s는 문자열을 대체하는데 사용됩니다.
예제 코드:

이름 = "Bob"
나이 = 25
인사문 = "안녕하세요, 제 이름은 %s이고, 나이는 %d세 입니다." % (이름, 나이)

 

문자열 포맷 코드의 종류는 아래와 같습니다.

 

코드설명

%s 문자열(String)
%c 문자 1개(character)
%d 정수(Integer)
%f 부동소수(floating-point)
%o 8진수
%x 16진수
%% Literal % (문자 % 자체)

여기에서 재미있는 것은 %s 포맷 코드인데, 이 코드에는 어떤 형태의 값이든 변환해 넣을 수 있다. 

 

 

큰따옴표 혹은 작은 따옴표 3개로 감싸면 해당영역을 코멘트 처리할 수 있습니다. (''' ''')

 

이스케이프 코드란?

이스케이프(escape) 코드는 프로그래밍에서 특별한 기능을 수행하기 위해 미리 정의된 '특수한 문자 조합'을 말합니다. 이 코드들은 주로 출력 결과를 더 보기 좋게 형식화하거나 특수한 동작을 수행하기 위해 사용됩니다. 몇 가지 일반적인 이스케이프 코드는 다음과 같습니다:

 

코드설명

\n 문자열 안에서 줄을 바꿀 때 사용
\t 문자열 사이에 탭 간격을 줄 때 사용
\\ \를 그대로 표현할 때 사용
\' 작은따옴표(')를 그대로 표현할 때 사용
\" 큰따옴표(")를 그대로 표현할 때 사용
\r 캐리지 리턴(줄 바꿈 문자, 커서를 현재 줄의 가장 앞으로 이동)
\f 폼 피드(줄 바꿈 문자, 커서를 현재 줄의 다음 줄로 이동)
\a 벨 소리(출력할 때 PC 스피커에서 '삑' 소리가 난다)
\b 백 스페이스
\000 널 문자

이 중에서 활용 빈도가 높은 것은 \n, \t, \\, \', \"이고 나머지는 잘 사용하지 않습니다.

 

 

문자열 인덱싱 & 슬라이싱 추가예제

원본문자열 = "Hello, World!"

# 문자열을 슬라이싱하여 부분 문자열 추출
부분문자열1 = 원본문자열[0:5]  # "Hello"
부분문자열2 = 원본문자열[7:12]  # "World"

# 시작 인덱스를 생략하면 자동으로 처음부터 시작
부분문자열3 = 원본문자열[:5]  # "Hello"

# 끝 인덱스를 생략하면 자동으로 문자열 끝까지 선택
부분문자열4 = 원본문자열[7:]  # "World!"

# 음수 인덱스를 사용하여 뒤에서부터 슬라이싱도 가능
부분문자열5 = 원본문자열[-6:]  # "World!"

print(부분문자열1)
print(부분문자열2)
print(부분문자열3)
print(부분문자열4)
print(부분문자열5)

 

문자열 수정 예제모음

number = 10
day = "three"
"I ate %d apples. so I was sick for %s days." % (number, day)
'I ate 10 apples. so I was sick for three days.'

아래 방식은 파이썬 3.6부터 가능합니다.

number = 10
day = "three"

result = f'I ate {number} apples. so I was sick for {day} days.'

print(result)

아래처럼 데이터 타입을 지정해서 작성하는 것 역시 가능합니다.

number = 10
day = "three"

result = f'I consumed %d oranges. Therefore, I felt unwell for %s days.'

print(result)

2개 이상의 변수에 값을 지정하는 방법입니다. 0, 1로 변수의 순서를 지정할 수 있습니다.

number = 10
day = "three"
"I ate {0} apples. so I was sick for {1} days.".format(number, day)
'I ate 10 apples. so I was sick for three days.'

변수의 이름을 직접 넣는 방식으로도 문장을 완성할 수 있습니다.

"I ate {number} apples. so I was sick for {day} days.".format(number=10, day=3)
'I ate 10 apples. so I was sick for 3 days.'

 

 

 

'파이썬 기초' 카테고리의 다른 글

사용자 입력&출력  (0) 2023.10.11
파이썬 - 함수의 이해  (0) 2023.10.11
제어문 - if, while, for  (0) 2023.10.11
자료형 - 집합, 불 자료형  (0) 2023.10.11
자료형 - 리스트, 딕셔너리, 튜플  (0) 2023.10.11