[Python 기초] 01 데이터/변수, 연산자, 조건식

*using Python - PyCharm Community Edition

📌 데이터와 변수


📚 변수

  • 데이터가 저장되어 있는 메모리 공간
  • 반드시 선언 후 초기화 하여 사용
  • 데이터 재사용 목적으로 활용
# 변수 초기화
num = 10
name = 'Hong Gil-dong'

print(num)
print(name)

📚 자료형(Data Type)

  • 데이터 타입에 따른 메모리 크기 결정

👉 정수 int: 메모리 허용하는 범위 내에서 무한 사용 가능
👉 실수 float: 대략 소수점 아래 17~18번째에서 데이터 손실 발생
👉 문자(열) str
👉 논리형 bool: True, False

num1 = 10
num2 = 10.0
num3 = '10'
num4 = True

# 특정 변수 Data Type 확인
print(type(num1))	# <class 'int'> 반환
print(type(num2))	# <class 'float'> 반환

자료형 변환 (type casting)

# 문자(열) 형변환
str(num1)
str(num2)

# 숫자 형변환
int(num3)
int(num4)	# True = 1 로 변환
float(num1)

# 문자(열) > 논리 > 산술 연산
var1 = 'True'
var2 = 'False'
var1 = bool(var1)		# 데이터가 있으면 True
var2 = bool(var2)
print(var1 + var2)		# 2 반환
print(type(var1 + var2))	# <class 'int'> 반환

📚 데이터 입/출력

# 키보드로 데이터 입력 후 저장해 출력
# 기본 str 타입으로 입력됨
inputData = input()
print(inputData)

# 원하는 type에 맞게 casting
inputData = int(input())
inputData = float(input())
inputData = bool(input())

# 여러 데이터 출력
name = input()
age = input()
print('name : ', name, ', age : ', age)

# 자동개행(\n) 취소
print('3 * 5 = ', end='')
print(3 * 5)

# 포맷 문자열 이용한 출력
print(f'name : {name}, age : {age}')

📚 format()과 형식문자

# format() 함수를 활용한 데이터 출력
print('name : {}'.format(name))
print('name : {}, age : {}'.format(name, age))

# format() 함수의 인덱스를 활용해 출력
print('name : {0}, age : {1}. hi, {0}'.format(name, age))

# 형식문자를 활용해 출력
# %s(문자열), %d(정수), %f(소수), %.nf(소수점 n자리 표현)
print('name : %s, age : %d' % (name, age))

📌 연산자 (operator)


📚 연산자

  • 산술 연산자: +, -, *, /, //, %, **
# 숫자와 문자 연산 불가능
result = num1 + fnum

print('num1 + num2 = %.2f' % (num1 + num2))

str1 + str2 	# = str1str2 가능
str1 - str2	# 불가능

result = num1 * fnum
print('result = {}'.format(result))

str1 * 5	# str1str1str1str1str1

num1 / num2 	# 결과값은 항상 float type
10 // 3		# = 3 몫
10 % 3		# = 1 나머지

# divmod(): 몫과 나머지를 한 번에 구해주는 함수
result = divmod(10, 3)	# result에 튜플로 몫, 나머지가 들어있음
print('몫: {}'.format(result[0]))
print('나머지: {}'.format(result[1]))

2 ** 3		# = 8    n ** m      n의 m제곱
9 ** (1/2)	# = 3.0  n ** (1/m)  n의 m제곱근

# sqrt(x), pow(x,y)
print('2의 제곱근 %.2f' % math.sqrt(2))
print('2의 3제곱 %f' % math.pow(2,3))

format(409000, ',') # = 409,000 3자리씩 ,로 끊어줌 str type으로 전환됨
  • 할당(대입) 연산자: =
    - 복합 연산자: 산술연산자=
result = num1 + num2	# num1+num2 값을 result에 할당

num += 5		# num = num + 5
num -= 5		# num = num - 5
num *= 5		# num = num * 5
num /= 5		# num = num / 5
num //= 5		# num = num // 5
num **= 5		# num = num ** 5
  • 비교 연산자: 연산 결과는 bool 이다.
print(10 > 5)	  # True
print(10 < 5)	  # False
print(10 >= 5)	  # True
print(10 <= 5)	  # False
print(10 == 5)	  # False
print(10 != 5)	  # True

# 문자 비교는 ASCII 코드에 의해 결정됨
print('A' > 'S')  # False 
print(ord('A'))	  # = 65 A의 ASCII 코드값 출력
print(chr(65))	  # = A  65의 ASCII 코드 대응 문자 출력

# 문자열 자체로 비교되어 같은지만 비교 가능
print('A' == 'S') # False
  • 논리 연산자: and, or, not
print(True and True)	# True
print(False and True)	# False
print(True and False)	# False
print(False and False)	# False

print(True or True)	# True
print(False or True)	# True
print(True or False)	# True
print(False or False)	# False

print(not True)		# False
print(not False)	# True

📚 operator module

import operator

operator.add(num1, num2)	# +
operator.sub(num1, num2)	# -
operator.mul(num1, num2)	# *
operator.truediv(num1, num2)	# /
operator.mod(num1, num2)	# %
operator.floordiv(num1, num2)	# //
operator.pow(num1, num2)	# **

operator.eq(num1, num2)		# ==
operator.ne(num1, num2)		# !=
operator.gt(num1, num2)		# >
operator.ge(num1, num2)		# >=
operator.lt(num1, num2)		# <
operator.le(num1, num2)		# <=

operator.and_(num1, num2)
operator.or_(num1, num2)
operator.not_(num1)

📌 조건식


📚 A if 조건식 else B

  • 조건식 결과가 True이면 A 실행, 그렇지 않으면 B 실행
  • 조건식 결과를 변수에 할당해 사용
print('num1이 num2보다 크다') if num1 > num2 else print('num1이 num2보다 크지 않다')

result = 'possible' if myPoint >= minAblePoint else 'impossible'
print('포인트 사용 가능 여부: {}'.format(result))

좋은 웹페이지 즐겨찾기