파이썬 파트 2-2. 숫자, 변수와 입력, 숫자와 문자열의 다양한 기능

1. 숫자


종류

  • int(integer) : 정수
    • ex) 0 1 2
  • float(floating point) : 부동 소수점(실수)
    • ex) 0.0 1.0 2.0


사칙 연산자

기본적으로 / * + - 가 있고 / 사용시 실수형으로 결과가 출력된다.

  • // : 정수 나누기 연산자 => 숫자를 나누고 소수점 이하의 자리수를 버린후 정수 부분만 남긴다.
  • % : 나머지 연산자
  • ** : 제곱 연산자
    • 2**3 은 8을 의미한다.


2. 변수와 입력


변수 만들기/사용하기

pi = 3.14159265
print(pi)

변수 선언, 변수에 값을 할당, 변수 참조
C나 자바 등에서는 기본적으로 변수의 자료형을 미리 선언해 주어야 하지만 파이썬은 같은 변수에 여러 종류의 자료형을 넣을 수 있다.

사용자 입력 : input()

number = input("숫자 입력 : ")
print(number)

input 함수는 사용자가 무엇을 입력해도 결과는 무조건 문자열 자료형이다. 하지만 이 자료형을 형변환으로 바꿀 수 있다.

  • int() : 문자열을 int 자료형으로 변환
  • float() : 문자열을 float 자료형으로 변환
string_a = input("정수를 입력 ")
string_b = input("정수를 입력 ")
print("덧셈 결과 ",int(string_a)+int(string_b))

# 보통 입력과 동시에 한다.
string_a = int(input("정수를 입력 "))

변환할 수 없는 것 변환시 오류 발생 ValueError

output_a = int("52")
output_b = float("52.273")
output_c = float("안녕하세요") # 오류 발생
output_d = int("12.567") # 부동 소수점 오류 발생


숫자를 문자열로 바꾸기 : str()

문자열을 숫자로 변환하는 것처럼 숫자를 문자열로 변환하는 것도 가능하다. int() float() 형태와 비슷하다.

# str(다른 자료형)

output_a = str(52)
print(type(output_a), output_a)

# 출력
<class 'str'> 52


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


객체 지향 프로그래밍
주어.동사(목적어) 형태로 사용

문자열의 format() 함수

"{}".format(10)
"{} {}".format(10,20)
string_a = "{}".format(10) # 함수로 숫자를 문자열로 변환
string_b = "{} 만원".format(5000)

name = "backtony"
print(f"my name is {name}")
  • 중괄호{}를 포함한 문자열 뒤에 마침표를 찍고 format() 함수를 사용한다.
  • 함수의 매개인자를 문자열 처리한다.
  • 반드시 중괄호의 갯수와 format 함수 괄호 안 매개변수의 개수는 같아야 한다.
  • {} 기호 대신 format 괄호 안에 있는 매개변수로 대체하는 것 뿐이기에 {}와 {} 사이에 다양한 문자열을 넣을 수 있다.
  • {} 개수가 매개변수의 개수보다 많으면 IndexError 예외가 발생하지만 매개변수의 개수가 더 많은 경우에는 {} 개수만큼만 적용되고 나머지는 버려진다.
  • 앞에 f를 붙이고 {} 안에 직접 대입을 통해 직관적으로 작성 가능

다양한 format() 기능

output_a = "{:d}".format(52) # 문자열처리가 아닌 정수 처리
output_b = "{:5d}".format(52) # 총 5칸을 차지하고 오른쪽에서 왼쪽으로 
output_c = "{:05d}".format(52) # 총 5칸 차지하고 왼쪽에 남은 공간 0으로 채우기
output_d = "{:05d}".format(-52) # 맨 앞칸은 -부호가 차지한다. -0052
output_e = "{:+d}".format(52) # 부호화 함께 출력 +52
output_f = "{:+d}".format(-52) # 부호화 함께 출력 -52
output_g = "{: d}".format(52) # 부호부분 공백 ,, 즉, 총 3칸 차지하고 맨 앞 공백
output_h = "{: d}".format(-52) # -52 출력
output_i = "{:+5d}".format(52) # 기호 뒤로 밀기 즉, 앞 2칸 공백 이후 +52
output_j = "{:=+5d}".format(52) # 기호 앞으로 밀기, 부호만 맨 앞으로

# 부동 소수점 출력
output_k = "{:f}".format(52.273) 
output_l = "{:15f}".format(52.273) # 15차지 오른쪽에서 왼쪽으로 .도 1칸차지 
output_m = "{:15.2f}".format(52.273) # 15칸차지 2칸은 소수점

output_n = 52.0
output_o = "{:g}".format(output_n) # 의미없는 소수점 제거 => 52 
이외에는 정수와 마찬가지


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

a = "Hello World"
print(a.upper()) # 전부 대문자로 출력
print(a.lower()) # 전부 소문자로 출력

a의 문자열을 대, 소문자로 변환후 반환하는 것이지 a자체가 변하는 것이 아니다.

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

  • strip() : 문자열 양옆의 공백 제거
  • lstrip() : 문자열 왼쪽의 공백 제거
  • rstrip() : 문자열 오른쪽의 공백 제거
input_a = """
안녕하세요
"""
print(input_a)

# 출력
(줄바꿈)
안녕하세요
(줄바꿈)

print(input_a.strip())

# 출력
안녕하세요


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

  • isalnum() : 문자열이 알파벳 또는 숫자로만 구성되어 있는지 확인
  • isalpha() : 문자열이 알파벳으로만 구성되어 있는지 확인
  • isidentifier() : 문자열이 식별자로 사용할 수 있는지 확인
  • isdecimal() : 문자열이 정수 형태인지 확인
  • isdigit() : 문자열이 숫자로 인식될 수 있는 것인지 확인
  • isspace() : 문자열이 공백으로만 구성되어 있는지 확인
  • islower() : 문자열이 소문자로만 구성되어 있는지 확인
  • isupper() : 문자열이 대문자로만 구성되어 있는지 확인
print("Train10".isalnum())

# 출력
True


문자열 찾기: find()와 rfind()

  • find() : 왼쪽부터 찾아서 처음 등장 위치 찾기
  • rfind() : 오른쪽부터 찾아서 처음 등장하는 위치 찾기
output_a = "안녕안녕하세요".find("안녕") # 0 이 저장된다.
output_a = "안녕안녕하세요".rfind("안녕") # 2 가 저장된다.


문자열과 in 연산자

  • 문자열 내부에 어떤 문자열이 있는지 확인하기 위해서 사용
  • True 또는 False를 반환
print("안녕" in "안녕하세요") # True 반환
print("잘차" in "안녕하세요") # False 반환


문자열 자르기: split()

  • 문자열을 특정한 문자로 자를때 사용
  • 실행결과로 리스트가 나온다.
a = "10 20 30 40".split(" ") # 공백을 기준으로 자른다.
print(a) # ['10', '20', '30', '40'] 이 출력된다.

© 2021. By Backtony