1월달에는 자바에 대해서 집중적으로 배웠는데 2월부터는 크롤링을 위해 파이썬을 배우게됐습니다.
파이썬은 자바보다 훨씬 문법이 간단하고 이해하기 편합니다! 그래서 파이썬도 잊어버리지 않기위해
복습겸 정리해보려고합니다!
숫자형
자바에서는 변수를 선언할때마다 데이터 타입을 명시해줘야 했지만
파이썬에서는 a = 2 라고만 작성해도 변수가 선언됩니다
숫자형의 경우 변수 선언이 너무 간단합니다a = 3b = 4c = -10이렇게만 써도 변수가 생성됩니다! 자바랑 너무 달라서 놀랐습니다
실수형도 크게 다르지않습니다
a = 1.5
b = -3.45
사람들이 많이 배우는 이유를 알거같습니다
연산자는 자바랑 거의 비슷합니다
하지만 제곱도 가능하구요
나누기가 슬래시 1개가 있고 2개가 있습니다
슬래시가 1개 일때는 소수점까지 나눠버리지만
슬래시가 2개일때는 몫을 구합니다
예를 들어 num1 = 10을 넣고 num2 = 3을 넣고 실행하면
print(f"더하기 결과 : {num1+num2}")
print(f"빼기 결과 : {num1-num2}")
print(f"곱하기 결과 : {num1*num2}")
print(f"나누기 결과 : {num1/num2}")
print(f"몫 결과 : {num1//num2}")
print(f"나머지 결과 : {num1%num2}")
print(f"제곱 결과 : {num1**num2}")
더하기 결과 : 13
빼기 결과 : 7
곱하기 결과 : 30
나누기 결과 : 3.3333333333333335
몫 결과 : 3
나머지 결과 : 1
제곱 결과 : 1000
이렇게 나옵니다 (f는 포매팅에 쓰는건데 밑에서 설명하겠습니다)
차이가 명확하죠 자바랑은 조금 다르지만 더 확실해서 좋은거같습니다
아래는 연산자 기호들인데 참고하면 좋을거같습니다
복합연산자를 살펴보시면 += 가 있습니다
자바에서는 a++를 하면 1씩 증가됐지만
파이썬은 a += 1 이라고 해야합니다
자바에서 넘어오니깐 헷갈리더라구요 주의하기!
멤버 연산자는
값이 존재하는지 아닌지 boolean 타입으로 반환해줍니다
4 in [1,2,3,4]
True 를 반환합니다
삼항연산자
a if 조건식 else b
-조건식이 True인 경우 a, False인 경우 b
-이진분류 : 두개 중 하나로 분류!
"합격" if score >=60 else "불합격"
위 문장을 해석하면 score가 60이상일때 합격을 출력하고 아니라면 불합격 출력합니다!
생각보다 간단하죠? 자바랑 순서만 조금 다릅니다!
문자열
파이썬 문자열 같은 경우에는 만들수 있는 방법이 4가지 있습니다!
큰따옴표와 작은따옴표를 이용하는 방법입니다.
"Hello World"
'Hello World'
'''Hello World'''
"""Hello World"""
모두 같은 말입니다 하지만
문장 안에 작은따옴표를 넣고싶다면
큰 따옴표로 문장을 감싸줘야합니다
s = 'She's gone'
s = "She's gone"
s = 'she's gone'
^
SyntaxError: unterminated string literal (detected at line 1)
작은 따옴표로 실행하면 에러가 발생합니다!
자바에서는 println 을 하면 자동으로 개행이 됐지만 파이썬은 줄바꿈을 하고싶다면 직접 지정해줘야합니다!
s = "파이썬\n- 동적언어\n- 직관적, 명시적, 간결함"
s 에 이런 문장을 작성하면 다음과 같은 출력문이 나옵니다!
파이썬
- 동적언어
- 직관적, 명시적, 간결함
# 긴줄문자열기호 : """ """, ''' '''
s = '''파이썬
- 동적언어
- 직관적, 명시적, 간결함'''
이렇게도 작성할수 있습니다!
파이썬에서 중요한 개념중 하나는 인덱싱입니다
인덱스 라는 개념은 자바 배열에서 배웠는데 0부터 시작하는 방번호 라고 생각하면 될거같습니다
인덱싱
인덱싱은 무엇(요소하나)인가를 '가리킨다'는 의미인데 인덱스에서 말한 방번호를 가리킨다 라고 생각하면 쉽습니다!
그렇다면 인덱싱은 어떻게 쓸까요?
s= "My name is DH"
print(s[0])
print(s[1])
이렇게 실행을 해보면
s의 0번째와 1번째가 나올겁니다
M과 y가 출력됩니다!
그렇다면 처음부터 끝까지 할수는 없을까요?
슬라이싱 이라는 개념을 통해 할수있습니다
슬라이싱은 무엇(요소들)인가를 '잘라낸다'는 의미 입니다
주의 할점은 변수명[시작값:끝값(미포함)]
s 라는 슬라이싱을 통해 처음부터 끝까지 가져와보겠습니다
print(s[0:12])
My name is DH 을 0부터 인덱스를 지정해보면 마지막값은 12가됩니다
하지만 출력해보면
My name is D
이렇게 나옵니다!
끝값은 미포함이기 때문에
s[0:13] 으로 바꿔주면 처음부터 끝까지 잘 나오게됩니다.
또 다른 방법은
print(s[:])
이렇게 쓰는것인데 슬라이싱 값을 비워두면 처음부터 끝까지 모두 출력됩니다!
포매팅
다음은 문자열 포매팅(Formatting)을 알아보겠습니다 자바에서는 printf()라는 출력문에서 포매팅을 사용했습니다
파이썬에서는 포매팅을 사용하는 방법이 여러가지가 있습니다
첫번째로는 %기호 포매팅 입니다
day = 2
month = 4
s = "오늘은 %d월 %d일 입니다" %(month, day)
이렇게 작성하면 뒤에있는 %의 순서대로 값이 잘 담기게 됩니다.
%d는 정수를 받을때 쓰는 함수입니다
두번째 방법은 .format() 함수 포매팅 입니다
a=5
b=3
print("a:{0} b:{1}".format(a,b))
이렇게 작성하면 {0}에는 a값 {1}에는 b 값이 들어갑니다
마지막은 f 문자열 포매팅입니다
day = 15
month = 12
s = f"오늘은 {month}월 {day}일 입니다."
지금까지 수업들어봤을때
이 방법을 가장 많이 쓰는거 같습니다!
문자열 밖에 f를 먼저 쓰고 " " 안에 문자열을 넣으면됩니다.
파이썬에는 문자열 함수가 굉장히 많이 존재하는데 사실 다 외울수없기때문에
필요할때마다 찾아 쓰면서 익히는게 좋을거같습니다!
문자열함수
함수 | 사용법 | 설명 | 반환값 |
---|---|---|---|
replace | str.replace(old, new[, count]) |
문자열에서 old 를 new 로 대체 |
새 문자열 |
upper | str.upper() |
문자열의 모든 문자를 대문자로 변환 | 새 문자열 |
lower | str.lower() |
문자열의 모든 문자를 소문자로 변환 | 새 문자열 |
strip | str.strip([chars]) |
문자열 양쪽 끝의 공백이나 chars 에 지정된 문자 제거 |
새 문자열 |
lstrip | str.lstrip([chars]) |
문자열 왼쪽 끝의 공백이나 chars 에 지정된 문자 제거 |
새 문자열 |
rstrip | str.rstrip([chars]) |
문자열 오른쪽 끝의 공백이나 chars 에 지정된 문자 제거 |
새 문자열 |
find | str.find(sub[, start[, end]]) |
부분 문자열 sub 이 처음 나타나는 위치 탐색 |
위치 인덱스 또는 -1 |
rfind | str.rfind(sub[, start[, end]]) |
부분 문자열 sub 이 마지막으로 나타나는 위치 탐색 |
위치 인덱스 또는 -1 |
split | str.split([sep[, maxsplit]]) |
sep 을 기준으로 문자열을 나눔 |
문자열 리스트 |
rsplit | str.rsplit([sep[, maxsplit]]) |
sep 을 기준으로 문자열을 오른쪽에서부터 나눔 |
문자열 리스트 |
join | str.join(iterable) |
iterable 의 각 요소를 문자열로 연결 |
새 문자열 |
count | str.count(sub[, start[, end]]) |
문자열에서 부분 문자열 sub 의 출현 횟수 계산 |
정수 |
index | str.index(sub[, start[, end]]) |
부분 문자열 sub 이 처음 나타나는 위치 탐색(찾지 못하면 예외 발생) |
위치 인덱스 |
rindex | str.rindex(sub[, start[, end]]) |
부분 문자열 sub 이 마지막으로 나타나는 위치 탐색(찾지 못하면 예외 발생) |
위치 인덱스 |
startswith | str.startswith(prefix[, start[, end]]) |
문자열이 지정된 접두어로 시작하는지 여부 | 불리언 |
endswith | str.endswith(suffix[, start[, end]]) |
문자열이 지정된 접미어로 끝나는지 여부 | 불리언 |
isdigit | str.isdigit() |
문자열이 숫자로만 구성되어 있는지 여부 | 불리언 |
isalpha | str.isalpha() |
문자열이 알파벳 문자로만 구성되어 있는지 여부 | 불리언 |
isalnum | str.isalnum() |
문자열이 알파벳 문자와 숫자로만 구성되어 있는지 여부 | 불리언 |
isspace | str.isspace() |
문자열이 공백 문자로만 구성되어 있는지 여부 | 불리언 |
istitle | str.istitle() |
문자열이 타이틀 케이스(각 단어의 첫 글자가 대문자)인지 여부 | 불리언 |
capitalize | str.capitalize() |
문자열의 첫 글자를 대문자로, 나머지는 소문자로 변환 | 새 문자열 |
title | str.title() |
각 단어의 첫 글자를 대문자로, 나머지는 소문자로 변환 | 새 문자열 |
zfill | str.zfill(width) |
문자열의 왼쪽을 '0'으로 채워 지정된 너비에 맞춤 | 새 문자열 |
ljust | str.ljust(width[, fillchar]) |
문자열을 지정된 너비로 왼쪽 정렬 | 새 문자열 |
rjust | str.rjust(width[, fillchar]) |
문자열을 지정된 너비로 오른쪽 정렬 | 새 문자열 |
center | str.center(width[, fillchar]) |
문자열을 지정된 너비로 중앙 정렬 | 새 문자열 |
encode | str.encode(encoding='utf-8', errors='strict') |
문자열을 지정된 인코딩으로 인코딩 | 바이트 객체 |
format | str.format(*args, **kwargs) |
문자열의 형식을 지정된 값으로 채움 | 새 문자열 |
'Python' 카테고리의 다른 글
파이썬 반복문, 딕셔너리 (1) | 2024.02.12 |
---|---|
파이썬 조건문, 리스트, 튜플 (1) | 2024.02.07 |