Confused thing

Haks.·2024년 12월 29일
0

Study

목록 보기
32/65
  • python의 특징 : class 안의 __call__ 메서드를 작성하면 클래스를 호출 할 수 있다.
class Myclass:
	def __init__(self, name):
    	self.name = name
    def __call__(self):
    	print(self.name)

obj = Myclass("Alice")
obj() # __call__이 실행 -> Alice
  • User.name 이런식의 .name 은 class안의 self.name에 다가가는 것이다.
  • User["name"] 은 dict으로 지정된 인스턴스의 name을 찾는 것이고
  • setattr(instace, attr, value) : 객체의 속성을 동적으로 설정
class User:
    def __init__(self, name, email):
        self.name = name
        self.email = email

user = User(name="Alice", email="alice@example.com")

# ✅ 기존 방식: 속성 직접 할당
user.name = "Bob"

# ✅ setattr()을 사용하여 동적으로 속성 할당
setattr(user, "email", "bob@example.com")
# for key, value in dict.items():
#	if value :
#    	setattr(user, key, value) 이런식의 활용가능

print(user.name)   # 출력: Bob
print(user.email)  # 출력: bob@example.com
  • pop(인덱스, 대체 값)
  • int('00') = 0
  • just() 메서드 : 특정 길이로 맞추기 위한 함수
    1. .ljust(왼쪽정렬 해당문자열을) : str.ljust(길이,채울문자ex)’ ' , '0' )
    2. .rjust(오른쪽정렬 해당 문자열을 추가할것은 왼쪽에추가)
    3. .center(가운데정렬)
  • list(x) 하는거랑 [x] 하는 거랑 다름
  • replace(x," ") 공백 또는 대체문자를 사용해서 처리하면 이어지는 단어를 체크해주지 않아도 된다. 또한 replace는 반환이 필요하기에 i=i.replace(x," ") 다시 반환 시켜줘야한다
  • dict1.update({'a':'banana','b':'orange'}) update 는 여러개를 추가할떄
  • add는 하나를 추가할때 , dict[key] : value 이렇게 해도되고 선택
  • 함수에서 초기값 설정할 때 설정이 있는 변수는 뒤로 넣는다
  • 초기 값이 주어진 함수라도 밖에서 변수를 주어지면 그걸로 덮어씀
  • 배열 array 에도 str 로 문자열로 바꿀수 있음
  • for 문에서 추가할때 문자열 슬라이싱 사용해서 str[i:i+n] 으로 했는데 마지막에 그길이를 초과하면 자동으로 끝가지만 슬라이싱 해서 멈춰서 나옴
  • 딕셔너리 in 연산자 사용하면 key 값을 비교함
  • replace() 메서드는 문자열을 교체하는 것임 문자열의 대체자로 정수가 나오면 안됨 repalce(a,str(b)) 바꿔야함 쓰려면
  • return 시 or 을 사용할 떄 앞에것이 false 면 뒤에것이 출력됨 return 조건1 or 조건2
  • list 에 find 없음 index 사용
  • sort() 함수는 여러개의 조건을 넣을떄 튜플 형식으로 넣어준다. 그리고 n번째 값을 기준으로넣으려면 바로 안에 있다 생각하고 바로 인덱스를 넣어주면 된다.
sorted(strings, key = lambda x: (x[n],x))
  • pymysql 변수 넣을 바람직한 방법
query = "INSERT INTO kream (category, brand, product_name, price) VALUES (%s, %s, %s, %s)" values = (i[0], i[1], i[2], i[3]) cursor.execute(query, values)
  • 데이터 함수 조회할때 set함수에 넣어서 사용가능 하면 이게 제일 빠르다. list 안에 있는것을 조회하는 것이 더많은 시간을 소모한다

  • 배열의 n번째를 기준으로 정렬하고, 같은값이 있으면 첫번째 값을 기준

def solution(strings, n):

    return sorted(strings, key = lambda x: (x[n],x))
  • parts = line,split(' ',1) # 공백을 기준으로 첫번째 공백에서 나눔

  • dir() : 어떤 메서드를 사용할 수 있는지 출력됨

  • zip 함수는 그자체로 프린트 하면 zip object 으로 나온다 그래서 list 나 tuple, dict 으로 변환 시키고 프린트 해야 출력된다 아니면 그자리에서 바로바로 사용하거나

  • dictionary = dict(zip(name,yearning))

  • reduce(함수,초기값) 초기값을 설정안해주면 그냥 처음부터 사용가능 초기값을 설정 할 수 있음

  • 길이가 4또는 6일때
    -> len(s) in (4, 6) and s.isdigit()이렇게 표현가능

  • sort 메서드 소문자가 대문자보다 작게 정렬됨

def solution(s, n): 
	new_s = '' 
    for i in s: 
    	if i.islower(): # 소문자 처리 
        new_s += chr((ord(i) - ord('a') + n) % 26 + ord('a')) 
        elif i.isupper(): # 대문자 처리 
        	new_s += chr((ord(i) - ord('A') + n) % 26 + ord('A')) 
        else: # 공백 및 기타 문자 처리 
        	new_s += i 
    return new_s
  • a.startswith(x) : 시작 문자열이 지정된 문자와 같은지 True / False 형식(bool)으로 반환
  • a.endswith(x) : 끝 문자열이 지정된 문자와 같은지 True / False 형식(bool)으로 반환
  • just() 메서드 : 특정 길이로 맞추기 위한 함수
    1. ljust(왼쪽정렬 해당문자열을) : str.ljust(길이,채울문자ex)’ ' , '0' )
    2. rjust(오른쪽정렬 해당 문자열을 추가할것은 왼쪽에추가)
    3. center(가운데정렬

0개의 댓글

관련 채용 정보