Python study 2 - 숫자, 변수, 자료형 변환, f-문자열, 연산
Python 숫자, 변수, 자료형 변환, f-문자열, 연산에 대해 학습합니다.
Python에서 사용되는 개념의 일부 혹은 전체를 정리하여 반복학습에 사용합니다.
- 숫자와 연산자에 대해 학습합니다.
- 변수와 복합대입연산자에 대해 학습합니다.
- 자료형 변환과 input()함수에 대해 학습합니다.
- format 함수와 split 함수, 그리고 f-문자열에 대해 학습합니다.
- 파괴적 연산과 비파괴적 연산에 대해 학습합니다.
숫자
- 정수(interger) : 소수점이 없는 숫자 (10, 222, 64)
- 부동소수점(floating point) : 소수점이 있는 숫자 (10.1, 52.56, 64.0)
- 숫자 연산자
- 덧셈 : +
- 뺄셈 : -
- 곱셈 : *
- 나눗셈 : /
나눗셈은
정수 / 정수
를 하더라도부동소수점
으로 결과가 출력됩니다. - 정수 나눗셈 : //
- 나머지 : %
정수나눗셈(몫)과 나머지 연산자는 알고리즘에 자주 활용되니 기억해주세요.
- 제곱 : **
- 연산자 조합
- 정수 + 정수 : 나눗셈을 제외하고 정수로 출력
- 부동소수점 + 부동소수점 : 부동소수점으로 출력
- 정수 + 부동소수점 : 부동소수점으로 출력
- 문자열 + 정수 : 문자열 * 정수 외 에러 발생
- 문자열 + 부동소수점 : 불가
- 연산자 우선순위 : 수학과 동일하되, 가독성을 위해 우선순위 상관없이
(괄호)
로 구분하는것을 권장합니다.
ex) 2 + 2 * 2 보다는 2 + (2 * 2) 권장 - 부동소수점 연산의 주의점
- 0.1 + 0.2 를 출력시
0.300000000004
가 출력됩니다. 따라서, 0.1 + 0.2 == 0.3 이 프로그래밍 상 성립되지않습니다.
이는 프로그래밍 개발의 한계로인해 부동소수점 연산은 정확한 결과값을 구하기 어렵습니다.
정확도있는 부동소수점 연산을 하기위해서는 별도의 도구나 라이브러리를 이용해야 합니다.
따라서 가급적 부동소수점으로 정확성있는 코드를 구축하지 않도록 합니다.
- 0.1 + 0.2 를 출력시
변수
변수를 만드는 방법 식별자 = 값
pi = 3.141592변수를 사용하는 방법 print(pi)
- 변수와 관련된 용어
- 정의(define) or 선언 : 변수를 만드는 행위
- 할당(assign) : 변수에 값을 넣는 행위
- 참조(reference) : 변수 안에 있는 값을 사용하는 행위
- 복합 대입 연산자 : 변수에 값을 연산자해서 다시 변수에 적용
a += 1
==a = a + 1
[변수] [연산자]= [값] 의 형태
input()함수와 자료형 변환
- input()함수 : 사용자로부터 입력을 받아
문자열(str)
로 반환- 프롬프트(입력을 요청하는 문자열)를 출력
- 사용자로부터 입력을 받을 수 있게 일시정지
- 입력을 받으면 계속 진행
- 문자열 → 숫자 변환 :
정수int()
또는부동소수점float()
함수 사용
int(“52”) → 52
float(“52”) → 52.0
int(“hello”) → 변환 불가시ValueError
발생
int(“52.55”) → ValueError - 숫자 → 문자열 변환 :
문자열str()
함수 사용
str(52) → 52 (type : str)
format() 함수, split()함수, f-문자열
format() 함수
print(“{}”.format(10)) →
10
이라는 값이{}
안에 들어가서문자열 출력
print(“{}년 {}월 {}일”.format(2024, 7, 14)) →2024
년7
월10
일 출력
split() 함수
split 함수는 문자열 일부를 잘라서 문자열 여러개로 만드는 함수입니다.
예시1) print(“10 20 30 40”.split(“ “)) → 문자열을" "
공백 단위로 잘라서 리스트 생성
예시2) print(“10-20-30-40”.split(“-“)) → 문자열을-
단위로 잘라서 리스트 생성
예시3) print(“10 20\t30\n40”.split()) → 문자열을공백
단위로 잘라서 리스트 생성
예시1, 2, 3 출력값 = [‘10’, ‘20’, ‘30’, ‘40’]
split()함수에서
()
안에 내용을 생략하면 공백(띄어쓰기, 줄바꿈, 탭 문자 등)으로 자릅니다.
strip() 함수
strip 함수는 문자 앞과 뒤에있는 공백을 없애줍니다.
1
2
a = " Hello World! "
print(a.strip())
출력값 :
Hello World!
오른쪽/왼쪽 한쪽만 공백을 제거할 수도 있습니다.
lstrip() : 왼쪽 공백 제거
rstrip() : 오른쪽 공백 제거
f-문자열
f-문자열은
{}
안에값[표현식]
을 입력하여 활용합니다.
예시1)"{} + {} = {}".format(a, b, a + b)
를f"{a} + {b} = {a + b}"
로 표현
파괴적 연산과 비파괴적 연산
파괴적 연산 : 피연산자를 바꾸는 연산
a = a + 10
a = 20
a = 40비파괴적 연산 : 피연산자를 바꾸지 않는 연산. 할당을 안하면 적용이 되지 않습니다.
a + 10
a * 20
a - 40
a + a
a.format()
a.split()
a.upper()
a.lower()
a.strip()
a.isㅇㅇ()
할당 연산자
=
를 제외하면 기초 연산은 비파괴적 연산입니다.
- upper()와 lower()함수
- upper() : 소문자를 대문자로 변경
- lower() : 대문자를 소문자로 변경
print(a.upper())
사용시,upper()
함수는 비파괴적 연산이지만 함수를 정상적으로 실행합니다.
이는print(a + 10)
에서+
연산자가 비파괴적 연산이여도 정상적으로 실행되는 원리와 동일합니다.
isㅇㅇ() 함수 a.isalpha() : a라는 문자열이 알파벳으로 구성되어있는지 확인하여 True/False 반환하는 함수
- find()와 rfind()함수 : 문자열 내에서 찾는문자열이 몇번째 위치했는지 찾는 함수
- find() : 왼쪽부터 탐색
- rfind() : 오른쪽부터 탐색
- 없는 문자열 탐색시
-1
출력
- 문자열의 in 연산자 : 문자열 내부에 어떤 문자열이 있는지 확인
print(“안녕” in “안녕하세요”) →True
print(“잘가” in “안녕하세요”) →False