그냥 일반 python
이 있고, 일반 python + 기본 라이브러리가 탑재된 anaconda
가 있다. 아나콘다를 깔아주는게 보다 더 편리하므로, 아나콘다를 깔아주도록 하자!
아나콘다 (https://www.anaconda.com/products/individual) <- 텍스트를 클릭하면, 아나콘다를 다운받을 수 있는 링크로 넘어간다. 각자의 OS에 맞는 버전으로 다운로드 하여 설치해준다.
설치 시, 프로그램에서 추천하지는 않지만 PATH 환경변수 추가하는 걸 체크해주고 설치해준다.
아나콘다를 다운 받은 후에 에디터를 다운받아서 설치하면 되는데, 에디터는 MS에서 나온 vscode
나, JetBrain사에서 나온 pyCharm
두 가지를 많이 사용한다고들 한다. 우리는 vscode
가 무료기도 하고 더 상용화 되어있으니 vscode
를 선택하도록 하자!
에디터를 깔아준 뒤 기본적으로 인코딩 언어는 UTF-8
로 설정해주고, 파이썬을 활용해보도록 하자!
오늘 배운 것 중에는 변수와, 자바의 컬렉션과 유사한 list, tuple, dict, set이 가장 중요하다.
1. 환경설정
(1) Anaconda : Python + 기본 lib
(2) Editor
- VSCode ( Editplus + Eclipse ) by MS
- Pycham ( Eclipse ) by jetbrains
2. VSCode 단축키
(1) Ctrl + Shift + p : Select Interpreter
(2) Ctrl + , : Settings ( font size , zoom, .. )
cf) https://developer-theo.tistory.com/entry/VSCode-%EA%B8%B0%EB%B3%B8-%EC%82%AC%EC%9A%A9%EB%B2%95
3. Built-in Data Types
(1) Text : str
(2) Numeric : int, float, complex
(3) Sequence : list, tuple, range
(4) Mapping : dict
(5) Set : set, frozenset
(6) Boolean : bool
(7) Binary : bytes, bytearray, memoryview
4. 주석처리
# 인라인주석
'''
블록주석
블록주석
'''
#List ( 중복허용, 순서보존 )
a = ["a", "b", "c", "d", "e", "f", "a"]
print(a)
print(a[-1])
print(a[1:4]) # 이상 미만
print(a[3:]) # 이상
print(a[:3]) # 미만
print(a[-3:-1]) # 이상 미만
print()
#1. 요소 핸들링
#1-1 변경 ( change )
a[1] = "bb"
print(a)
print()
#1-2. 추가 ( append )
a.append("g")
print(a)
print()
#1-3. 삽입 ( insert )
a.insert(3, "cc")
print(a)
print()
#1-4. 삭제 ( remove ) : 내용
a.remove("cc")
print(a)
print()
#1-5. 삭제 ( 맨끝에 있는 놈 )
a.pop()
print(a)
print()
#1-6. 삭제 ( del ) : 인덱스
del a[1]
print(a)
print()
#1-7. 삭제 ( clear ) : 모든 요소 삭제
a.clear()
print(a)
print()
#2. 핸들링
#2-1 핸들링 ( loop )
b = ["tiger", "lion", "rabbit"]
for x in b:
print(x)
#2-2 핸들링 ( if )
if "lion" in b:
print("사자가 있음")
#2-3 핸들링 ( len )
print(len(b))
print()
#2-4 핸들링 ( copy )
bb = b.copy()
print(bb)
if bb is b:
print("같은 객체")
else:
print("다른 객체")
print()
#3. 합치기
#3-1. 방법1
c1 = ["a", "b", "c"]
c2 = [10, 20, 30]
c = c1 + c2
print(c)
print()
#3-2. 방법2
for x in c2:
c1.append(x)
print(c1)
print()
#3-3. 방법3
c1 = ["a", "b", "c"]
c1.extend(c2)
print(c1)
print()
# Tuple ( 중복허용, 순서보존 but unchangeable )
a = ("a", "b", "c", "d", "e", "f", "a")
print(a)
print()
print(a[1])
print(a[-1])
print(a[3:])
print(a[:3])
print(a[-3:-1])
print()
#1. 요소 핸들링
#1-1 변경 ( change )
#a[1] = "bb" #불가 why? 그게 튜플이야
b = list(a) # step1
b[1] = "bb" # step2
a = tuple(b) # step3
print(a[1])
print()
#1-2. 추가 ( append )
#a.append("g") #불가 why? 그게 튜플이야
#a.insert(3, "cc") #불가 why? 그게 튜플이야
#a.remove("cc") #불가 why? 그게 튜플이야
#a.pop() #불가 why? 그게 튜플이야
#del a[1] #불가 why? 그게 튜플이야
#a.clear() #불가 why? 그게 튜플이야
#2. 핸들링
#2-1 핸들링 ( loop )
b = ("tiger", "lion", "rabbit")
for x in b:
print(x)
#2-2 핸들링 ( if )
if "lion" in b:
print("사자가 있음")
#2-3 핸들링 ( len )
print(len(b))
print()
#2-4 핸들링 ( copy )
#bb = b.copy() #불가 why? 그게 튜플이야
#print(bb)
#cf) 생성
bbb = ("orange",) # 한개라도 꼭 컴마를 붙여줘야 튜플이 된다, 아니면 그냥 str이 되어버림
print(type(bbb))
print()
#3. 합치기
#3-1. 방법1
c1 = ("a", "b", "c")
c2 = (10, 20, 30)
c = c1 + c2
print(c)
print()
#3-2. 방법2 #불가 why? 그게 튜플이야
#3-3. 방법3 #불가 why? 그게 튜플이야
#Set ( 중복허용X, 순서보존X )
a = {"a", "b", "c", "a"}
print(a)
print()
#1. 요소 핸들링
#1-1. 추가 ( add )
a.add("tiger")
print(a)
print()
#1-2. 수정 ( update )
a.update({"lion", "rabbit"})
print(a)
print()
#1-3. 삭제 ( remove ) : 내용
a.remove("b")
a.discard("a") # 해당 요소가 없어도 error를 내지 않음
print(a)
print()
#1-4. 삭제 ( 램던한 요소가 삭제 )
a.pop()
print(a)
print()
#1-5. 삭제 ( clear ) : 모든 요소 삭제
#a.clear()
#print(a)
#print()
#2. 핸들링
#2-1 핸들링 ( loop )
b = {"tiger", "lion", "rabbit"}
for x in b:
print(x)
#2-2 핸들링 ( if )
if "lion" in b:
print("사자가 있음")
#2-3 핸들링 ( len )
print(len(b))
print()
#2-4 핸들링 ( copy )
bb = b.copy()
print(bb)
if bb is b:
print("같은 객체")
else:
print("다른 객체")
print()
#3. 합치기
#3-1. 방법
c1 = {"a", "b", "c"}
c2 = {10, 20, 30}
#c = c1 + c2 # 불가
c = c1.union(c2)
print(c)
print()
# dict
a = {"name":"홍길동", "age":24} # 방법1
# a = dict(name="홍길동", age=24) # 방법2
print(a)
print()
print(a["name"])
print(a["age"])
print(a.get("name"))
print(a.get("age"))
print()
#1. 요소 핸들링
#1-1 변경
a["name"] = "이순신"
a["age"] = 33
print(a)
print()
#1-2. 추가
a["addr"] = "서울시"
print(a)
print()
#1-3. 삭제1 ( key값으로 )
a.pop("age")
print(a)
print()
#1-4. 삭제2 ( key값으로 )
del a["name"]
print(a)
print()
#1-5. 삭제 ( 마지막으로 추가된 아이템 )
a.popitem()
print(a)
print()
#1-6. 삭제 ( clear ) : 모든 요소 삭제
a = {"name":"홍길동", "age":24}
print("전", a)
a.clear()
print("후", a)
print()
#2. 핸들링
#2-1 핸들링 ( loop )
b = {"an1":"tiger", "an2":"lion", "an3":"rabbit"}
for x in b:
print("key:", x, " value:", b[x])
print()
for x in b.values():
print(x)
print()
for x, y in b.items():
print(x,y)
print()
#2-2 핸들링 ( if )
if "an2" in b:
print("2번째 동물(an1)이 있음")
if "lion" in b.values():
print("사자가 있음")
print()
#2-3 핸들링 ( len )
print(len(b))
print()
#2-4 핸들링 ( copy )
bb = b.copy() #방법2: bb = dict(b)
print(bb)
if bb is b:
print("같은 객체")
else:
print("다른 객체")
print()
#3. 합치기 : 불가
#4. Nested Dict
student1 = {"name":"김민겸", "age":30}
students = {
"st1": student1,
"st2":{"name":"김윤성", "age":40},
"st3":{"name":"신동갑", "age":36}
}
print(students)
파일명 규칙
은 짧은 소문자 이름을 가져야 하며 밑줄을 포함 할 수 있다. 디렉토리(패키지)도 짧은 소문자 이름을 가져야하며 밑줄이 없어야 한다. 클래스는 CamelCase(CapWords) 규칙을 사용해야 한다.'single quote'
도 가능하나, "double quote"
빈도가 더 많음global
이라는 예약어는 지역변수를 글로벌 변수처럼 사용하고 싶을 때 선언해 줌\n
한 줄 띄우기\"
[]
Square brackets == brace{}
Curly brackets == brace()
Round bracket == brace , parentheses <
: less than sign, left angle bracket>
: greater than sign, right angle bracketctrl
+ ,
: settings 열기ctrl
+ /
: 주석처리ctrl
+ G
: 해당 줄로 이동하기ctrl
+ F
: 검색하기ctrl
+ H
: 검색 후 모두 바꾸기ctrl
+ B
: 사이드바 토글ctrl
+ K
: 콘솔창 정리ctrl
+ Shift
+ F
: 파일 내 검색하기ctrl
+ f5
: 디버깅 건너뛰고 컴파일 해주는 새 콘솔 열기Alt
+ 방향키
: 블록 이동