String
문자열은 + 연산자로 이어붙이고, * 연산자로 반복시킬 수 있습니다.
'hi' * 10
# 'hihihihihihihihihihi'
'hi' + 'hong'
# 'hihong'
당연히 변수화해서도 사용가능합니다.
a = 'hi'
b = ', hong'
a + b
# 'hihong'
end
print의 기본은 ,end='\n'이지만 아래와 같이 사용할 수도 있다.
print('내용을 띄워서 출력하고 싶으면?', end=' ')
print('옆으로 띄워짐')
# 내용을 띄워서 출력하고 싶으면? 옆으로 띄워짐
print('개행 문자 말고도 가능합니다', end='!')
print('진짜로', end='!')
print('알고보면 print는 기본이 \\n', end='!')
# 개행 문자 말고도 가능합니다!진짜로!알고보면 print는 기본이 \n!
sep
거의 모든 상황에 적용이 되나, list에 들어있는 1개의 문자에 대해선 작동 X
print의 기본은 ,sep=' '이지만 아래와 같이 사용할 수도 있다.
## 일반 문자열
print('S','E','P')
# S E P
print('S','E','P', sep=' ')
# S E P
print('S','E','P', sep='')
# SEP
# 특정문자로 구분하여 붙여주기
print('S','E','P', sep='@')
# S@E@P
print('S','E','P', sep=' @')
# S @E @P
# 붙어있는 문자열을 sep해주고 싶다면 * 필수!!
print(*'SEP', sep='@')
# # S@E@P
## 리스트 안에 들어있는 문자열
## *를 반드시 붙여주자!!
a = ['S', 'E', 'P']
print(*a, sep='@')
# S@E@P
a = ['S', 'E', 'P']
print(*a, sep='')
# SEP
join
모든 상황에 대해 적용이 가능! 이걸 외우자.
반복가능한(iterable) 컨테이너의 요소의 separator를 구분자로 합쳐(
join()
) 문자열로 반환
sep 과 join
## 여러개의 문자열
a = '배', '고', '파'
print(*a, sep='!')
print('!'.join(a))
# 배!고!파
# 배!고!파
## 한 개의 문자
a = '배고파'
print(*a, sep='!')
print('!'.join(a))
# 배!고!파
# 배!고!파
## 리스트 안에 들어있는 여러개의 문자열
a = ['배', '고', '파']
print(*a, sep='!')
print('!'.join(a))
# 배!고!파
# 배!고!파
## 리스트 안에 들어있는 한 개의 문자 (sep사용 주의!)
a = ['배고파']
print(*a, sep='!')
print('!'.join(*a))
#배고파 #####주의!!######
#배!고!파
##결론##
머리아프게 이러지 말고 join만 씁시다!
`*` 빼먹지 말고 :-)
String Interpolation
%-formatting
str.format()
f-string
%d
: 정수%f
: 실수- %s : 문자열
# %-formatting
name = 'Kim'
score = 4.5
print('Hello, %s' % name)
print('내 성적은 %d' % score)
print('내 성적은 %f' % score)
# Hello, Kim
# 내 성적은 4
# 내 성적은 4.500000
# str.format()
name = 'Kim'
score = 4.5
print('Hello, {}. 내 성적은 {}'.format(name, score))
# Hello, Kim. 내 성적은 4.5
# f-string
name = 'Kim'
score = 4.5
print(f'Hello, {name}. 내 성적은 {score}. {score}지롱!')
# Hello, Kim. 내 성적은 4.5. 4.5지롱!
산술연산자
- 사칙연산
- / : 나눗셈
- // : 몫
- % : 나머지
- ** : 거듭제곱
/
나눗셈
항상 float를 반환!
정수 나눗셈으로 정수 결과값을 얻으려면
- int로 형변환을 해주거나
//
연산자를 사용하기
print(5 / 2)
print(4/2)
print(5 // 2)
print(int(5 / 2))
print(5 % 2)
# 2.5
# 2.0
# 2
# 2
# 1
논리연산자
in
연산자를 통해 str요소가 속해있는지 확인 가능
vowels = 'aeiou'
print('a' in vowels)
print(('a' and 'b') in voels)
print(('a' and 'e') in vowels)
print(('a' or 'b') in vowels)
# True
# False
# True
# True
print('a' in 'apple')
# True
이는 list에서도 적용 가능
print(1 in [1, 2, 3])
# True
hi=[9, 8, 7]
print(9 in hi)
# True
Slicing
[:]
를 통해 str과 list를 슬라이싱 가능
a = 'samsung'
print(a[0:3])
# sam
b = [1, 2, 3]
print(b[0:1])
# 1
기타
Concatenation
숫자가 아닌 자료형은
+
연산자를 통해 합칠 수 있습니다.숫자는 값이 그대로 합쳐지는 것이 아니라 서로 더해져버린다.
- 문자열을
+
연산자로 더할 수 있다.- 리스트를
+
연산자로 더할 수 있다.
# 문자열 +
print('abc' + 'efg')
# 'abcefg'
# list +
print([1, 2, 3] + [4, 5, 6])
# [1, 2, 3, 4, 5, 6]
조건 표현식 (삼항 연산자)
[expression for 변수 in iterable if 조건식]
[expression if 조건식 else 식 for 변수 in iterable]
[주의]
[expression for 변수 in iterable if 조건식 else 식 ] 와 같이 else가 제일 뒤로 올 수 없다!
# print문 활용
num = int(input('숫자를 입력하세요 : '))
print('0 보다 큼') if num > 0 else print('0 보다 크지않음')
## 변수 활용
num = int(input('숫자를 입력하세요 : ')) # -5
value = num if num >= 0 else -num
print(value) # 5
# 만약 리스트 안에 넣어 출력하고 싶다면
num = int(input('숫자를 입력하세요 : ')) # -5
value = [num if num >= 0 else -num]
print(value) # [5]
## list 삼항연산자
[i for i in range(1, 11) if i % 2 == 0]
# [2, 4, 6, 8, 10]
['홀수' if i % 2 == 1 else '짝수' for i in range(1, 11)]
# ['홀수', '짝수', '홀수', '짝수', '홀수', '짝수', '홀수', '짝수', '홀수', '짝수']
While 문
조건식이 참(
True
)인 경우 반복적으로 코드를 실행
while <조건식>:
<코드 블럭>
# True를 활용한 while문
while True:
print('조건식이 참일 때까지')
print('계속 반복')
# 조건을 활용한 while문
x=0
cnt=0
while x<3:
x+=1
cnt+=1
print(cnt) # 3
range
숫자의 시퀀스를 나타내기 위해 사용
기본형 : range(n)
0부터 n-1까지 값을 가짐
범위 지정 : range(n, m)
n부터 m-1까지 값을 가짐
범위 및 스텝 지정 : range(n, m, s)
n부터 m-1까지 +s만큼 증가한다
# 1 ~ 10까지의 숫자를 담은 range를 만들어봅시다.
print(list(range(1, 11)))
# [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
# 0부터 -10까지의 숫자를 담은 range를 만들어봅시다.
print(list(range(0, -11, -1)))
# [0, -1, -2, -3, -4, -5, -6, -7, -8, -9, -10]
# 0부터 10까지의 숫자를 2씩 증가시킨 리스트로 만들어봅시다.
print(list(range(0, 11, 2)))
# [0, 2, 4, 6, 8, 10]
round
round() 는 0~4는 내림, 5는 반올림
round(x,y) : y를 사용하여 몇 번째 자리까지 표현할지 정할 수 있음
round(3.5-3.12)
# 0
round(3.5-3.12, 1)
# 0.4
round(3.5-3.12, 2)
# 0.38
[참고]
3.5-3.12 == 0.38 은 False다.
'# 1. Language > 🌊 Python' 카테고리의 다른 글
셀레니움(Selenium) # 크롤링/스크래핑한 데이터 DB에 넣기 (0) | 2021.08.15 |
---|---|
TIL # Python 예제 (0) | 2021.02.16 |
텔레그램 챗봇 & 공공데이터 API (0) | 2021.02.11 |
Markdown 사용법 (0) | 2021.02.11 |
[2021.01.13] VS code 사용법 (0) | 2021.02.11 |