본문으로 바로가기

파이썬(Python) 기초

category Python/python 2020. 10. 12. 23:40

기본 문법

 : 세미콜론(;) 가능

 

 : 주석(#)

 

 : 코드 블록

   - 스페이스바 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