추가 공부 7.31

남생이·2024년 8월 6일

Robotics

목록 보기
3/8
  • ''.join()
    파이썬에서 문자열을 결합하는 데 사용되는 메서드
    - 리스트, 튜플 등의 반복 가능한 객체의 요소들을 하나의 문자열로 결합 할때 사용
    - .join() 앞에 위치한 문자열은 각 요소 사이에 들어갈 구분자 역할
    - 만약 정수와 같은 비문자열 요소가 포함된 경우, 문자열로 변환 후 사용
separator.join(iterable)

# ex
words = ['Hello', 'World', 'Python']
sentence = ' '.join(words)
print(sentence)  # "Hello World Python"
  • map()
    파이썬에서 반복가능한 객체의 모든 요소에 대해 지정된 함수를 적용하고 그결과를 새로운 반복 가능한 객체로 반환하는 내장 함수
    - lazy evaluation 지연평가 함수
    - 여러개의 iterable을 전달할 때 각 iterable의 길이가 다르면 가장 짧은 iterable에 맞추서 수행된다.
    - 함수와 데이터를 분리하여 각 데이터에 일괄적인 변환을 적용할 때 유용
map(function, iterable, ...)

ex)
numbers = [1, 2, 3, 4, 5]
doubled = map(lambda x: x * 2, numbers)
print(list(doubled))  # [2, 4, 6, 8, 10]
  • zip()
    파이썬의 내장 함수로, 여러개의 반복 가능한 객체를 병렬로 순회하면서 각 객체의 요소를 튜플로 묶어주는 역할
    - iterable의 길이가 다른 경우, 가장 짧은 iterable의 길이에 맞춰서 결과가 생성된다.
    - zip(pairs)는 을 이용해 언패킹하면 원래의 iterable로 분리할 수 있다.
    - 여러 iterable 객체의 요소를 효율적으로 묶어서 다루는데 유용하다.
zip(iterable1, iterable2, ...)
# ex)
numbers = [1, 2, 3]
letters = ['a', 'b', 'c']
zipped = zip(numbers, letters)
print(list(zipped))  # [(1, 'a'), (2, 'b'), (3, 'c')]

pairs = [(1, 'a'), (2, 'b'), (3, 'c')]
numbers, letters = zip(*pairs)
print(numbers)  # (1, 2, 3)
print(letters)  # ('a', 'b', 'c')
  • sorted()
    리스트의 요소를 정렬하는 함수로 리스트를 직접 수정하며 정렬된 리스트를 반환하지 않는다.
    - 문자열 정렬시에는 리스트로 변경 후 정렬하는 것임, 다시 문자열로 반환하기 위해서는 join() 사용
list.sort(key=None, reverse=False) # key: 정렬 기준, reverse: False 오름차순, True 내림차순

data = [("a", 3), ("b", 1), ("c", 2)]
data.sort(key=lambda x: x[1])
print(data)  # [('b', 1), ('c', 2), ('a', 3)]
  • divmod(a, b)
    몫과 나머지를 함께 구하는 함수 (a를 b로 나누어 나온 결과들)

  • sep = ''
    print함수에서 여러인수를 출력할때 각 인수 사이에 삽입할 문자열을 지정하는데 사용, 기본값 = ''공백 문자

print("HELLO", "WORLD", sep =", ")
>>> HELLO, WORLD
  • 문자 포맷팅
    % 연산자를 이용하여 문자열 포맷팅을 수행
%의미
%f실수형
%s문자형
%d정수형
%x16진수
%o8진수
  • range()

    • range(n): 0~n-1
    • range(n1, n2): n1 ~ n2-1
    • range(n1, n2, n3): n1~n2, n3 step 만큼
  • random

    함수의미
    random.random()0.0이상 1.0 미만의 부동 소수점 난수 반환
    random.randint(a,b)주어진 범위의 정수 반환
    random.choice(seq)시퀀스에서 무작위로 하나의 요소 반환
    random.shuffle(x)시퀀스의 요소를 무작위로 섞기
    random.uniform(a, b)주어진 범위의 부동 소수점 난수
    random.sample(population, k)시퀀스에서 k개의 무작위 요소를 리스트로 반환
  • 문자열 함수

%의미
isalnum()숫자, 알파벳 구성 여부
isalpha()알파벳 구성 여부
isnumeric()숫자 구성 여부
isdigit()숫자 구성 여부
islower/isupper()소문자, 대문자 구성 여부
replace(old, new)old --> new
strip()
in, find문자열 인덱스 탐색
startwith/endwith()시작, 끝에 문자열 존재 여부
swapcase()대문자--> 소문자/ 소문자 --> 대문자
count(str)문자열에서 주어진 문자열이 반복되는 횟수 반환
count(str, start, end)지정한 범위에서 문자열 반복 횟수 반환
split()문자열을 기준으로 구분하여 리스트를 생성
capitalize()문자열의 첫번째 단어만 대문자로 나머지는 소문자로 변환
  • 문자열 슬라이싱
string = str1[start:stop:step]
str2 = str1[:5] # 문자열 [0]부터 [4]까지
str3 = str1[:] # 시작부터 끝까지
str4= str1[::-1] # 문자열 역순
str5 = str1[-6:] # 문자열의 끝 [-1]에서 [-6]
str6 = str1[::2] # 짝수 인덱스 문자 
  • 객체 지향 프로그래밍

    • 인스턴트 메소드: 클래스의 인스턴스에서 호출, 첫인자로 self를 받음

    • 클래스 메소드: 클래스에서 직접 호출, 첫 인자로 cls 받음 @classmethod

    • 스태틱 메소드: 클래스나 인스턴스에서 호출받음, 첫 인자로 받지 않음 @staticmethod

    • super().init() 부모클래스의 생성자 호출

    • super().func() 부모클래스의 함수 호출

    • private 선언 => __ func()

    • protected 선언 => _ func()

  • 이터레이터

    • iter

    • next

    • iter(호출 가능한 객체, 반복을 끝낼값)

    • next(iter 함수, 기본값) => 반복이 끝나면 기본값 출력

profile
공부하는 거북이

0개의 댓글