Python (ongoing)

써니·2020년 12월 8일
0

Python

목록 보기
1/9
0. PYTHON : https://newsight.tistory.com/76

1. arg parse - Parser for command-line options, arguments and sub-commands

  • argparse 모듈 : 프로그램이 필요한 인자 정의 -> argparse가 sys.argv 파싱할 방법 파악
  • 인자 설정
import argparse
parser=argparse.ArgumentParser() //parser 자체가 객체가 됨
parser.add_argument('example', '-e') //처리할 인자 추가 

@cmd --> python example.py example AAA //AAA를 받아와 처리

-설정처리 결과를 저장할 변수 선언: (기본적인 Positional 인자)

args = parser.parser_args()
print(args.ex)

@cmd -> python example.py -e 10 --> 10 출력!

-Optional 인자

  • 지정:
    parser.add_argument('--example', '-e') //처리할 인자 추가
    @cmd --> python example.py example AAA //AAA를 받아와 처리

  • help
    parser.add_argument('--ex', help = "argument explanation) //help: 인자 사용 도움말 지정
    args 변수 선언 후 @cmd-> python example.py --help // 설정한 인자에 대한 설명 출력 (위 예제의 경우 "argument explanation"이 나오겠쥬?)

    parser.add_argument(~어쩌고~, help="~어쩌고~", required=True) //그냥 python example.py 처럼 인자 없이 실행파일만 입력할 경우 도움말이 자동으로 출력

  • type
    : 타입 지정을 안할 경우 오류가 발생할 수 있기 때문에!

	parser.add_argument("square", help="display a square of a given number",
	                    type=int)
	arg	s = parser.parse_args()
	print(args.square**2)
	
	@cmd 인자를 4로 입력 -> 16 출력, four 입력 -> "example.py: error: argument square: invalid int value: 'four'"
  • 플래그? (action="store_true")
    if)
	parser.add_argumnet("--verbosity", help="increase output verbosity")
	args=parser.parse_args()
	if args.verbosity: //verbosity 지정시 문자열 표시, 미지정시 do nothing
    	print("verbosity turned on") //여기에서는 임의의 정숫값을 허용
*값을 요구하지 않고, 플래그로 만들기*
`parser.add_argument("--verbose", help="increase output verbosity",
                action="store_true")`
 : 새로운 키워드 `action`을 지정, `"store_true"`값을 지정 
  -> 옵션이 지정되면, args.verbose에 값 true를 대입하라는 뜻, 미지정=`False`
  • action의 종류 지정
    : 인자 정의할 때 action 지정
    - store: 디폴트로 지정하는 값
      +store_true, store_false,
      +store_const (EX: parser.add_argument('-a', action='store_const', const=10) // 이 때 const는 반드시 지정을 해줘야 함)
    - append : 값을 여러 개 저장할 때 (인자 여

(파서_doc - https://docs.python.org/ko/3/library/argparse.html
or 자습서 - https://docs.python.org/ko/3/howto/argparse.html#id1
or 윹튜바 - https://www.youtube.com/watch?v=fvtk1CwMLh4)

2. Comprehension - iterable한 오브젝트를 생성하기 위한 방법 중 하나

(https://mingrammer.com/introduce-comprehension-of-python/)

3. lambda, map, filter, reduce, dic

  • lambda
    :익명함수 - 메모리 save, 가독성 up!!
    (non익명함수 - 객체 생성 후 재사용 위하 함수 이름(메모리) 할당
    - 한 번 사용 후 힙(heap) 메모리 영역에서 증발
sum = lambda a, b: a+b 
>>>sum(3,4)
>>>
  • map
    :입력받은 자료형의 각 요소가 함수에 의해 수행된 결과를 묶어 map iterator 객체로 반환(내장 함수)
    map(f,interable 자료형)//f는 함수
>>> l=[1,2,3]
result = list(map(lambda i : i**2, l) //func(i) : i=i**2 -> list(map(func(),l)
>>> result=[1,4,9]
  • c.f : iterable vs. iterator? (https://wikidocs.net/16068)
    -iterable 객체: 반복 가능한 객체 (list, dict, set, str, bytes, tuple, range)
    -iterator 객체: 값을 차례대로 꺼낼 수 있는 객체 (iter()함수로 객체 생성)
       a=[1,2,3]
       a_iter=iter(a)
       
       ```
    

(https://wayhome25.github.io/cs/2017/04/03/cs-03/)

4. 네임스페이스

(https://hcnoh.github.io/2019-01-30-python-namespace)

  c.f : 리눅스 namespace? (https://lascrea.tistory.com/163)
-> 프로세스 관리

0개의 댓글