basic
파이썬 기본 문법
- 변수 선언, 식별자, 자료형, 형변환, 연산자
주석(comment)과 출력(print)
1
2
3
4# 주석 : 앞에 #을 붙이면 코드로 실행이 안됩니다.
# 코드에 대한 설명이나 코드를 실행시키고 싶지 않을 때 사용
# 단축키 : ctrl(cmd) + /
# 블럭설정 : shift + 방향키1
2
3
4
5
6# 출력 : print 함수
# 코드 중간에 변수에 들어있는 값을 확인하고 싶을 때 사용
# 1, 2, 3을 출력하는 코드, 아래를 실행시키면 1, 3이 출력 됩니다.
print(1)
# print(2)
print(3)1
2
3
4
5# print 함수의 옵션
# docstring : 함수에 대한 설명 : 단축키(shift + tab)
print(1, 2, sep="-", end="\t")
print(3)
# 자동완성 : tab변수 선언
- RAM 저장공간에 값을 할당하는 행위
1
2
3
4
5
6
7# 하나씩 선언
a = 1
b = 2
# 한줄로 여러개의 변수를 선언
d, e = 3, 4
# 5라는 값이 f와 g에 선언
f = g = 5
- 식별자
- 변수, 함수, 클래스, 모듈 등의 이름을 식별자라고 합니다.
- 식별자 규칙
- 소문자, 대문자, 숫자, 언더스코어(_)를 사용합니다.
- 가장 앞에 숫자 사용 불가
- 예약어의 사용 불가 : def, class, try, except, 등
- 컨벤션
- snake case : fast_campus : 변수, 함수 - camel case : FastCampus, fastCampus : 클래스
- 데이터 타입
- RAM 저장공간을 효율적으로 사용하기 위해서 저장공간의 타입을 설정
- 동적타이핑(인터프리터 방식에서 주로 사용함)
- 변수 선언시 저장되는 값에 따라서 자동으로 데이터 타입이 설정
- 기본 데이터 타입 : int, float, bool, str
- 컬렉션 데이터 타입 : list, tuple, dict
1 | a = 1 |
1 | # 기본 데이터 타입 : int, float, bool, str |
1 | # 데이터 타입의 함수 : 문자열 |
1 | f = ' THAt Car ' |
1 | # strip : 공백 제거 |
1 | # replace : 모든 공백제거 |
1 | # replace : 특정 문자열 치환 |
1 | # dir : 함수 확인 |
1 | # 오프셋 인덱스 : 마스크, 마스킹 : [] |
1 | # 97531 출력 |
1 | # 컬렉션 데이터 타입 : list, tuple, dict |
1 | # list |
1 | # offset index 사용 가능 |
1 | # list 함수 |
1 | # sort : 오름차순으로 정렬 |
1 | # pop : 가장 마지막 데이터를 출력하고 출력한 데이터를 삭제 |
1 | # 리스트의 복사 |
1 | # 얕은 복사 :주소값 복사 |
깊은 복사
1 | # 깊은 복사 |
1 | ls1[2] = 10 |
tuple ()
- 리스트와 같지만 수정이 불가능한 데이터 타입, 괄호 생략 가능
- 튜플은 리스트보다 같은 데이터를 가졌을 때 공간을 적게 사용
1
2
3tp1 = 1, 2, 3
tp2 = (4, 5, 6)
type(tp1), type(tp2), tp1, tp21
2# offset index 사용 가능
tp1[1], [tp1[::-1]]1
2
3
4
5
6
7
8# 리스트와 튜플의 저장공간 차이 비교
import sys
ls = [1, 2, 3]
tp = (1, 2, 3)
print(sys.getsizeof(ls), sys.getsizeof(tp))
# 96 801
2
3
4
5
6
7
8
9
10
11**dict {}**
- 순서가 없고 {키: 값}으로 구성되어 있는 데이터 타입
```python
# 선언: 키는 정수, 문자열 데이터 타입만 사용이 가능
# 인덱스 대신 키를 사용
dict = {
1: "one",
"two": 2,
'tree': [1, 2, 3],
}
type(dic), dic1
2
3
4dic[1], dic["tree"]
```python
dic["two"] = 123
dic1
2
3
4
5
6
7
8
9
10
11
12# 아래의 데이터를 list와 dict로 선언
# 도시 : seoul, busan, daegu
# 인구 : 9,700,000, 3,400,000, 2,400,000
# 딕셔너리 : 변수 1개 선언
data = {
"seoul": 9700000,
"busan": 3400000,
"daegu": 2400000,
}
# 리스트 : 변수 2개 선언
city = [seoul, busan, daegu]
population = [9700000, 3400000, 2400000]1
sum(population)
1
sum(data.values())
- 형변환
- 데이터 타입을 변환하는 방법
- int, float, bool, str, list, tuple, dict
1
2
3a = 1
b = "2"
a + int(b)1
str(a) + b
1
list(data.values())
1
2
3
4
5# zip : 같은 인덱스에 있는 데이터를 묶어주는 함수
# zip 함수 사용하여 list 타입으로 변환하기
list(zip(city, population))
# dict 타입으로 변환하기
dict(zip(city, population))1
2result = dict(list(zip(city, population)))
result1
2
3
4
5
6
7
8
9
10
11
12
13
14data1 = list(result.keys())
data2 = list(resutl.values())
data1, data2
```
6. 연산자 : 멤버 > 논리
- 산술연산자 : +, -, *, /, //(몫), %(나머지), **(제곱)
- 할당연산자 : 변수에 누적시켜서 연산 : +=, //=, **= 등
- 비교연산자 : >(크다), <(작다), ==, !=, <=(작거나 같다), >=(크거나 같다), 결과로 True, False
- 논리연산자 : True, False 를 연산 : or(T와 F연산 True가 출력), and(T와 T일 때 True), not(True를 False로 False를 True로 변경)
- 멤버연산자 : 특정 데이터가 있는지 확인 할 때 사용 : not in, in
```python
# 산술연산 : 제곱, 나눗셈, 더하기 순
1 + 4 / 2 ** 2 # 2.01
2
3
4
5# 할당연산
a = 10
a +=10
a += 10
a # 301
2# 비교연산
a < b, a == b, a != b1
2
3# 논리연산 : and(교집합), or(합집합), 괄호가 있는 경우에는 왼쪽이 먼저 연산됨
True and False, True or False, not True or False # (not True = False가 되어 False or Flase는 False가 됨)
# False, True, False1
2
3ls = ['jin', 'andy', 'john']
'andy' in ls, 'anchel' in ls, 'john' not in ls
# True, False, False1
2
3
4# 랜덤함수
import random
random.randint(1, 10)1
2
3# 입력함수
data = input('insert string : ')
data1
2
3
4
5
6
7
8
9
10
11
12
13# 해결의 책 만들기 : 질문을 하면 질문에 대한 답변을 해주는 책
# 1. solution을 리스트로 작성
# 2. 질문 입력 받음
# 3. 솔루션의 갯수에 맞게 랜덤한 index 정수 값을 생성
# 4. index 해당하는 솔루션 리스트의 데이터를 출력
solution =[
"무엇을 하던 잘 풀릴 것이다.",
'생각지도 않게 좋은 일이 생길 것이다.',
'무엇을 상상하던 그 이상이다.',
]
input("질문을 입력하세요. : ")
idx = random.randint(0, len(solution) - 1) # 솔루션 = 총 3개: 0, 1, 2 이므로 솔루션 숫자 -1을 해야 randint(0, 2)가 됨
solution[idx]