일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 | 31 |
- NODDOS
- ANTIDDOS
- 네트워크 기반 침입 방지 시스템
- 보안장비
- 방화벽솔루션
- 한입거리 수준의 설명
- python
- NameError
- TypeError
- DDOS방어
- 바이러스월
- IPS장비
- ORANGE
- select
- map object at 0x0000000002F83DA0
- 보안 솔루션
- IPS기능
- DDOS차단
- 정보보안
- 차세대 방화벽(NGFW)
- DDOS솔루션
- 데이터의 조회
- 게이트웨이
- SQL
- lambda
- DESC
- 시스템네트워크보안
- 통합보안시스템
- Setup
- IPS솔루션
- Today
- Total
브런치 한입
Python 간단한 찾아보기 본문
Ctrl + F 해서 필요한거 찾아서 보세요.
관련 내용은 이 내용이 전부임
★★, ★★★, ★★★★★, format, 벡터별 연산, type, 차이점, alias, import, ''' , math , trunc, dir, lambda, can only concatenate list (not "int") to list, <map object at 0x0000000002F83DA0>, %d format: a number is required, not list, |
# ★★ 기억해둘 것
v1=[1,2,3]
v1[0:2] # 하면 마지막 자리는 출력이 안되고 0과 1까지만 출력된다.
# 파이썬은 0이 첫번째를 의미한다.
v1[1]
v1[0]
v1[0:1] # 슬라이스 형태
v1=[1,2,[3,4]]
>>> v1
[1, 2, [3, 4]]
# ★★★ 벡터별 연산 안됨.
>>> v1=[1,2,3]
>>> v1+4
Traceback (most recent call last):
File "<pyshell#10>", line 1, in <module>
v1+4
TypeError: can only concatenate list (not "int") to list # 벡터별 연산 안됨.
# 리스트 출력
l1=[1,2,3]
print(l1)
[1, 2, 3]
# 벡터 -> 리스트
# 차이점
# 1. ★★★ 원소별 연산 불가(산술연산 포함 => 적용함수사용)
# 2. 리스트 내 리스트 중첩 사용가능
# 3. 색인 비슷 list[n:m] : n ~ m-1 까지 추출
# 포맷 변경 구문
# "리턴 포맷" % (원본대상)
# 포맷의 종류 : %d(정수), %s(문자열), %f(실수) ...등등
# ★★★
>>> type(v1) # class확인
<class 'list'>
>>> print("%d / %d = %d, %f" % (100, 200, 0.5, 0.5) )
100 / 200 = 0, 0.500000
# 0.5가 0 만 출력된 것은 %d 가 정수 출력이라서 소수점 앞에만 출력된 것임..
# 0.500000 출력된 것도, %f 이기 때문에 본연의 값 그대로 출력된 것임..
>>> a1 = 100
>>> print(a1)
100
a1=100
print("%.2f" % a1) # .2f 소수 둘째 자리 까지 출력
100.00
>>> print("%.5d" % a1) # 앞에 '.' 이 있어서 0 으로 채워진듯, 거의 안쓰는 형태
00100
>>> print("%5d" % a1) # 100포함 5자리
100
>>> print("%05d" % a1) # 100포함 5자리인데 공백은 0으로 채움
00100
>>> print('%d %d' % (2 ,3))
2 3
>>> print('%d + %d' % (2 ,3)) # print로 출력만 될뿐이며, 실제로 연산되지는 않음
2 + 3
>>> print('%d %02d' % (2,3)) # %02d 는 출력상 0을 붙인 것이므로 출력상으로 0이 결합
2 03
# format 사용하는 법 ★★★
>>> print('{1:d} {0:02d}' .format(2,3))
3 02
>>> print('{0:d} {1:5d} {2:05d}' .format(123,123,123))
123 123 00123
>>> print('{2:d} {1:5d} {0:05d}' .format(333,222,111)) # {2:d}의 2는 순서(111에 해당)
111 222 00333
>>> print('{0:d} {1:5d} {2:05d}' .format(333,222,111))
333 222 00111
>>> print('{1:d} {0:5d} {2:05d}' .format(333,222,111)) # format자리 이해하면 쉬움.
222 333 00111
# ★ R과 비교해서 용어 기억하기.
# R의 ‘패키지’ == Python의 ‘모듈’
# R의 ‘library’ == Python의 ‘import’
# '.'은 하위 모듈을 불러올때 쓴다. '~의' 느낌
>>> import math # 모듈을 불러오는 방법(기존에 이미 설치되었을 경우)
>>> math.trunc(1.789465) # trunc 는 math 의 하위 함수이다.
1
>>> import math as ma # 모듈을 호출할 때, alias 사용 가능하다.
>>> ma.trunc(1.49849) # as 예시
1
>>> dir(ma) # 특정 함수에 속해 있는 하위 함수 확인 가능
['__doc__', '__loader__', '__name__', '__package__', '__spec__', 'acos',
'acosh', 'asin', 'asinh', 'atan', 'atan2', 'atanh', 'ceil', 'copysign',
'cos', 'cosh', 'degrees', 'e', 'erf', 'erfc', 'exp', 'expm1', 'fabs',
'factorial', 'floor', 'fmod', 'frexp', 'fsum', 'gamma', 'gcd', 'hypot',
'inf', 'isclose', 'isfinite', 'isinf', 'isnan', 'ldexp', 'lgamma', 'log',
'log10', 'log1p', 'log2', 'modf', 'nan', 'pi', 'pow', 'radians', 'remainder',
'sin', 'sinh', 'sqrt', 'tan', 'tanh', 'tau', 'trunc']
# ''' ''' 사용 방법(엔터를 포함하는 문자열 생성)
>>> aaa='''dhwbdhwbw
dwdw
dwd
w
dwdwdwdw''' # ' 3개를 사용하면 엔터를 갖는 문자열 생성할 수 있음
>>> aaa
'dhwbdhwbw\ndwdw\ndwd\nw\ndwdwdwdw' # 엔터 위치에 \n 포함되서 출력
>>> a1 = 'a'
>>> a2 = 'b'
>>> a3 = 'c'
>>> a1 + a2 + a3
'abc' # '+'는 문자열의 결합이다.
>>> emp$year + emp$mon + emp$day # 이 경우 emp$year처럼 각 컬럼 안에 1개씩 있으면
# '+'로 결합이 가능하다고 함.
>>> l1 = [1,2,3]
>>> l1 + 10
Traceback (most recent call last):
File "<pyshell#60>", line 1, in <module>
l1 + 10
TypeError: can only concatenate list (not "int") to list # 벡터별 원소 연산은 안됨.
# ★★★ 중요함.
>>> l1 + [10,10,10]
[1, 2, 3, 10, 10, 10] # 리스트와 리스트의 합은 '리스트의 확장'이다.
# ★★★ lambda를 사용한 사용자 정의 함수 생성
# 간단한 input과 output 처리
lambda input : output
f1 = lambda x(input) : x + 10(output) # 심플한 사용자 정의함수 만드는 법.
f1 = lambda x : x+10
f1(12)
22
f1 <- function(x) {
return(x + 10)
}
# R의 사용자함수와 Python의 사용자 함수 비교해본다.
# ★★★★★ 적용함수
# - apply : 행별, 컬럼별 연산(그룹연산)
# - map : 원소별 연산( R 의 sapply와 동일한 기능 )
>>> f1 = lambda x : x+10
>>> map(f1,l1)
<map object at 0x0000000002F83DA0> # 에러는 아니지만,
# map은 출력 기능이 없고 메모리상에서만 연산
>>> list(map(f1,l1)) # list 라는 형식을 이용하여 출력해준다.
[11, 12, 13]
>>> print('%02d' % l1)
Traceback (most recent call last):
File "<pyshell#82>", line 1, in <module>
print('%02d' % l1)
TypeError: %d format: a number is required, not list
# print는 list 가 아니라서 list 로 바로 출력 안됨
# 0을 붙인채로 숫자를 출력해본다면…---------------------------------------------------------
>>> f2 = lambda x : print('%02d' % x)
>>> list(map(f2,l1))
01
02
03
[None, None, None] # 사용자 정의함수에서 print 를 제외하고 다시 출력하면,(아래)
>>> f2 = lambda x : '%02d' % x
>>> list(map(f2,l1))
['01', '02', '03'] # 앞에 0을 붙이고 출력
---------------------------------------------------------------------------------------------------------------
>>> f3 = lambda x : 0 + x # 여기서 '+'는 연산 기능을 한다.
>>> list(map(f3,l1)) # 왜냐하면 0은 숫자이며, 결합으로 사용하는 것이 아님
[1, 2, 3] # 그래서 결과값이 0을 연산해서 그대로 출력된 것
##
## ★★★★★ 원소별 연산이나 적용이 직접 안되므로, lambda와 적용함수를 활용 해야함
##
'코딩 > Python' 카테고리의 다른 글
Python 에서 자주 발생하는 Error (0) | 2021.12.19 |
---|