Python/Python Programming 117

[Python] string 모듈을 이용한 임의의 패스워드 만들기

from random import choice from string import punctuation from string import ascii_letters from string import digits password_digit = ''.join(choice(digits) for i in range(3)) # 임의 수만큼 숫자 생성 password_alpha = ''.join(choice(ascii_letters) for i in range(3)) # 임의 수만큼 영대소문자 생성 password_symbols = ''.join(choice(punctuation) for i in range(2)) # 임의 수만큼 특수문자 생성 print(password_digit+password_alpha+passw..

[Python] Python Dictionary의 clear 메소드와 { } 차이

딕셔너리의 clear 메소드와 { }는 객체를 초기화 한다는 것은 동일하지만, 재사용에서 활용이 다를 수 있다. dic = {'a':1} dic2 = dic print(dic) print(dic2) {'a': 1} {'a': 1} dic 객체를 { }로 클리어 했을 때, dic = {} print(dic) print(dic2) {} {'a': 1} dic = { } 는 빈 딕셔너리 객체를 새로 생성하고, dic2는 기존 객체를 유지한다. dic 객체를 clear() 메소드로 클리어 했을 때, dic.clear() print(dic) print(dic2) {} {} 하지만 clear는 참조되어 있는 모든 객체를 삭제한다. dic2.clear() print(dic) print(dic2) {} {} dic2를..

[Python] for문에 리스트 순회시 remove가 정상적으로 반영되지 않는 이유

리스트 원본 자체를 loop에서 remove 정상적으로 반영되지 않기 때문에, 스텝 슬라이싱을 이용하면 된다. # lst 원본 자체를 for문 lst = [ i for i in range(10) ] for i in lst: lst.remove(i) lst [1, 3, 5, 7, 9] # 원하는 결과가 나오지 않았다. 스텝 슬라이싱으로 for문 lst = [ i for i in range(10) ] for i in lst[::]: lst.remove(i) lst [] docs.python.org/3/tutorial/controlflow.html#for-statements