일단 따라 해보기
print("::: 고객 정보 입력 :::")
name = input("고객명 입력>> ")
age = int(input("나이 입력>> "))
email = input("이메일 입력>> ")
phone = input("전화번호 입력>> ")
print("{:-^60}".format("입력결과"))
print("{: ^10}|{: ^5}|{: ^25}|{: ^20}".format("name","age","email","phone"))
print("-"*65)
print("{: ^10}|{: ^5}|{: ^25}|{: ^20}".format(name,age,email,phone))
파이썬 자료형
파이썬 자료형의 종류
파이썬의 주요 자료형과 그 설명을 포함한 표를 다음과 같이 작성할 수 있다:
자료형 설명
int | 정수를 저장하는 자료형이다. 정수는 음수, 양수 및 0을 포함한다. |
float | 부동 소수점 수를 저장하는 자료형이다. 실수 값(소수점 포함)을 표현하는 데 사용된다. |
str | 문자열을 저장하는 자료형이다. 문자열은 문자들의 시퀀스를 나타내며, 작은따옴표(') 또는 큰따옴표(")로 둘러싸여 있다. |
bool | 불리언 값을 저장하는 자료형이다. 참(True) 또는 거짓(False)을 나타낸다. |
complex | 복소수를 저장하는 자료형이다. 실수부와 허수부로 구성되며, a + bj 형태로 표현된다. |
list | 여러 값을 순서대로 저장하는 가변적인 자료형이다. 대괄호([])로 묶이며, 값들은 콤마로 구분된다. |
tuple | 여러 값을 순서대로 저장하는 불변적인 자료형이다. 소괄호(())로 묶이며, 값들은 콤마로 구분된다. |
dict | 키-값 쌍으로 데이터를 저장하는 자료형이다. 중괄호({})로 묶이며, 각 키는 유일하고 값과 쌍을 이룬다. |
set | 중복을 허용하지 않는 여러 값을 저장하는 자료형이다. 중괄호({})로 묶이며, 값들은 콤마로 구분된다. |
NoneType | 값이 없음을 나타내는 자료형이다. 변수에 값이 없음을 표현하는 데 사용되며, 단일 값 None을 가진다. |
수치형
수치형 자료형
수치형 자료형은 숫자를 다루는 자료형으로, 숫자는 수령을 저장하거나 크기를 측정하고 데이터끼리 연산하는 등 작업에 꼭 필요하다.
파이썬에서는 수치형 자료형을 사용하여 숫자 데이터를 처리할 수 있다. 수치형 자료형에는 정수형(int), 실수형(float), 복소수형(complex)이 있다. 이 자료형들은 수학적 연산을 수행하거나 다양한 계산에 활용된다.
정수형 (int)
정수형은 정수를 표현하는 자료형으로, 음수, 양수 및 0을 포함한다.
파이썬 2에서는 정수형(int)과 long형(long)이 별도로 존재했으나, 파이썬 3에서는 정수형(int)과 long형이 통합되어, 더 이상 별도의 long형이 존재하지 않는다.
따라서, **파이썬 3의 int형은 임의 정밀도(arbitrary precision)**를 가지며, 크기에 제한 없이 큰 정수를 처리할 수 있다. 이는 내부적으로 필요할 때 자동으로 메모리를 할당하여 큰 숫자를 처리하기 때문이다.
<aside> 💡 파이썬의 int 형은 임의 정밀도(자동 메모리 할당)를 통해 크기에 제한 없이 큰 정수 처리가 가능하다.
</aside>
다음과 같은 큰 수를 정수형으로 저장할 수 있다:
big_number = 123456789012345678901234567890
print(big_number)
실수형 (float)
실수형은 부동 소수점 수를 표현하는 자료형이다. 실수 값(소수점 포함)을 저장하며, 주로 소수점이 포함된 값을 처리하는 데 사용된다. 실수형은 과학적 표기법을 사용하여 매우 작은 수나 큰 수를 표현할 수도 있다.
pi = 3.14159
print(pi)
난수 발생기를 이용한 수치형 데이터 저장 예제
수치형 데이터를 외부에서 입력받거나 난수 발생기를 사용하여 생성할 수 있다. 파이썬에서는 random 모듈을 사용하여 난수를 생성할 수 있다. 다음은 난수 발생기를 이용해 수치형 데이터를 저장하는 예제이다:
import random
random_int = random.randint(1, 100) # 1부터 100 사이의 난수
random_float = random.uniform(1.0, 10.0) # 1.0부터 10.0 사이의 난수
# 결과 출력
print("Generated integer:", random_int)
print("Generated float:", random_float)
진법 (2 진수, 8 진수, 16 진수)
진법 0 1 2 3 4 5 6 7 8 9 10
10 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
2 | 0b0 | 0b1 | 0b10 | 0b11 | 0b100 | 0b101 | 0b110 | 0b111 | 0b1000 | 0b1001 | 0b1010 |
8 | 0o0 | 0o1 | 0o2 | 0o3 | 0o4 | 0o5 | 0o6 | 0o7 | 0o10 | 0o11 | 0o12 |
16 | 0x0 | 0x1 | 0x2 | 0x3 | 0x4 | 0x5 | 0x6 | 0x7 | 0x8 | 0x9 | 0xA |
- 10진수 (Decimal): 일반적인 숫자 표기법이며, 0부터 10까지의 수를 나타낸다.
- 2진수 (Binary): 0과 1로 구성된 숫자 표기법으로, 0b 접두사를 사용한다.
- 8진수 (Octal): 0에서 7까지의 숫자로 구성된 표기법으로, 0o 접두사를 사용한다.
- 16진수 (Hexadecimal): 0에서 9까지의 숫자와 A에서 F까지의 문자를 사용하는 표기법으로, 0x 접두사를 사용한다.
진법 변환 방법을 표로 정리하면 다음과 같다:
진법 변환 방법
10진수 → 2진수 | 10진수를 2로 나누며 나머지를 역순으로 기록한다. |
10진수 → 8진수 | 10진수를 8로 나누며 나머지를 역순으로 기록한다. |
10진수 → 16진수 | 10진수를 16으로 나누며 나머지를 역순으로 기록하되, 나머지가 10 이상인 경우 A부터 F로 표기한다. |
2진수 → 10진수 | 각 자릿수에 2의 제곱을 곱하여 모두 더한다. |
8진수 → 10진수 | 각 자릿수에 8의 제곱을 곱하여 모두 더한다. |
16진수 → 10진수 | 각 자릿수에 16의 제곱을 곱하여 모두 더하되, 10부터 15까지의 숫자는 A부터 F로 변환하여 계산한다. |
num = int(input("정수 입력>> "))
print("10진수: %d" % num)# 10진수 출력
print("2진수: {:b}".format(num))# 2진수 출력
print("8진수: {:o}".format(num))# 8진수 출력
print("16진수 (소문자): {:x}".format(num))# 16진수 (소문자) 출력
수치형 연산
- 정수형 연산 (int)
- 덧셈(+), 뺄셈(), 곱셈(): 기본적인 사칙연산이 모두 지원된다.
- 나눗셈(/): 정수 나눗셈의 결과는 부동 소수점 수(float)가 된다.
- 몫 연산(//): 나눗셈의 몫을 반환한다.
- 나머지 연산(%): 나눗셈의 나머지를 반환한다.
- 거듭제곱(*): 제곱 연산을 수행한다.
- 부동 소수점 수 연산 (float)
- 덧셈(+), 뺄셈(), 곱셈(), 나눗셈(/): 기본적인 산술 연산이 모두 가능하다.
- 거듭제곱(*): 제곱 연산을 수행한다.
- 복소수 연산 (complex)
- 복소수를 다루기 위한 연산이 지원된다.
- 실수부와 허수부의 덧셈, 뺄셈, 곱셈, 나눗셈 등이 가능하다.
✅ C언어와 다른 연산자를 주의하자!
연산자 설명
// | 나눗셈의 몫을 구한다 |
% | 나눗셈의 나머지를 구한다 |
** | 거듭제곱을 한다 |
print(2**16) #승수 연산자
print(10/3) # 결과값이 실수형
print(10//3) # 결과값이 정수형(몫)
>>65536
>>3.3333333333333335
>>3
문자형
파이썬에서 문자열 연산은 여러 방법으로 문자열을 다룰 수 있게 해 준다. 여기에는 문자열 덧셈, 문자열 곱셈, 문자열 슬라이싱, 문자열 조합, format 함수, f-string, 형식 지정 문자가 포함된다.
1. 문자열 연산
연산자 설명
+ | 두 문자열을 이어붙인다. |
* | 문자열을 반복한다. |
in | 문자열이 다른 문자열에 포함되어 있는지 확인한다. |
not in | 문자열이 다른 문자열에 포함되어 있지 않은지 확인한다. |
파이썬에서 in 연산자는 특정 문자열이 다른 문자열에 포함되어 있는지 여부를 확인하는 데 사용된다. 이 연산자는 조건문과 함께 자주 사용되며, 포함 여부를 검사할 때 유용하다.
# 문자열에서 특정 단어의 포함 여부 확인
sentence = "The quick brown fox jumps over the lazy dog"
word1 = "quick"
word2 = "slow"
# 포함 여부 확인
is_word1_in_sentence = word1 in sentence
is_word2_in_sentence = word2 in sentence
# 결과 출력
print(f"'{word1}' is in the sentence: {is_word1_in_sentence}")
print(f"'{word2}' is in the sentence: {is_word2_in_sentence}")
>>'quick' is in the sentence: True
>>'slow' is in the sentence: False
- in 연산자의 결과는 boolean 형으로 반환된다.
2. 문자열 슬라이싱
문자열 슬라이싱은 문자열의 일부분을 추출하는 방법을 제공한다. 슬라이싱은 str [start:end] 형식을 사용하며, start는 시작 인덱스, end는 종료 인덱스를 의미한다.
💡 문자열 슬라이싱 : str [start:end:step]
표현식 설명
str[start:end] | start부터 end-1까지의 문자를 추출한다. |
str[start:] | start부터 문자열 끝까지의 문자를 추출한다. |
str[:end] | 문자열 시작부터 end-1까지의 문자를 추출한다. |
str[:] | 문자열 전체를 추출한다. |
str[start:end:step] | start부터 end-1까지 step 간격으로 문자를 추출한다. |
# 기본 문자열
text = "Hello, World!"
# 특정 범위 슬라이싱 및 출력
print("slice1:", text[0:5]) # "Hello"
print("slice2:", text[7:12]) # "World"
# 시작 인덱스 생략
print("slice3:", text[:5]) # "Hello"
# 종료 인덱스 생략
print("slice4:", text[7:]) # "World!"
# 전체 문자열 슬라이싱
print("slice5:", text[:]) # "Hello, World!"
# 음수 인덱스를 사용한 슬라이싱
print("slice6:", text[-6:-1]) # "World"
# 특정 간격으로 슬라이싱
print("slice7:", text[::2]) # "Hlo ol!"
# 음수 간격으로 슬라이싱 (문자열을 역순으로)
print("slice8:", text[::-1]) # "!dlroW ,olleH"
파이썬에서는 문자열 슬라이싱 시 음수 인덱스를 사용할 수 있다.
음수 인덱스는 문자열의 끝에서부터 위치를 계산한다. 예를 들어, -1은 문자열의 마지막 문자를, -2는 마지막에서 두 번째 문자를 가리킨다.
3. 문자열 조합
문자열 조합은 여러 문자열을 하나로 합치는 방법을 제공한다.
방법 설명
+ 연산자 | 두 문자열을 이어붙인다. |
str.join(iterable) | 문자열의 각 요소를 합쳐서 하나의 문자열로 반환한다. |
파이썬의 문자열 연산: index 메서드
index 메서드는 특정 문자(열)가 문자열 내에서 처음 등장하는 위치를 반환한다.
💡 변수명 = 대상문자열. index('찾고 싶은 문자')
- 만약 찾고자 하는 문자가 문자열에 없으면 ValueError 예외를 발생시킨다. 이는 문자열 내에서 특정 문자의 위치를 확인하고자 할 때 유용하다.
- 문자 이외에도 문자열(단어)이 위치한 시작 index를 찾을 수 있다.
‼️ 이때 찾고자 하는 문자가 2개 이상인 경우 맨 앞의 문자의 인덱스를 반환한다.
text = "Hello, World!"
# 특정 문자의 인덱스 찾기
index1 = text.index('H')
index2 = text.index('o')
index3 = text.index('W')
# 결과 출력
print("Index of 'H':", index1) # 0
print("Index of first 'o':", index2) # 4
print("Index of 'W':", index3) # 7
# 찾고자 하는 문자가 문자열에 없는 경우
try:
index4 = text.index('x')
except ValueError as e:
print("ValueError:", e)
str = "Hello World!"
idx = str.index("World")
print("idx = {}".format(idx))
print(str[:idx])
print(str[idx:])
str2 = str[:idx] + "Python " + str[idx:]
print(str2)
print(str2[2:-3])
>> idx = 6
>> Hello
>> World!
>> Hello Python World!
>> llo Python Wor
4. format 함수와 f-string
파이썬은 문자열 포맷팅을 위한 다양한 방법을 제공한다. 그중 대표적인 것이 format 함수와 f-string이다.
format 함수는 문자열 내에서 자리 표시자 {}를 사용하여 다양한 데이터 타입을 문자열에 삽입하거나 형식을 지정할 수 있다. 이를 통해 보다 읽기 쉽고 관리하기 쉬운 코드를 작성할 수 있다.
format 함수
format 함수는 문자열을 포맷팅 하는 데 사용된다.
표현식 설명
"{} {}".format(val1, val2) | 자리 표시자를 사용하여 값을 삽입한다. |
"{0} {1}".format(val1, val2) | 인덱스를 사용하여 값을 삽입한다. |
"{name1} {name2}".format(name1=val1, name2=val2) | 이름을 사용하여 값을 삽입한다. |
print("{:-^50}".format("python"))
print("{:&<50}".format("python"))
print("{:*>50}".format("python"))
name = "old_cast1e"
age = 23
info = "성명: {0} | 나이: {1}".format(name,age)
print(info)
>> ----------------------python----------------------
>> python&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
>> ********************************************python
>> 성명: old_cast1e | 나이: 23
여러 줄의 문자열을 표현하고자 할 때 파이썬에서는 작은따옴표(') 세 개를 연속해서 사용하는 방법을 사용할 수 있다. 이를 통해 여러 줄에 걸쳐 있는 긴 문자열을 간단하게 표현할 수 있다.
이 문자열 리터럴은 작은따옴표 세 개를 연속해서 사용하여 시작하며, 동일하게 작은따옴표 세 개를 연속해서 사용하여 끝낸다 (''').
<aside> 💡 작은따옴표(') 세 개를 연속해서 사용하여 여러 줄의 문자열을 표현할 수 있다.
</aside>
multiline = '''
오늘은 {}년 {}월 {}일이다.
'''.format(2024,7,1)
print(multiline)
- ‼️‼️‼️ 이때 문자열의 줄 바꿈도 반영됨에 주의하자!
- 파이썬 언어는 문자열과 문자의 구분이 없다. 문자열과 문자 모두 따옴표나 큰따옴표로 표현이 가능하다.
- 또한 여러 줄 문자열도 ‘’’로 감싸거나 “””로 표현 가능하다.
f-string
파이썬 3.6부터 도입된 f-string은 문자열 포맷팅을 간단하고 직관적으로 할 수 있게 해 준다.
표현식 설명
f"{val1} {val2}" | 중괄호 안에 변수를 직접 삽입하여 문자열을 포맷팅한다. |
5. 형식 지정 문자
형식 지정 문자는 문자열을 특정 형식으로 포맷팅 하는 데 사용된다.
형식 지정 문자 설명
%s | 문자열로 변환한다. |
%d | 10진수 정수로 변환한다. |
%f | 부동 소수점 실수로 변환한다. |
%x | 16진수 정수로 변환한다. |
%0.nf | 소수점 아래 n글자 표시, 마지막 자리는 반올림 |
파이썬에서 % 연산자를 사용한 형식 지정에서는 % 뒤에 정수를 넣어 출력될 필드의 너비를 지정할 수 있다. 이를 통해 출력될 문자열의 정렬 및 최소 너비를 설정할 수 있다.
형식 지정 문자열 설명
%5s | 최소 너비 5의 문자열 |
%-5s | 최소 너비 5의 왼쪽 정렬 문자열 |
%5d | 최소 너비 5의 정수 |
%05d | 최소 너비 5의 정수, 빈 자리는 0으로 채움 |
%8.2f | 최소 너비 8, 소수점 이하 2자리의 부동 소수점 |
파이썬의 특수 문자 기호, 또는 이스케이프 코드(escape code)는 문자열 내에서 특정 문자를 표현하거나 제어 문자를 사용하기 위해 사용된다. 이스케이프 코드는 백슬래시(\\)로 시작하며, 뒤에 특정 문자가 따라오는 형태를 가진다.
이스케이프 코드 설명
\\ | 백슬래시(\)를 표현한다. |
\' | 작은따옴표(')를 표현한다. |
\" | 큰따옴표(")를 표현한다. |
\n | 새 줄(줄 바꿈)을 나타낸다. |
\t | 탭(tab)을 나타낸다. |
\r | 캐리지 리턴(carriage return)을 나타낸다. |
\b | 백스페이스(backspace)를 나타낸다. |
\f | 폼 피드(form feed)를 나타낸다. |
\a | 벨 소리(alert, bell)를 나타낸다. |
\v | 수직 탭(vertical tab)을 나타낸다. |
\ooo | 8진수 값에 해당하는 문자를 나타낸다. |
\xhh | 16진수 값에 해당하는 문자를 나타낸다. |
6. 특수 문자 기호
파이썬에서 % 연산자를 사용한 형식 지정에서는 % 뒤에 정수를 넣어 출력될 필드의 너비를 지정할 수 있다. 이를 통해 출력될 문자열의 정렬 및 최소 너비를 설정할 수 있다. 주요 형식 지정 예시를 표로 정리한다.
형식 지정 문자열 설명
%5s | 최소 너비 5의 문자열 |
%-5s | 최소 너비 5의 왼쪽 정렬 문자열 |
%5d | 최소 너비 5의 정수 |
%05d | 최소 너비 5의 정수, 빈 자리는 0으로 채움 |
%8.2f | 최소 너비 8, 소수점 이하 2자리의 부동 소수점 |
논리형과 참조형
논리형 (Boolean Type)
논리형은 참(True)과 거짓(False)을 나타내는 데이터 타입이다. 파이썬에서는 bool 타입을 사용하여 논리값을 표현한다.
- True: 참을 의미한다.
- False: 거짓을 의미한다.
논리형은 주로 조건문에서 사용되며, 다양한 연산자의 결과로 나타날 수 있다.
표현식 설명
a == b | a와 b가 같으면 True, 다르면 False |
a != b | a와 b가 다르면 True, 같으면 False |
a > b | a가 b보다 크면 True, 작거나 같으면 False |
a < b | a가 b보다 작으면 True, 크거나 같으면 False |
a >= b | a가 b보다 크거나 같으면 True, 작으면 False |
a <= b | a가 b보다 작거나 같으면 True, 크면 False |
not a | a가 True이면 False, False이면 True |
a and b | a와 b가 모두 True이면 True, 아니면 False |
a or b | a 또는 b가 True이면 True, 모두 False이면 False |
참조형 (Reference Type)
참조형은 변수에 값이 직접 저장되는 것이 아니라 값이 저장된 주소를 참조하는 데이터 타입을 의미한다. 파이썬의 참조형에는 리스트, 딕셔너리, 집합, 클래스 등이 포함된다.
데이터 타입 설명
리스트(List) | 순서가 있는 변경 가능한 시퀀스 자료형 |
딕셔너리(Dictionary) | 키와 값의 쌍으로 이루어진 변경 가능한 매핑 자료형 |
집합(Set) | 중복을 허용하지 않는 변경 가능한 무순서 자료형 |
튜플(Tuple) | 순서가 있는 변경 불가능한 시퀀스 자료형 |
클래스(Class) | 사용자 정의 자료형 |
'Python > [400제로 배우는 파이썬 입문]' 카테고리의 다른 글
[파이썬 입문] #4. 연산자 (0) | 2024.07.17 |
---|---|
[파이썬 입문] #2. 데이터와 변수 (0) | 2024.07.17 |
[파이썬 입문] #1. 파이썬 시작하기 (0) | 2024.07.01 |