var1= '안녕'
print(var1)
var1=5
print(var1)
A=1; a=2; # 변수는 대소문자 구별함
print('A+a',A + a, id(A), id(a))
# A+a 3 2039314475312 2039314475344
변수 선언시 type은 선언하지 않는다.
print()
a=10
b=12.5
c=b
print(a, '', b, '', c)
# 10 12.5 12.5
print('주소출력 :', id(a), '', id(b),'', id(c))
# 주소출력 : 2039314475600 2039324178608 2039324178608
# b와 c 는 같은 주소를 가지고 있다. 절대 주소는 아니다.
print(a is b, a==b) # False False - 주소 비교, 값 비교
print(c is b, c==b) # True True - is는 결과를 true, false로 답한다.
aa = [1000]
bb = [1000]
print(aa == bb, aa is bb) # True False
print(id(aa), '' , id(bb))
# 2039324349312 2039324347328
# aa 와 bb의 값이 같지만 주소는 같지 않다.
# 한줄 주석
'''
여러줄 주석
'''
"""
여러줄 주석
"""
import keyword
# 키워드(Keyword)는 파이썬에서 이미 예약되어있는 문자열로 다른 용도로 사용이 불가능하여 변수로 설정 안된다 오류난다.
print('키워드(예약어)목록 : ', keyword.kwlist)
# 키워드의 리스트 목록
print(3, type(3)) # int(정수) 타입
print(3.4, type(3.4)) # float(실수) 타입
print(3 + 4j, type(3+4j)) # complex(복소수) 타입
print(True, type(True)) # boolean 타입
print("good", type('good')) # string 타입
print((1,), type((1,)))# (1,) 튜플 타입
print([1], type([1])) # [1] 리스트
print({1}, type({1})) # {1} set 타입
print({'k':1}, type({'k':1})) # {'k': 1} 딕셔너리
print(isinstance(1, int)) #type을 확인하는 연산자. True
print(isinstance(1.2, float))
# True
v1=2 #치환
v1=v2=v3=v4=5
print(v1,v2,v3,v4) # 5 5 5 5
v1=1,2,3
print(v1) # (1, 2, 3)
v1,v2=10,20
print(v1,v2) # 10 20
v2,v1=v1,v2
print(v1, v2) # 20 10
*v1,v2 = 1,2,3,4,5
v1,*v2 = 1,2,3,4,5
#*v1,*v2 = 1,2,3,4,5 - 에러가 발생한다.
print(v1) # 1
print(v2) # [2, 3, 4, 5]
*v1,v2,v3=1,2,3,4,5
print(v1,v2,v3) # [1, 2, 3] 4 5
packing은 여러개의 변수를 하나에 담는것이다.
print(5+3,5-3,5*3,5/3) # 8 2 15 1.6666666666666667
print(5 // 3, 5%3, divmod(5,3)) # 몫 과 나누기 1 2 (1, 2)
연산자 우선순위
print('연산자 우선순위', 3+4*5, (3+4)*5) # 23 35
# 소괄호 () > 산술 연산자(**거듭제곱 > *,/ > +, -) > 관리연산자 > 논리연산자 > 치환(=)
관계연산자(== 값이 같은지, != 값이 다른지)
print(5>3, 5==3, 5 != 3)
# True False True
논리연산자
print(5>3 and 4<3, 5>3 or 4<3, not(5>=3))
# False True False
# 문자열 더하기 연산자
print('파이썬'+'만'+'세') # 파이썬만세
print('파이썬'*10)
# 파이썬파이썬파이썬파이썬파이썬파이썬파이썬파이썬파이썬파이썬
# 누적
a=10
a= a+1
a += 1
#a++ 파이썬은 증감연산자 없다.
print('a:', a) # a: 12
print(a, a* -1, -a, --a)
# 12 -12 -12 12
print(format(123.45678, '10.3f')) #전체 10자리 확보하고 앞에 3자리 공백, 4번째 자리에서 반올림 하기
# 123.457
print(format(123.45678, '10.3'))
# 1.23e+02
print(format(123, '10d'))
# 123
print ('{0:.3f}'.format(1.0/3)) # 소수 세번째자리 까지
#0.333
print ('{0:_^11}'.format('hello'))
# ___hello___
print ('{name} wrote {book}'.format(name='Swaroop', book='A Byte of Python'))
# Swaroop wrote A Byte of Python
많이 사용하는것
print('이름:{0}, 가격:{1}'.format('마우스', 5000))
# 이름:마우스, 가격:5000
print('이름:{0}, 가격:{1}'.format('마우스', 5000))
# 인덱스를 쓰지않아도 순서대로 들어옴, 이름:마우스, 가격:5000
print('이름:{1}, 가격:{0}'.format('마우스', 5000))
# 이름:5000, 가격:마우스
print('이름:{1}, 가격:{0}, 가격:{0} '.format('마우스', 5000))
# 이름:5000, 가격:마우스, 가격:마우스
print('나는 나이가 %d 이다.'%28)
# 나는 나이가 28 이다.
print('나는 나이가 %s 이다.'%'스물여덟')# 문자
# 나는 나이가 스물여덟 이다.
print('나는 나이가 %d 이고 이름은 %s이다.'%(23, '홍길동'))
# 나는 나이가 23 이고 이름은 홍길동이다.
print('나는 나이가 %s 이고 이름은 %s이다.'%(23, '홍길동'))
# 나는 나이가 23 이고 이름은 홍길동이다.
print('나는 키가 %f이고, 에너지가 %d%%.'%(177.7, 100))
#실수 ,%f - 소수6자리 정해짐.
#나는 키가 177.700000이고, 에너지가 100%.
print('aa\tbb') # \t - tab키
# aa bb
print(r'aa\tbb')# 앞에 raw string(r)을 선행하면 이스케이프(\) 기능 해제
# aa\tbb
print("c:\aa\abc\nbc.txt")
print(r"c:\aa\abc\nbc.txt")# 앞에 raw string(r)을 선행하면 이스케이프(\) 기능 해제
# bc.txt
print('aa', end=', ')
# print 는 기본적으로 라인스킵이 있다. end='' 를 사용하면 라인스킵이 안됨.
print('bb')
# aa, bb