study/Python
[Python 기초 100제] 1일차,2일차 - 변수,자료형, 연산자
creatorAron
2023. 1. 17. 00:28
Javascript도 마스터 못했지만...
헷갈릴 수 있는 문법들을 100제를 풀면서 정리하고 익혀보고자 함.
주석처리?
상수 : Python에는 상수를 지정하는 코드가 없다? const라는 키워드 지원이 안된다!! 일단 변수를 상수처럼 사용.
다른 언어처럼 바꿀 수 없게 하는 방법도 있긴함. 별도의 함수를 만들어야 함.
변수 : python은 변수 선언 시 메모리 공간을 예약하기 위해 명시적 선언을 할 필요가 없다. 바로 변수명을 적어주고 값을 할당하면 자동으로 변수 선언 및 값 할당이 이루어짐.
print할 경우 Javascript console.log와 다른 점
#[1]:변수 선언 및 변수 값 할당
a = 100
b = 3.14
c = 'k'
d = 'Hello World'
#[2]:출력
print('[결과출력]')
print(a)
print(b)
print('a변수의 값은?',a)
print(d)
print(a,b,c,d)
#[3]출력 결과
[결과출력]
100
3.14
a변수의 값은? 100
Hello World
100 3.14 k Hello World
다중 할당
# 다중 할당
a=b=c=d=e= 100
print(a,b,c,d,e) // 100 100 100 100 100
컴마를 활용한 할당 - 쌍을 이뤄서 tuple이 된다고 함.
# 다중 할당
a=b=c=d=e= 100,200
print(a,b,c,d,e) //(100, 200) (100, 200) (100, 200) (100, 200) (100, 200)
print(a, type(a)) // (100, 200) <class 'tuple'>
//한꺼번에 4개
a = 100,3.14,'k','korea'
print(a,type(a)) // (100, 3.14, 'k', 'korea') <class 'tuple'>
한꺼번에 할당하기
오답
a=100, b=3.14, c=k, d=korea
print(a,b,c,d) // SyntaxError: invalid syntax. Maybe you meant '==' or ':=' instead of '='?
정답
a,b,c,d = 100,3.14,'k','korea'
print(a,b,c,d) // 100 3.14 k korea
문자열 출력, 템플릿 리터럴..?
백슬래쉬 사용
a = '나는 엄마에게 말했다. "더 이상 \'카레\'는 먹기 싫어요!"라고..'
print(a) // 나는 엄마에게 말했다. "더 이상 '카레'는 먹기 싫어요!"라고..
id로 주소값을 출력 할 수 있다.
주소값에 따라 list 객체가 같은 주소인지 is 연산자로 출력할 수 있음.
a=[1,2,3,4,5]
b=a
c=[1,2,3,4,5]
print('a is b = ', a is b) # true
print(a is c, b is c) # false false
is 연산자
#is 연산자는 == 연산자와 달리 들어있는 데이터 값을 비교하는게 아니라 같은 객체(주소값)를 가리키는지를 비교한다.
==연산자
# ==연산자는 오브젝트의 데이터 값이 같은지 확인하고자 할 때 사용한다.
slice할 경우 주소값 변경
#slice 하는 법
#자바스크립트 slice처럼 [:] :기준으로 start : end
#[:-1]할경우 뒤에서부터 하나의 데이터를 빼고 나머지를 가져옴.
a = piano!
a[:-1] //piano
print(a) //piano! <-- 원래 값에는 변화 없음.
변수 swap
#a와 b 값 바꾸기
a = 1
b = 2
temp = a
a = b
b = temp
print(a,b) // 2 1
#temp 사용하지 않고 한 줄로 바꾸기
a,b = b,a
print(a,b) // 2 1
자료형
숫자,문자열은 비슷한데 숫자의 경우 정수 int와 실수 float가 나뉨.(C#에서도 변수 선언시 정수인지 실수인지 구분해서 선언했었는데 이와 동일)
그 외 리스트, 튜플, 집합
# [1] : 숫자형 - 정수
a = 100
print(type(a)) #'int'
# [2] : 숫자형 - 실수
b = 3.14
print(type(b)) #'float'
# [3] : 문자형
c = 'apple'
d = '010-1234-5678'
#--- 문자 또는 문자열은 작은따옴표(')나 큰따옴표(")로 감싸줘야 한다 --;;
print(type(c),type(d)) #'str','str'
# [4] : 리스트형
ist = [ 1, 2, 3, 4, 5, 100, 100 ]
print(type(ist)) #'list'
# [5] : 튜플형
tpl = ( 1, 2, 3, 4, 5 )
print(type(tpl)) #'tuple'
# [6] : 집합형 --> 중복 X
s = { 1, 2, 3, 4, 5, 500, 500 }
print(type(s)) #'set'
# [7] : 딕셔너리(사전)형
dic = { 'a' : 1, 'b' : 2 }
print(type(dic)) #'dict'
tuple로 만드는 두 가지 방법
a = ( 1, 2, 3, 4, 5 )
print(type(a)) #<class 'tuple'>
b = 1, 2, 3, 4, 5
print(b) # (1, 2, 3, 4, 5)
print(type(b)) #<class 'tuple'>
아스키코드
아스키 코드도 배웠으니 기록(어디에 써야하는지 아직 잘 모르겠음)
# 아스키 코드란? 컴퓨터가 문자를 이진법의 숫자로 기록할 때 문자에 숫자를 붙여서 기록하는 방법.
# 그 때 붙이는 아스키 규약에 따라 붙임.
# 대문자 A --> 65 ( 이후부터는 하나씩 증가하므로 B --> 66 )
# 소문자 a --> 97 ( 하나씩 증가하므로 100은 소문자 d )
# 숫자 0 --> 48 ( 하나씩 증가하므로 57은 숫자 9 )
# 엔터(Enter) --> 13
# 아스키코드 0번 --> NULL
print( ord('A') ) #--65
#--- ord() 함수는 문자를 입력받아 해당 문자에 해당하는 아스키코드 값을 반환(ordinal number) --;;
print( ord('a') ) #--97
print( ord('z') ) #--122
연산자
#대부분 연산자가 비슷함 다른 부분만 정리
산술연산자 중에 // #---몫을 구하는 연산자
% #나머지 구하는 연산자(js와 동일)
논리 연산자가 and, or, not으로 그냥 적으면 됨!
a = true
b = false
print (a or b) #---이런 식으로 사용하면 true가 나옴.
멤버쉽 연산자(in)
basket = [1, 2, 3]
a = 1 in basket
print(a) # true