기본 문법
: 세미콜론(;) 가능
: 주석(#)
: 코드 블록
- 스페이스바 4번 or TAB (서로 다른 걸로 인식함)
숫자 계산하기
: 복소수도 사용 가능(통계)
: 타입이 고정이 아닌 데이터를 넣을 때 타입 변환이 생김
: 캐스팅 함수로 출력 형을 바꿀 수 있음
- 캐스팅한 상태를 다른 변수에 주입 가능
: 괄호 사용 가능
변수와 입력 사용
변수이름 = 값
: 선언과 동시에 초기화됨
: 규칙
- 영문 문자와 숫자를 사용할 수 있음
- 대소문자를 구분
- 문자부터 시작해야 하며 숫자부터 시작하면 안 됨
- _(밑줄 문자)로 시작할 수 있음
- 특수문자(+,-,*,/,$,% 등)는 사용할 수 없음
- 파이썬 키워드(if, for, while, and, or 등)는 사용할 수 없음
: del을 사용하면 해당 변수를 메모리에서 삭제함
del 변수이름
: Null은 None으로 입력
변수 = None
: 증감 연산이 가능하지만 ++이나 --는 불가능함
변수 += 1 # 변수++ 는 불가능
변수 -= 1 # 변수-- 는 불가능
: 입력받기
input( )
- Java에서 Scanner 기능 (str타입으로 들어감)
input('안내 문자열')
input('안내 문자열').split('기준 문자열')
- split()에 아무것도 입력하지 않으면 공백 기준으로 분리
: 입력 값을 정수로 변환
: map을 사용하여 정수로 변환
변수 1, 변수 2 = map(데이터 타입, input('안내 문자열'). split('기준 문자열'))
출력 방법
print('출력 값')
: sep로 값 사이에 문자 넣기
print(값1, 값2, sep='문자 또는 문자열') # 값1 sep 값2
: end
print(값1, 값2, end='문자 또는 문자열') # 값1 값2 end
예제 1)
예제 2)
불과 비교, 논리 연산자
: 불(boolean)은 true, false로 표현함
: 객체가 같은지 다른지 비교
값1 == 값2 # 데이터가 같은지 비교
값1 != 값2 # 데이터가 다른지 비교
값1 is 값2 # 객체가 같은지 비교
값1 is not 값2 # 객체가 같은지 비교
: id함수로 위치 주솟값 확인
id(변수)
: 논리 연산자 사용
a and b # 두 조건이 모두 참이면 True
a or b # 둘 중 한 조건이라도 참이면 True
not a # 논리값을 뒤집음(a가 True이면 False를 출력)
문자열 사용하기
: 큰따옴표와 홑 따옴표 둘다 가능
: 여러 줄에 작성할 때에는 따옴표 3개를 사용
: 따옴표안에 다른 종류의 따옴표 입력 가능
: 여러 줄로 작성할 경우 따옴표 사용 가능
리스트
: 타입 제한이 없음
: ArrayList처럼 사용할 수 있음
: 비어있는 리스트로 선언 가능
: range를 사용하여 리스트 만들기
range(끝(전까지))
range(시작, 끝(전까지))
range(시작, 끝(전까지), 증감폭)
- 음수로 증감폭을 지정시 해당 값만큼 감소함
튜플
: 읽기만 가능 (final)
튜플 = (값, 값, 값)
튜플 = 값, 값, 값 # 이러한 형태도 가능
: 한 개 짜리 튜플은 ,를 넣어줘야 튜플로 인식함
(값,)
: range로 생성 가능
tuple(range(범위))
: 리스트를 튜플로 변환
tuple(list) # 출력은 tuple이지만, list 자체가 tuple이 되는 것이 아닌 출력만 tuple형태
: 튜플을 리스트로 변환
list(tuple) # 출력은 list이지만, tuple 자체가 list가 되는 것이 아닌 출력만 list형태
- 다른 변수에 담아준다면 리스트(혹은 튜플)인 상태로 저장 가능
시퀀스 자료형
: 리스트, 튜플, range, 문자열처럼 값이 연속적으로 이어진 자료형
: 특정 값이 있는지 확인하기
원하는 값 in 시퀀스객체 # 있으면 True 없으면 False
원하는 값 not in 시퀀스객체 # 없으면 True 있으면 False
: 시퀀스 객체 연결하기
시퀀스객체1 + 시퀀스객체2
- 시퀀스 자료형 중에서 range는 + 연산자로 객체를 연결 할 수 없음
- 리스트 또는 튜플로 만들어서 연결 가능
: 시퀀스 객체 반복하기
시퀀스객체 * 반복수
- range 불가
: 시퀀스 객체의 요소 개수 구하기
len(시퀀스객체)
- list, tuple = 요소 개수
- range = 생성 개수
- 문자열 = 문자의 개수(문자열의 길이)
인덱스 사용
시퀀스객체[인덱스]
시퀀스객체.__getitem__(인덱스)
: 음수 인덱스 지정
- 뒤에서 몇 번째를 찾음 (-1은 뒤에서 첫 번째)
: 인덱스의 범위를 벗어나면 오류 발생
- overflow 발생
- underflow
: 마지막 요소 접근
- len()함수로 길이를 구해 -1을 하면 마지막 요소에 접근 가능
: 요소에 값 할당하기
시퀀스객체[인덱스] = 값
- 튜플, range, 문자열은 저장된 요소를 변경할 수 없음 (읽기 전용)
: del로 삭제하기
del 시퀀스객체[인덱스]
- 튜플, range, 문자열은 저장된 요소를 삭제할 수 없음
슬라이스 사용
: 슬라이스는 무엇인가의 일부를 잘라낸다는 뜻
: 슬라이스 시퀀스도 말 그대로 시퀀스 객체의 일부를 잘라냄
시퀀스객체[시작 인덱스:끝 인덱스]
>>> a = [0, 10, 20, 30, 40, 50, 60, 70, 80, 90]
>>> a[0:10] # 인덱스 0부터 9까지 잘라서 새 리스트를 만듬
[0, 10, 20, 30, 40, 50, 60, 70, 80, 90]
>>> a[1:1] # 인덱수 1부터 0까지 잘라서 새 리스트를 만듬
[]
: 리스트 중간 부분 가져오기
>>> a[4:7] # 인덱스 4부터 6까지 요소 3개를 가져옴
[40, 50, 60]
>>> a[4:-1] # 인덱스 4부터 -2까지 요소 5개를 가져옴
[40, 50, 60, 70, 80]
: 인덱스 증가폭 사용하기
시퀀스객체[시작 인덱스:끝 인덱스:증감폭]
: 인덱스 생략하기
시퀀스객체[:끝 인덱스]
시퀀스객체[시작 인덱스:]
시퀀스객체[:] # 리스트 전체를 가져옴
시퀀스객체[:끝 인덱스:증감폭]
시퀀스객체[시작 인덱스::증감폭]
시퀀스객체[::증감폭]
시퀀스객체[::] # 리스트 전체를 가져옴 (시퀀스객체[:]와 같음)
: slice 객체
슬라이스객체 = slice(끝 인덱스)
슬라이스객체 = slice(시작 인덱스, 끝 인덱스)
슬라이스객체 = slice(시작 인덱스, 끝 인덱스, 증감폭)
시퀀스객체[슬라이스객체]
시퀀스객체.__getitem__(슬라이스객체)
슬라이스에 요소 할당
시퀀스객체[시작 인덱스:끝 인덱스] = 시퀀스객체
시퀀스객체[시작 인덱스:끝 인덱스:증감폭] = 시퀀스객체
- 증감폭을 설정했을 때는 슬라이스 범위의 요소 개수와 할당할 요소 개수가 정확히 일치해야함
- 튜플, range, 문자열은 슬라이스 범위를 지정하더라도 요소를 할당할 수 없음
: del로 슬라이스 삭제
del 시퀀스객체[시작 인덱스:끝 인덱스]
- 튜플, range, 문자열은 del로 슬라이스를 삭제할 수 없음
'Python > python' 카테고리의 다른 글
for 반복문, while 반복문, break, continue (0) | 2020.10.13 |
---|---|
if 조건문, else, elif (0) | 2020.10.13 |
세트(set) 기초 (0) | 2020.10.13 |
딕셔너리 사용 (0) | 2020.10.13 |
파이썬 (Python) 설치 (0) | 2020.10.12 |