파이썬 코딩 도장
print('Hello, world!')
print('Hello'); print('1234')
# Hello, world! 출력
print('Hello, world!')
#print('Hello, world!')
a = 1 + 2 # 더하기
print('Hello, world!') #printf('1234567890')
#print('Hello, world!')
#print('1234567890')
# 더하기
# a = 1 + 2
# print('Hello, world!')
💡 참고: 파이썬에서 한글 주석 사용
- 기본 인코딩이 UTF-8이긴 하지만, 이 형식으로 저장하지 않으면 에러 발생함.
특히 파이썬은 들여쓰기 자체가 문법임
if 다음 줄은 항상 들여쓰기 해야함 → 안하면 문법 에러이기 때문에 코드 실행 x
if a == 10:
print('10입니다') # 들여쓰기 문법 에러
# 올바른 코드
if a == 10:
print('10입니다.')
들여쓰기 방법
if a == 10:
print('10')
print('입니다.')
print('Hello, world!') # Hello, world!
python [스크립트파일.py](http://스크립트파일.py)
형식으로 실행 가능# Hello, world! 출력
print('Hello, world!')
# 코드를 사용하지 않음
#print('Hello, world!')
# 여러 줄로 된
# 블록 주석
# print('Hello, world!')
💡 참고 : 몫과 나머지 함께 구하기 → divmod 사용
- 튜플의 경우
💡 참고 : 진수, 8진수, 16진수
- 2진수: 숫자 앞에 0b를 붙이며 0과 1을 사용
- 8진수: 숫자 앞에 0o(숫자 0과 소문자 o)를 붙이며 0부터 7까지 사용
- 16진수: 숫자 앞에 0x 또는 0X를 붙이며 0부터 9, A부터 F까지 사용(소문자 a부터 f도 가능)
💡 복소수
- 허수부는 숫자 뒤에 j 붙이기
변수 개수와 값의 개수가 맞지 않을 경우 에러 발생
값이 모두 같은 경우 이런 형식도 가능
💡 변수 삭제
- del 사용
💡 빈 변수 만들기
- None 할당
💡 참고: 부호 붙이기
- 값이나 변수 앞에 양수, 음수 부호 붙이면 됨.
print(int(a) + int(b)) # print 안에서 int로 변수 변환도 가능
sep 사용
개행문자만 사용
sep='/'
sep='/', end=' '
sep=':'
>>> 10000000
10000000
>>> 10_000_000
10000000
>>> 10,000,000
(10, 0, 0)
numpy
모듈 설치 후 사용 가능💡 정수 객체와 실수 객체가 서로 다른 것은 어떻게 확인하는지?
- id 함수 사용
💡 값 비교에 is를 쓰지 않기
- 변수가 있는 상태에서 다른 값을 할당하면 메모리 주소가 달라짐.
- 객체 자체가 달라지니 값이 같아도 is로 비교시 false가 나옴.
🔎 논리 연산자 : and, or, not
💡 정수, 실수, 문자열 → boolean 타입으로
💡 단락평가
- 첫 번째 값만으로 결과가 확실할 때 두 번째 값은 확인(평가)하지 않는 방법
- and 연산자는 두 값이 모두 참이어야 참 → 첫 번째 값이 거짓이면 두 번째 값 확인하지 않고 바로 거짓으로 판별
- or 연산자는 두 값중 하나만 참이라도 참 → 첫 번째 값이 참이면 두 번째 값 확인하지 않고 바로 참으로 판별
- 파이썬에서 논리 연산자는 마지막으로 단락 평가를 실시한 값을 그대로 반환 → 논리 연산자는 무조건 bool을 반환하지 x
korean >= 50 and english >= 50 or mathematics < 50 or science < 50
# 정답
s = """ Python is a programming language that lets you work quickly
and
integrate systems more effectively."""
# 작은따옴표도 가능
'''Python is a programming language that lets you work quickly
and
integrate systems more effectively.'''
🧡 중요한 점
💡 리스트 언패킹(list unpacking)과 튜플 언패킹(tuple unpacking)
- 리스트와 튜플의 요소를 변수 여러 개에 할당하는 것
- 리스트 언패킹 형식으로 입력 값을 변수 여러 개에 저장 가능
a = list(range(5, -10, -2))
리스트, 튜플, range, 문자열 : 값이 연속적인 특징이 있음.
시퀀스 자료형(sequence types)
값 in 시퀀스 객체
값 not in 시퀀스객체
🔎 시퀀스 객체 연결하기
💡 문자열에 숫자 연결하기
- ‘문자열’ + str(정수)
- ‘문자열 + str(실수)
문자열도 시퀀스 자료형 → len 함수를 사용하면 됨.
문자열의 길이는 공백까지 포함
단, 문자열을 묶은 따옴표는 제외
UTF-8 : 한글 글자 하나는 3바이트로 표현
파이썬 3에서 len → 문자 개수를 구해줌
파이썬 2.7에서 len → 실제 바이트 수를 구해줌
시퀀스 객체에 [ ]를 붙이고 [ ] 안에 각 요소의 인덱스를 지정하면 해당 요소에 접근 가능
시퀀스 객체의 인덱스는 항상 0부터 시작
튜플, range, 문자열도 인덱스 지정 가능
range도 인덱스 접근 가능
문자열은 요소가 문자이므로 인덱스로 접근 시 문자가 나옴.
💡 시퀀스 객체에 인덱스를 지정하지 않으면?
- 시퀀스 객체에 인덱스를 지정하지 않은 상태 = 해당 객체 전체를 뜻함.
💡 gettime 메서드
- 시퀀스 객체에서 [ ] 를 사용하면 실제로는 이 메소드를 호출해 요소를 가져옴.
range도 가능
문자열도 가능
len 함수 활용
시퀀스 객체의 마지막 인덱스를 구할 때 종종 사용하는 방법
끝 인덱스는 가져오려는 범위에 포함되지 않으니, 실제로 가져오려는 인덱스보다 1을 더 크게 지정해야 함.
시작 인덱스와 끝 인덱스를 같은 숫자로 지정하면 아무것도 가져오지 않음.
리스트 a에서 a[:7]과 같이 시작 인덱스 생략 → 리스트 처음부터 끝 인덱스-1까지 가져옴
끝 인덱스 생략 시
둘 다 생략 = 리스트 전체
시퀀스객체[:끝인덱스:증가폭]
끝 인덱스 생략하며 인덱스 증가폭 사용
💡 인덱스 증가폭도 음수 적용이 가능한지?
- 요소를 뒤에서부터 가져오는 것이기 때문에 가능
튜플
range에 슬라이스 사용 → 지정된 범위의 숫자를 생성하는 range 객체를 새로 만듦.
- range는 생성 범위만 표시됨.
💡 slice 객체 사용하기
요소 개수가 적어도 상관없음.
할당한 요소 개수가 많으면 그만큼 리스트 요소 개수도 늘어남.
인덱스 증가폭
- 이때에는 슬라이스 범위의 요소 개수와 할당할 요소 개수가 정확히 일치해야 함.
- 튜플, range, 문자열은 슬라이스 범위 지정하더라도 요소 할당 불가
# 내가 쓴 답
year[5:8]
population[5:8]
# 정답
year[-3:]
population[-3:]
# 내가 쓴 답
n[1:12:2]
# 정답
n[1::2]
또는
n[1:12:2]
또는
n[1:len(n):2]
camille['health']
camille['movement_speed']
True, False
비교 연산자, 논리 연산자의 판단 결과로 True, False를 사용
'Hello, world!'
"Hello, world!"
'''Hello, world!
안녕하세요.
Python입니다.'''
"""Hello, world!
안녕하세요.
Python입니다."""
리스트 = [값, 값, 값] # 리스트 만들기
리스트 = [] # 빈 리스트 만들기
리스트 = list() # 빈 리스트 만들기
리스트 = list(range(횟수)) # range로 리스트 만들기
리스트[인덱스] # 리스트의 요소에 접근
리스트[0] # 리스트의 인덱스는 0부터 시작하므로 첫 번째 요소
리스트[인덱스] = 값 # 리스트의 요소에 값 저장
range(횟수)
range(시작, 끝)
range(시작, 끝, 증가폭)
튜플 = (값, 값, 값) # 튜플 만들기
튜플 = 값, 값, 값 # 괄호 없이 튜플 만들기
튜플 = () # 빈 튜플 만들기
튜플 = tuple() # 빈 튜플 만들기
튜플 = tuple(list()) # tuple에 list()를 넣어서 빈 튜플 만들기
튜플 = tuple(리스트) # tuple에 리스트를 넣어서 튜플 만들기
튜플 = tuple(range(횟수)) # range로 튜플 만들기
튜플[인덱스] # 튜플의 요소에 접근
튜플[0] # 튜플의 인덱스는 0부터 시작하므로 첫 번째 요소
튜플 = (값, ) # 요소가 한 개인 튜플 만들기
튜플 = 값, # 요소가 한 개인 튜플 만들기
값 in 시퀀스객체 # 시퀀스 객체에 특정 값이 있는지 확인
값 not in 시퀀스객체 # 시퀀스 객체에 특정 값이 없는지 확인
시퀀스객체1 + 시퀀스객체2 # 시퀀스 객체를 서로 연결하여 새 시퀀스 객체를 만듦
시퀀스객체 * 정수 # 시퀀스 객체를 특정 횟수만큼 반복하여 새 시퀀스 객체를 만듦
정수 * 시퀀스객체 # 시퀀스 객체를 특정 횟수만큼 반복하여 새 시퀀스 객체를 만듦
len(시퀀스객체) # 시퀀스 객체의 요소 개수(길이) 구하기
시퀀스객체[인덱스] # 시퀀스 객체의 요소에 접근
시퀀스객체[0] # 시퀀스 객체의 인덱스는 0부터 시작하므로 첫 번째 요소
시퀀스객체[-음수] # 인덱스를 음수로 지정하면 뒤에서부터 요소에 접근, -1은 뒤에서 첫 번째
시퀀스객체[인덱스] = 값 # 시퀀스 객체의 요소에 값 저장
del 시퀀스객체[인덱스] # 시퀀스 객체의 요소를 삭제
시퀀스객체[시작인덱스:끝인덱스] # 지정된 범위의 요소를 잘라서 새 시퀀스 객체를 만듦
시퀀스객체[시작인덱스:끝인덱스:인덱스증가폭] # 인덱스 증가폭을 지정하면 해당 값만큼
# 인덱스를 증가시키면서 요소를 가져옴
시퀀스객체[:끝인덱스] # 시작 인덱스를 생략하여 객체의 처음부터 끝 인덱스 - 1까지 가져옴
시퀀스객체[시작인덱스:] # 끝 인덱스를 생략하여 시작 인덱스부터 마지막 요소까지 가져옴
시퀀스객체[:] # 시작 인덱스와 끝 인덱스를 생략하여 객체 전체를 가져옴
시퀀스객체[0:len(시퀀스객체)] # len을 응용하여 객체 전체를 가져옴
시퀀스객체[:len(시퀀스객체)] # 시작 인덱스 생략, len을 응용하여 객체 전체를 가져옴
시퀀스객체[:끝인덱스:증가폭] # 객체의 처음부터 증가폭만큼 인덱스를 증가시키면서
# 끝 인덱스 - 1까지 요소를 가져옴
시퀀스객체[시작인덱스::증가폭] # 시작 인덱스부터 증가폭만큼 인덱스를 증가시키면서
# 마지막 요소까지 가져옴
시퀀스객체[::증가폭] # 객체 전체에서 증가폭만큼 인덱스를 증가시키면서 요소를 가져옴
시퀀스객체[::] # 객체 전체를 가져옴, 시퀀스객체[:]와 같음
시퀀스객체[시작인덱스:끝인덱스] = 시퀀스객체 # 범위를 지정하여 여러 요소에 값 할당
시퀀스객체[시작인덱스:끝인덱스:인덱스증가폭] = 시퀀스객체 # 증가폭만큼 인덱스를 건너뛰면서 할당
del 시퀀스객체[시작인덱스:끝인덱스] # 특정 범위의 요소를 삭제(원본 객체가 변경됨)
딕셔너리 = {키1: 값1, 키2: 값2} # 딕셔너리 만들기
딕셔너리 = {} # 빈 딕셔너리 만들기
딕셔너리 = dict() # 빈 딕셔너리 만들기
딕셔너리[키] # 딕셔너리에서 키로 값에 접근
딕셔너리[키] = 값 # 딕셔너리에서 키에 값 할당
키 in 딕셔너리 # 딕셔너리에 특정 키가 있는지 확인
키 not in 딕셔너리 # 딕셔너리에 특정 키가 없는지 확인
len(딕셔너리) # 딕셔너리의 키 개수(길이) 구하기
파이썬 300제
001
002
003
004
005
006
007
008
009
010
011
012
013
s = "hello"
t = "python"
print(s+"!", t)
014
015 ❌
- 값 타입은 int형으로 예상 → 파이썬의 경우에는 “”까지 변수에 등록 시 모두 출력되기 때문에 str형임!
016
017
018
019
020
movie_rank = ['닥터 스트레인지', '스플릿', '럭키', '배트맨']
movie_rank.insert(1, "슈퍼맨")
print(movie_rank)
interest = ['삼성전자', 'LG전자', 'Naver', 'SK하이닉스', '미래에셋대우']
print(" ".join(interest))
interest = ['삼성전자', 'LG전자', 'Naver', 'SK하이닉스', '미래에셋대우']
print("/".join(interest))
071
072
073 ❌
074
>> t = (1, 2, 3)
>> t[0] = 'a'
Traceback (most recent call last):
File "<pyshell#46>", line 1, in <module>
t[0] = 'a'
TypeError: 'tuple' object does not support item assignment
075
t = 1, 2, 3, 4
076
```python
t = ('A', 'b', 'c')
```
077
078
079
temp = ('apple', 'banana', 'cake')
a, b, c = temp
print(a, b, c)
# 실행 결과
apple banana cake
080
scores = [8.8, 8.9, 8.7, 9.2, 9.3, 9.7, 9.9, 9.5, 7.8, 9.4]
a, b, *valid_score = scores
print(valid_score)
scores = [8.8, 8.9, 8.7, 9.2, 9.3, 9.7, 9.9, 9.5, 7.8, 9.4]
a, *valid_score, b = scores
print(valid_score)
>> icecream = {'폴라포': 1200, '빵빠레': 1800, '월드콘': 1500, '메로나': 1000}
>> icecream['누가바']
Traceback (most recent call last):
File "<pyshell#69>", line 1, in <module>
icecream['누가바']
KeyError: '누가바'
딕셔너리에 ‘누가바’라는 키가 없기 때문.
091
092
093
094
095
096
097
098
099 ❌
dict를 사용해야 형태에 맞게 딕셔너리로 저장됨.
재풀이
100