본문 바로가기
프로그래밍/Python

[Python] 변수와 자료형

by 개발자 한량 2021. 12. 5.
728x90
반응형
SMALL

변수와 자료형

▶ 변수명 선언

  • 알파벳, 숫자, 밑줄( _ )로 선언할 수 있음
  • 변수명은 의미 있는 단어로 표기하는 것이 좋음
  • 변수명은 대소문자가 구분됨
  • 특별한 의미가 있는 예약어는 사용할 수 없음

 기본 자료형

  • 정수형(integer type) : 자연수를 포함해 값의 영역이 정수로 한정된 값.
  • 실수형(floating-point type) : 소수점이 포함된 값
  • 문자열형(string type) : 값이 문자로 출력되는 자료형
  • 불린형(boolean type) : 논리형으로, 참(True) 또는 거짓(False)을 표현할 때 사용

 동적 타이핑(dynamic typing)

  • 변수의 메모리 공간을 확보하는 행위가 실행 시점에서 발생하는 것
  • C나 자바 : int data=8 과 같이 data라는 변수가 정수 형이라고 사전에 선언
  • 파이썬 : data = 8 형태로 선언, data라는 변수의 자료 형이 정수(integer)인지 실수(float)인지를 프로그래머가 아닌 인터프리터가 스스로 판단함
  • 실행 시점에 동적으로 판단하므로 파이썬 언어가 동적으로 자료형의 결정을 지원
  • 다른 언어들과 달리 파이썬은 매우 유연한 언어로, 할당 받는 메모리 공간도 저장되는 값의 크기에 따라 동적으로 다르게 할당 받을 수 있음

기본 자료형

### 정수형 ###
a=10
b=20
c=a+b
print(a,b,c)

# 실행결과
10 20 30

a=1
b=10
print(a, end=' ') # 한줄로 출력 
print(b)
print(a,b)

# 실행결과
1 10
1 10

 

### 실수형 ###
f1=1.5
f2=10.3
f3=f1+f2
print(f1, f2, f3)

# 실행결과
1.5 10.3 11.8

 

### 문자(열)형 ###
s1='abc'
s2="가나다라"
print(s1, s2)

# 실행결과
abc 가나다라

 

### 불린형 ###
b1=True
b2=False
print(b1, b2)

# 실행결과
True False

 사칙연산 나눗셈의 정수와 몫(//)과 나머지(%) 연산

### 사칙연산 ###
a=10
b=4
print('a+b : ', a+b)
print('a-b : ', a-b)
print('a*b : ', a*b)
print('a/b : ', a/b)

### 나눗셈의 정수와 몫(//)과 나머지(%) 연산 ###
print('a%b : ', a%b)
print('a//b : ', a//b)

# 실행결과
a+b :  14
a-b :  6
a*b :  40
a/b :  2.5
a%b :  2
a//b :  2

 제곱승(**)

### 제곱승 ###
print(3*3*3*3*3)
print(3**5)
print("*"*10)
print("가나다, " *10)

# 실행결과
243
243
**********
가나다, 가나다, 가나다, 가나다, 가나다, 가나다, 가나다, 가나다, 가나다, 가나다,

증가 연산과 감소 연산

### 증가 연산과 감소 연산 ###
a=1
a+=1
print(a)
a-=1
print(a)

# 실행결과
2
1

관계연산 • 비트연산    논리연산

### 관계연산 ###
a=10
b=5
print('a>b : ', a>b)
print('a<b : ', a<b)
print('a>=b : ', a>=b)
print('a<=b : ', a<=b)
print('a==b : ', a==b)
print('a!=b : ', a!=b)

# 실행결과
a>b :  True
a<b :  False
a>=b :  True
a<=b :  False
a==b :  False
a!=b :  True

 

### 비트 연산 ###
a=6 #110
b=2 #010
​
print('a&b', a&b)
print('a|b', a|b)
print('a^b', a^b)
print('~a', ~a)
print('a<<1', a<<1) #a*2**1
print('a>>1', a>>1)

# 실행결과
a&b 2
a|b 6
a^b 4
~a -7
a<<1 12
a>>1 3

 

### 논리 연산 ###
a=10
b=5
c=3

print('a>b && b>c : ', a>b and c>b) #&&
print('a>b && b>c : ', a>b or c>b) # ||
print('not(a>b && b>c) : ', not(a>b and c>b)) #!
print('not(a>b && b>c) : ', not(a>b or c>b))

# 실행결과
a>b && b>c :  False
a>b && b>c :  True
not(a>b && b>c) :  True
not(a>b && b>c) :  False

자료형 변환 : 정수형 -> 실수형 변환

  • float() 함수 : 정수를 실수형으로 변환해 주는 함수

### 형변환 float() ###
a=10
b=float(a)
print(a, b)

# 실행결과
10 10.0

 자료형 변환 : 실수형 ->  정수형 변환

  • int() 함수 : 실수형을 정수형으로 변환해 주는 함수

자동 형 변환이 일어나는 경우

  • ‘10 / 3’ : 별도의 형 변환을 하지 않아도 자료 형이 실수로 변환됨.
    - 파이썬의 대
    표적인 특징인 동적 타이핑 때문에 나타나는 현상 중 하나

  • 값의 크기를 비교
    - 예로 ‘1 == True’라고 입력하면 결과는 True로 출력
    - 아무것도
    넣지 않은 " " 같은 문자열을 불린형과 비교하면 False로 인식
print(1==True)
print(0==False)

# 실행결과
True
True

 

 자료형 변환 : 문자열형 -> 숫자형 변환

  • 실수형 값을 문자형으로 선언하기 위해서는 반드시 따옴표를 붙여 선언해야 함

 자료형 변환 : 더하기 연산 시 자료형 통일 

  • 두 변수를 더하기 위해서는 두 변수의 자료형을 통일해야 함

 자료형 변환 : 숫자형 -> 문자형 변환

  • str() 함수 : 기존의 정수형이나 실수형을 문자형으로 변형
    - 문자형 간의 덧셈은 숫자 연산이 아닌 단순 붙이기(concatenate)가 일어남

 

### str() 함수 ###
s='10.0'
f1=float(s)
print(f1+10)
print(str(f1+10)+'점')

# 실행결과
20.0
20.0점

 자료형 확인하기

  • type() 함수 : 자료형을 확인할 수 있는 함수
### type() 함수 ###
a=10
b=10.0
c='abc'
d=True
print(type(a), type(b), type(c), type(d))

# 실행결과
<class 'int'> <class 'float'> <class 'str'> <class 'bool'>

 출력 함수 : print()

 

name="홍길동"
age=20
height=180.5
print('이름은',name+'이고, 나이는',str(age)+'이며, 키는', str(height)+'입니다.')
print('이름은 %s이고, 나이는 %d이며, 키는 %.1f입니다.'%(name, age, height))

print("%o" %age)
print("%x" %age)

# 실행결과
이름은 홍길동이고, 나이는 20이며, 키는 180.5입니다.
이름은 홍길동이고, 나이는 20이며, 키는 180.5입니다.

24
14

 


입출력 함수

표준 입력 함수 : input() 함수

  • input() 함수 : 표준 입력 함수로, 사용자가 문자열을 콘솔 창에 입력할 수 있게 해줌

 표준 출력 함수 : print() 함수

  • print() 함수 : 표준 출력 함수, 결과를 화면에 출력하는 함수

 

#print("name : ")
name=input('이름을 입력하세요 : ')
age=int(input('나이를 입력하세요 : '))
hegiht=float(input('키를 입력하세요'))
print(name, age, hegiht)

# 실행결과
이름을 입력하세요 :  한량
나이를 입력하세요 :  27
키를 입력하세요 152
한량 27 152.0

 

728x90
반응형
LIST

댓글