본문 바로가기

python/guide12

python의 set 주의점 class set(object) | set() -> new empty set object | set(iterable) -> new set object | | Build an unordered collection of unique elements. python의 set이란 집합을 의미한다. 집합 자료형에는 두 가지 특징이 있는데, 하나는 순서가 없다는 것이고, 하나는 원소가 중복될 수 없다는 것이다. 순서가 없다는 것은 무작위성을 가진다는 것을 의미한다. asdf = set('asdf') qwer = set('qwer') print(list(asdf), list(qwer)) ['s', 'd', 'f', 'a'] ['w', 'e', 'r', 'q'] ['a', 'f', 's', 'd'] ['e', 'w', .. 2021. 9. 5.
python의 or 연산 특이점 #include int main() { if (1 || a) { printf("asdf"); } return 0; } c언어는 저렇게 하면 a가 선언되지 않았다고 하면서 오류가 뜬다. 파이썬은 True or apple이라고 쓰면 apple이 정의되어있지 않아도 True이라고 해석한다. 물론 apple or True라고 쓰면 오류가 난다. 저런 식이면 장단점은 무엇이냐.. 장점: 연산 속도가 빨라진다. True or 어쩌구면 무조건 참이니까 바로 그냥 냅다 참 반환해버리고 다음 단계로 넘어가면 된다. or 다음에 올게 엄청난 연산을 해야 하는 함숫값일 것을 상상해보면 저런 연산 방식은 파이썬 이용자에게 있어서 엄청난 축복이라 할 수 있을 듯. 단점: 오류를 바로 잡아내지 못한다. 사실 나는 apple을 정.. 2021. 8. 12.
9. 파이썬 for문 (1) >>> for x in range(9): ... print(x) ... 0 1 2 3 4 5 6 7 8 대망의 for문 맨 처음에 for를 쓰고, 그 다음에 값이 변수 이름을 쓴다. 그 다음에 in을 쓰고, 그 다음에 iterable 가능한 객체를 쓴다. iterable 가능한 타입은 list, dict, str, tuple, range 등이 있다. 여기서 range에 대해 설명하자면, range(stop) : 0부터 stop-1까지의 정수 등차수열 (= range(0, stop)) range(start, stop) : start부터 stop-1까지의 정수 등차수열 range(start, stop, step) : start부터 stop-1까지의 step을 공차로 한 등차수열 >>> list(range(0.. 2021. 4. 24.
8. 파이썬 if문 (3) if a: cmd1 cmd2 cmd3 else: if b: cmd1 cmd2 cmd3 else: if c: cmd1 cmd2 cmd3 if문이 실행되지 않았을 경우 다른 조건으로 검사를 해보고 싶은데. 조건이 3개만 되어도 3단 들여쓰기가 되는 것을 볼 수 있다. 이런 식으로 코드를 짜야했으면 파이썬은 망했을 것이다... 이럴 때 필요한 것이 바로 elif이다. if a: cmd1 cmd2 cmd3 elif b: cmd1 cmd2 cmd3 elif c: cmd1 cmd2 cmd3 하나 알아둬야할 점은 순서는 무조건 if - elif ... elif - else 라는 점이다. 어차피 그렇게 코드를 짤리도 없겠지만 else 다음에 elif가 오면 안 된다. 2021. 4. 24.
7. 파이썬 if문 (2) a라는 조건이 있는데 그 조건이 맞을 때랑 맞지 않을 때를 구분하고 싶다. 그럴 때마다 if a: a가맞을때명령 if not a: a가틀릴때명령 이런 식으로 쓰기는 귀찮다. 게다가 위험하다. a가맞을때명령에서 a의 값을 바꾸는 코드(예를 들어 a = False)를 넣기라도 한다면 a가틀릴때명령까지 둘다 실행이 될 수도 있다. 그럴 때 필요한 것이 바로 else다. if a: a가맞을때명령 else: a가틀릴때명령 이런 식으로 쓰면 a가맞을때명령과 a가틀릴때명령이 절대로 둘다 실행될 수 없다. 거꾸로 말하면 두 명령 중 하나는 무조건 실행이 된다. 왜냐하면 a는 맞거나 틀리거나 무조건 둘 중 하나니까...(bool의 자료형이 True와 False 밖에 없기 때문) >>> if 0: ... print('He.. 2021. 4. 24.
6. 파이썬 if문 (1) if는 조건문이다. 조건에 맞으면 if문 안의 코드를 실행하고, 그렇지 않으면 실행하지 않는다. if라는 키워드를 먼저 쓰고, 그 다음에 조건을 적은 후, 콜론을 적고, 그 다음 줄로 넘어가서 같은 폭만큼의 들여쓰기를 하면서 코드를 쓴다. 조건에 맞다는 것은 그 조건이 bool형으로 변환되었을 때 True라는 뜻이고, 그렇지 않으면 False라는 뜻이다. >>> if True: ... print('Hello, world!') ... Hello, world! 파이썬은 다른 언어와는 다르게 들여쓰기로 if문, for문, while문, 함수 정의, 클래스 정의가 어디까지인지 구분한다. if 조건: if문안의명령1 if문안의명령2 if 조건2: if문2안의명령1 if문2안의명령2 if문2끝나고if문안의명령3 i.. 2021. 4. 24.
5. 파이썬 자료형 (4) dict는 dictionary의 줄임말이다. 중괄호로 시작해서 중괄호로 끝난다. dict는 key, value의 배열이다. 사전으로 친다면 key는 단어, value는 뜻풀이라고 할 수 있겠다. 빈 dict는 {}로 쓴다. key value 1 4 2 5 3 6 4 6 위 표를 파이썬의 dict로 표현하면, {1: 4, 2: 5, 3: 6, 4: 6}이 된다. 각각의 key-value 쌍을 쉼표, 로 구분하고, key와 value는 콜론: 으로 구분하는 것을 알 수 있다. key에는 list, dict형 같은 건 들어갈 수 없다. value에는 파이썬에 존재하는 모든 것(dict 포함)이 들어갈 수 있다. dict형에서 순서는 딱히 중요하지 않다. 왜냐하면 key를 통해 value를 찾는 식이기 때문이다.. 2021. 4. 23.
4. 파이썬 자료형 (3) list는 tuple과 비슷하지만 다르다고 할 수 있다. list는 대괄호로 감싸져 있고, 쉼표, 로 요소를 구분한다. 속이 빈 list를 만들려면 []라고 쓰면 된다. 요소가 하나이든 두 개이든 몇 개이든 상관없이 []로 감싸기만 하면 list가 된다. >>> type([]) >>> type([1]) >>> type([1, 2, 3]) 그렇다면 tuple과 list는 도대체 뭐가 다른걸까? tuple과 list는 메소드면에서 많은 차이가 난다. tuple list 요소 수정이 가능한가? x o count o o index o o append x o remove x o pop x o ... ... ... list가 tuple보다 더 많은 기능을 가지고 있다고 할 수 있겠다. 나는 편의상 tuple보다 l.. 2021. 4. 23.
3. 파이썬 자료형 (2) tuple은 배열이다. int, float, str, complex 모두 들어갈 수 있는 배열이다. 상자 속의 상자 같은 느낌처럼 tuple 자기 자신도 tuple에 들어갈 수 있다. 괄호로 시작해서 괄호로 끝난다. 괄호 사이에 요소들이 들어가며, 요소 사이는 쉼표로 구분한다. 아무것도 없는 tuple을 만들기 위해서는 괄호 사이에 아무것도 안 넣으면 된다. >>> type(()) 요소가 하나인 tuple을 만들 때 주의할 점이 있다. 이건 진짜로 파이썬 코딩하면서 죽을 때까지 진짜진짜진짜 알고 있어야 한다. 파이썬은 어떤 값을 괄호로 감싸면 그 괄호를 그냥 풀어버린다. (당연히 2겹으로 싸든 3겹으로 싸든 마찬가지다.) 즉 'asdf' 하나만 가지고 있는 tuple을 만들 때 ('asdf')라고 쓰면 .. 2021. 4. 23.
2. 파이썬 자료형 (1) 파이썬에 존재하는 모든 것에는 자료형이라는 것이 있다. 어떤 값의 자료형이 뭔지 확인하려면 type 함수를 이용하면 된다. int는 정수 범위다. >>> type(383709) float는 실수 전체 범위다. 소수점이 적혀있으면 싹다 float에 속한다고 보면 된다. #은 주석 >>> type(0.0) >>> type(.5) # 0.5 >>> type(9.) # 9.0 >>> type(38702358710351723501273503.35710235701235) str은 문자열이다. 문자열과 수를 구분하기 위해 문자열은 따옴표로 감싸서 표현해주어야 한다. 따옴표는 큰 따옴표", 작은 따옴표', 큰 따옴표 3개""", 작은 따옴표 3개'''가 될 수 있다. 따옴표를 열고서 안 닫으면 코드가 망한다. str은.. 2021. 4. 23.