본문 바로가기

PYTHON

[PYTHON] 파이썬 기초 (타입, 함수)

데이터 타입

숫자

 

정수형(int) : 양의 정수, 음의 정수 0

a = 1000
print(a) // 1000

a = -7
print(a) // -7

a = 0
print(a) // 0

 

실수형(float) : 소수점 아래의 데이터를 포함하는 수 자료형

a = 15.15
print(a) // 15.15

a = -18.18
print(a) // -18.18

a = 5.
print(a) // 5.0  0 생략 가능

a = -.7
print(a) // -0.7  0 생략 가능

 

지수 표현 방식 : e나 E 를 사용하여 지수 표현 방식 사용 가능

임의의 큰 수를 표현할 때 씀 최단 거리에서 이동하면 안될 곳을 노드에 무한으로 설정

  • 이용 가능 최댓값이 10억 미만이면 무한 값으로 1e9 사용
a = 1e9
print(a)  // 100,000,000

a = 75.25e1
print(a)  // 752.5

a = -.2e-3
print(a) // -0.2 * 1/1000 = 0.0002

 

관련 함수

 

사칙연산 가능 2진수에선 실수 덧셈이 제대로 동작 안함

a = 0.3 + 0.6
print(a)

if a == 0.9:
	print(true)  
else:
	print(false)  // 실행 결과 0.8999999로 False가 실행 - 한없이 근접하지만 아님 

 

Decimal(실수) : 고정 소숫점으로 바꿔 위의 문제 해결

0.1 + 0.1 + 0.1 == 0.3
# False

# decimal module
from decimal import Decimal
print("decimal module: ", Decimal('0.1') + Decimal('0.1') + Decimal('0.1') == Decimal('0.3'))

 

round(실수, 정수) : 실수를 소숫점 정수 자리 다음에서 반올림함

a = 123.456
rount(a,2)
print(a)  // 123.46 

a = 0.3 + 0.6
a = round(a,3)
print(a)

if a == 0.9:
	print(true)  // 소숫점 4번째 자리에서 반올림되서 0.9
else:
	print(false)  

 

문자

 

 

관련 함수

find() : 문자열에서 특정 문자열의 위치를 찾는다

replace() : 문자열에서 특정 문자열을 지정한 문자열로 대체한다

upper() : 대문자로 만든다

lower(): 소문자로 만든다

join() : 특정문자로 연결한다

format() : 포멧팅 함수

split() : 문자열을 특정 구분자를 기준으로 나눈다.

 

str1 = "hello python"

str1.find('p')
# 6

str1.replace('hello', 'hi')
# hi python

str1.upper()
# HELLO PYTHON

str1.lower()
# hello python

".".join(str1)
#h.e.l.l.o. .p.y.t.h.o.n

str1.split(" ")
# ['hello', 'python']

split()

기본 사용 (공백 기준)

text = "Hello   World  Python"
words = text.split()
print(words)  # ['Hello', 'World', 'Python']

구분자를 지정하지 않으면, 기본적으로 연속된 공백을 기준으로 문자열을 나누고, 그 결과는 리스트로 반환됩니다.

 

구분자 지정

text = "apple,banana,orange"
fruits = text.split(",")
print(fruits)  # ['apple', 'banana', 'orange']

split() 메서드의 sep 인자를 사용하면 원하는 구분자를 기준으로 문자열을 나눌 수 있습니다. 이 구분자는 특정 문자일 수도 있고 문자열일 수도 있습니다.

 

maxsplit 사용

text = "one two three four"
parts = text.split(" ", maxsplit=2)
print(parts)  # ['one', 'two', 'three four']

maxsplit 인자는 문자열을 몇 번 나눌지 제어할 수 있습니다. 예를 들어, 2번까지만 나누고 싶다면 maxsplit=2로 설정할 수 있습니다. 그 이후의 부분은 그대로 남게 됩니다.

 

.strip()

input().strip() : 문자열을 입력 받고 양 옆 공백 지워버리기

  1. 양쪽 끝의 공백 제거
    • 아무런 인자를 주지 않으면, 기본적으로 문자열의 양쪽 끝에 있는 공백(띄어쓰기, 탭, 줄바꿈 문자 등)을 모두 제거
text = "   Hello, World!   "
cleaned_text = text.strip()
print(f"'{cleaned_text}'")  # 'Hello, World!'

  1. 특정 문자 제거
    • .strip()에 제거할 특정 문자를 인자로 전달하면, 해당 문자들이 문자열 양 끝에서 제거됩니다. 이때는 전달된 문자들이 모두 일치하지 않아도 상관없이 포함된 모든 문자를 제거합니다.
text = "##Hello, World!##"
cleaned_text = text.strip("#")
print(f"'{cleaned_text}'")  # 'Hello, World!'

  1. 왼쪽 또는 오른쪽만 공백 제거
  • .strip()은 양쪽 끝 공백을 제거하지만, 만약 특정 방향(왼쪽 또는 오른쪽)에서만 제거하고 싶다면, .lstrip()(왼쪽 공백 제거) 또는 .rstrip()(오른쪽 공백 제거)을 사용할 수 있습니다.
text = "   Hello, World!   "
left_cleaned_text = text.lstrip()  # 왼쪽 공백만 제거
right_cleaned_text = text.rstrip()  # 오른쪽 공백만 제거

print(f"'{left_cleaned_text}'")  # 'Hello, World!   '
print(f"'{right_cleaned_text}'")  # '   Hello, World!'