python 139

[Python] Python의 삼항연산자 (Python's Ternary operators)

파이썬에는 c언어와는 다르게 사용자 친화적인 삼항 연산자가 있다. 문법은 참인 경우 값 if 조건 else 거짓인 경우 값 True if Condition else False a = 10 if 10 > 5 else 5 print(a) 10 > 5가 참이므로 앞의 10이 a에 할당된다. 특별히 어려운 점은 없지만, 간혹 헷갈리는 부분이 있다. 바로 삼항 연산자는 값을 내놔야 한다는 것..... a = 10 if 10 > 5 else a = 5 print(a) 이런 명령어는 SyntaxError: cannot assign to conditional expression 라는 오류를 출력한다. 즉 expression이 들어가면 안 된다는 뜻이다...! a = 10 if 10 > 5 else 5라는 문장을 볼 때..

[알고리즘 - C++, Python] SWEA 8016 홀수 피라미드

https://swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AWvzGUKKPVwDFASy SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 반복문 쓸 필요도 없고, 그냥 점화식 세워서 문제 풀어버리면 된다. c++) #include using namespace std; int main() { unsigned long long int test, i; cin >> test; for (int j = 1; j > i; if (i == 1){ cout

[알고리즘 - Python] BOJ 16563

https://www.acmicpc.net/problem/16563 16563번: 어려운 소인수분해 첫째 줄에는 자연수의 개수 N (1 ≤ N ≤ 1,000,000)이 주어진다. 둘째 줄에는 자연수 ki (2 ≤ ki ≤ 5,000,000, 1 ≤ i ≤ N)가 N개 주어진다. www.acmicpc.net from math import sqrt _ = int(input()) # 필요 없음 k = list(map(int, input().split())) # 자연수들 M = max(k) # 자연수의 최댓값 arr = list(i for i in range(M + 1)) # arr을 초기화 함 for i in range(2, int(sqrt(M)) + 1): # 2부터 M의 제곱근까지만 계산해도 됨 if ar..

[알고리즘 - Python] BOJ 1929

https://www.acmicpc.net/problem/1929 1929번: 소수 구하기 첫째 줄에 자연수 M과 N이 빈 칸을 사이에 두고 주어진다. (1 ≤ M ≤ N ≤ 1,000,000) M이상 N이하의 소수가 하나 이상 있는 입력만 주어진다. www.acmicpc.net n, m = map(int, input().split()) # 두 개의 자연수 arr = [True] * (m + 1) # True은 소수라는 뜻 arr[0] = arr[1] = False # False은 소수가 아님 # for i in range(2, int((m + 1) ** 0.5)): # 최고 숫자의 루트로 계산해도 되긴 함 for i in range(2, m + 1): # 2부터 최고 숫자까지 에라토스테네스의 체를 계산..

[알고리즘 - Python] BOJ 1978

https://www.acmicpc.net/problem/1978 1978번: 소수 찾기 첫 줄에 수의 개수 N이 주어진다. N은 100이하이다. 다음으로 N개의 수가 주어지는데 수는 1,000 이하의 자연수이다. www.acmicpc.net _ = int(input()) # 필요 없음 N = list(map(int, input().split())) # 숫자들을 입력 받음 arr = [True] * (max(N) + 1) # True은 소수라는 뜻 arr[0] = arr[1] = False # False은 소수가 아님 for i in range(2, max(N) + 1): # 2부터 최고 숫자까지 에라토스테네스의 체를 계산함 if arr[i]: for j in range(i * 2, max(N) + 1,..

[Python] namespace와 함수 (전역변수의 참조와 변경, 그리고 오류가 나는 이유)

우선 코드를 보시죠 def func(): if 10 > m: cnt += 1 m = 5 cnt = 0 func() print(cnt) 실행될까요? 안 됩니다. 오류가 납니다. UnboundLocalError: local variable 'cnt' referenced before assignment 라는 오류가 납니다. 아니 m은 잘만 참조하면서 cnt는 왜 참조 못하지? 라는 생각이 드실겁니다. 결론부터 말하자면 '참조'는 가능하지만 '변경'은 불가능합니다. 사소하지만 매우 중요한 지식입니다. 1. namespace를 나눈 이유 전역 namespace의 변수를 지역 namespace로 가져와서 변경을 못하게 하는 이유는 간단합니다. 그렇게 지역과 전역을 혼동되게 사용한다면 굳이 namespace를 나눈 ..

[python] repr과 str의 차이

repr과 str은 둘 다 문자열을 반환한다. 하지만 사소하지만 중요한 차이점이 있다. hi = 24 print(str(hi)) print(repr(hi)) 24 24 숫자가 아닌 문자열에 적용해보면, hi = "hi-guten-tag" print(str(hi)) print(repr(hi)) hi-guten-tag 'hi-guten-tag' 같은 문자열임에도 repr()을 쓰면 '' 따옴표가 추가되는 걸 볼 수 있다. 쉽게 생각하면 str은 우리가 쉽게 볼 수 있는, 그런 비공식적인 문자열을 반환하는 반면에 repr은 공식적인 문자열을 반환한다. 즉, repr은 시스템, 인터프리터가 객체를 인식할 수 있는 문자열을 반환하는 것이다. 따라서 eval(repr(obj))를 한다면 해당 obj를 얻을 수 있는..

[Python] Intellisense와 Document 보이게 하는 법

가끔 이런 식으로 IntelliSense가 되어야 하는데 안 되는 경우가 있는데, 이때 Ctrl + Space를 눌러주면 해결할 수 있다. 만약 이것도 안 된다면, FIle -> Setting -> Editor -> General -> Code Completion에서 show suggestions as you type을 체크해주면 된다 show suggestions as you type을 체크 해제하면 IntelliSense가 해제되지만, 체크하면 IntelliSense를 쓸 수 있다. Document를 보이게 하는 방법은 생각보다 간단하다. (기본 함수의 Document가 아닌 설치한 패키지의 Document) File -> Settings -> Tools -> External Documentation..