o 기본 입출력
input()
map(int, input().split()) or list(map(int, input().split()))
o if
- res = 'success' if score >=90 else 'fail'
- if 0<x<20 ==> 가능함
o continue, break, pass
continue : 해당 loop 처음 부터 or 나머지 loop skip
break : 해당 loop out!
pass : just pass ==> else: 이후 사용 많이 함 (문법상으로)
o local, global 변수
def 함수안에서는 local이지만, 굳이 사용하고 싶으면
global count
--> 이런 식으로 사용함
o 함수 만들기
def func():
return a+b
==> 여러개 리턴값도 가능함.
==> 전역변수는 global cnt 이렇게 global로 붙여 사용함. 그냥 넣으면 지역변수 됨
o lambda
lambda x : x+1
lambda a,b : a+b
o arr[시작, 끝, 증/감]
arr=[1,2,3,4,5]
print(arr[-1])=5
print(arr[:-1])=1,2,3,4
print(arr[::-1])=5,4,3,2,1
o recursive
def recursive_func(a,b):
if a < b
return recursive_func(a+1,b)
else
return
==> Recursive의 크기 증량
import sys
sys.setrecursionlimit(10**7)
o Ascii -> Integer (아스키 코드 -> 정수)
print( ord('a') ) = 97
print( chr(97) ) = 'a'
a~z => 97~123
o 알파벳, 숫자 확인
: return 값은 True/False
a.isalpha()
a.isdigit()
==> only alphabet or digit 이어야만 함 (띄어쓰기, 특수문자도 안됨)
a.isalnum() --> alphabet and digit 이어야만 함 (띄어쓰기, 특수문자도 안됨)
a.isdecimal() --> 양수만 가능, 나누기, 1,2, 이런거 안됨. 0, 제곱승은 가능
o abs
: 절대값
o 대소 변환/확인
- 변환
str.upper()
str.lower()
- 확인
str.isupper()
str.islower()
==> 모든 문자가 대/소이어야만 함. 특수문자 사이띄기 안됨
o 문자열 뒤집기
1) for
2) reverse
3) [ : : -1]
name='12345abc'
1) for -> skip
2) reverse
name_list=list(name)
name_list.reverse()
or
name_list=' '.join(name_list)
3) 배열로
name[시작 : 끝 : 규칙]
name=str(12345)
name1=name[ : : -1] --> 54321
name2=name[ : : 2] --> 135
name3=name[ : : -3] --> 52
o list 값 추가
a=([1,2,3,[4,5]])
a[3]=append(98,99)
--> [1,2,3,[4,5,98,99]]
o find(char, start, end) ==> return값은 왼쪽부터 몇번째 index를 반환, 없으면 -1, str만 해당 (int, float 등은 안됨)
str = 'abcd blog'
res1=str.find('a')
res2=str.find('1',5,11)
res3=str.strip() --> 공백 지우기
res4=str.lstrip() --> 왼쪽 공백 지우기
res5=str.rstrip() --> 오른쪽 공백 지우기
res0=str.replace(" ",'') 공백 지우기
str.replace(old, new)
o sort, sorted
a.sort(reverse=True)
a1=sorted(a, keys, reverse=True)
ofilter(func, iterator)
->return은 T/F
-> filter는 fuction조건으로 filtering하고 list로 저장
ex)
res = list(filter(lambda n:n>0, arr)
res2 = list(filter(is_even, range(1,11))
==> lambda를 쓰는 경우 더 효율적임
o print관련
"Hello 'world'"
==> print(" \"Hello \'world\'\"")
'와 "를 print할때는 \를 꼭 앞에 넣는다.
end=" ", end="", end=','
print("abc", sep='*)
--> a*b*c
o range(최소, 최대, 규칙)
range(5) -> 0,1,2,3,4,5
range(3,7) -> 3,4,5,6
range(2,12,3) -> 2,5,8,11
o split 문자열 나누기
str.split(구분자, maxsplite=반복횟수)
o bool
return 1 -> True
return 0 -> False
return -1 -> True
o string Method
1) count
2) find, rfind
3) upper, lower, swapcase
4) capitalize, title
5) lstrip, rstrip, strip
6) replace
7) 문자열 자르기
1) str.count(str, start, end)
str.count('a',1,11)
1~11까지 'a'의 개수
2) str.find(str,start, end)
str.find('a',2,12)
==> 문자가 없으면 -1, 처음 찾은 'a'의 index값
str.rfind(str, start, end)
맨오른쪽(마지막)에 찾은 문자열의 index값
3) str.upper()
str.lower()
str.swapcase()
모든 문자를 대문자, 소문자, 대소바꾸기로 변경
4) str.capitalize() : 문장이 첫 문자만 대문자
str.title() : 띄어쓰기 구간의 첫문자가 대문자
5) rstrip, lstrip, strip
str.strip() -> 띄어쓰기 제거
str.rstrip() -> 왼쪽 띄어쓰기 제거
str.lstrip() -> 오른쪽 띄어쓰기 제거
6) replace
str.replace(old, new, count)
old 문자를 new 문자로 count만큼 변경
7) 문자열 자르기
str[start:end:rule]
o 값 변환
a=hex(int)
print(hex(10)) => 0xA
print(oct(10)) => 0o12
print(bin(10)) => 0b1010
c=int(a,b) --> b진수 형태의 a 값은?
ex) print(int(A,16)) = 10