python 286

[Python] input VS sys.stdin.readLine

input과 sys.stdin.readLine 간 속도 차이가 나는 이유에 대해 간단히 적어둔다. Python 2.X Python 2에서 사용자 입력을 처리하기 위한 함수는 input과 raw_input이 존재하며, 그 기능은 아래와 같다. input : 입력 받은 값을 evaluate하여 적절한 자료형으로 초기화하여 반환한다. raw_input : 입력 받은 값을 문자열로 반환한다. 따라서 입력 받은 값을 별도 처리하여 저장하는 input 함수가 상대적으로 느리다. 그렇다면 Python 3에서도 동일할까? 그건 아니다. Python 3.X Python 2에서 사용자 입력을 처리하기 위한 함수 중 raw_input은 삭제되었고, input이 raw_input을 대체하게 되었다. 즉, Python 3의 i..

Python 2022.01.23

[boto3] 설치 및 자격 증명 구성

boto3 Python용 AWS SDK EC2, S3와 같은 AWS 서비스 개체를 생성 및 관리할 수 있다. SDK 소프트웨어 개발 키트 (Software Development Kit) 소프트웨어 기술자가 사용하여 특정한 소프트웨어 꾸러미, 소프트웨어 프레임워크, 하드웨어 플랫폼, 컴퓨터 시스템, 게임기, 운영 체제 등을 위한 응용 프로그램 등을 만들 수 있게 해주는 개발 도구의 집합 이 글에서는 리눅스 환경에서 boto3을 설치하고 자격 증명을 구성하는 방법에 대해 정리한다. 설치 요구 조건 : Python 3.6 이상 Python 3.5 이하는 지원이 중단되었다. pip를 통해 설치할 수 있으며, ==, >=, =1.15.0 pip3 install boto3 [매뉴얼] Boto3가 AWS의 자격증명(..

AWS 2022.01.15

[Python] find VS index

Python에서 문자열의 특정 문자나 문자열의 위치를 찾을 때 일반적으로 find, index 등의 함수를 사용한다. 이 글에서는 두 함수의 차이점을 정리한다. find 문자열에 매개변수로 받은 문자열의 위치(index)를 확인하여 반환한다. 매개변수로 받은 문자열이 중복하여 위치해도 처음 위치한 자리만을 반환한다. str.find(SEARCHING_STR, [start], [end]) # 예시 print('"ABCDEFGHIJA".find("A") : ', "ABCDEFGHIJA".find("A")) print('"ABCDEFGHIJA".find("A", 2) : ', "ABCDEFGHIJA".find("A", 2)) print('"ABCDEFGHIJA".find("Z") : ', "ABCDEFGHIJ..

Python 2022.01.07

[Python] 대소문자 확인 및 변환

이 글에서는 문자가 대문자인지, 소문자인지 확인하는 함수와 문자열을 대문자 또는 소문자로 변경하는 함수를 정리한다. isupper 문자가 대문자인지 확인한다. str.isupper() # return : bool # 예시 print("A".isupper()) islower 문자가 대문자인지 확인한다. str.islower() # return : bool # 예시 print("A".islower()) upper 문자열을 대문자로 변환하여 반환한다. str.upper() # 예시 print('"AbCdEfGh".upper() :', "AbCdEfGh".upper()) lower 문자열을 소문자로 변환하여 반환한다. str.lower() # 예시 print('"AbCdEfGh".lower() :', "AbCd..

Python 2022.01.05

[BOJ] 5576 - 콘테스트 / 리스트 컴프리헨션 이차배열

문제 https://www.acmicpc.net/problem/5576 프로그래밍 콘테스트에 W대학과 K대학이 참가한다. 두 대학 모두 10명씩 참가하며, 점수가 가장 높은 3명의 점수를 합해 대학의 점수로 계산한다. W대학의 점수, K대학의 점수를 나타내는 20줄의 입력을 받아 각 대학의 점수를 공백으로 구분하여 출력하는 프로그램을 작성한다. 풀이 1. 각 입력을 10열 2행의 배열로 저장한다. 2. 각 행을 정렬한 뒤 마지막 3개 값을 합한 결과를 출력한다. 소스 코드 import sys s = [[int(sys.stdin.readline()) for _ in range(10)] for _ in range(2)] print(sum(sorted(s[0])[7:]), sum(sorted(s[1])[7:]..

[Python] ASCII code/문자 변환

ASCII code American Standard Code for Information Interchange, 미국 정보 교환 표준 부호 영문 알파벳을 사용하는 문자 인코딩 7비트 인코딩으로, 33개의 제어 문자와 공백을 비롯한 95개의 출력 가능한 문자로 이루어져 있다. 출력 가능한 문자는 52개의 알파벳 대소문자와 10개의 숫자, 32개의 특수 문자와 공백으로 이루어져 있다. ASCII 코드표 알고리즘 문제 등을 해결하다보면 문자열 범위 지정 등의 문제로 인해 숫자값으로 변환이 필요할 경우가 있다. 이 글에서는 Python에서 문자의 ASCII code 값으로 변환하고, ASCII code 값을 문자로 변환하는 방법을 적어둔다. ord() 특정 한 문자를 ASCII code 값으로 변환하는 내장 함..

Python 2021.12.28

[BOJ] 11718 - 그대로 출력하기

문제 https://www.acmicpc.net/problem/11718 입력 받은 문자열을 그대로 출력하는 프로그램을 작성하라. 입력은 최대 100줄이며, 한 줄은 알파뱃, 숫자, 공백으로만 이루어져 있다. 각 줄은 100글자를 넘지 않으며, 빈 줄은 주어지지 않는다. 또한 각 줄은 공백으로 시작하지 않고, 공백으로 끝나지 않는다. 풀이 임의의 여러 줄을 입력받아 처리하는 문제이다. 내 풀이 빈 줄이 주어지지 않는다는 점을 이용하여 입력이 공백인 경우, 입력의 끝이라고 간주한다. import sys while True: i = sys.stdin.readline()[:-1] # 개행문자('\n') 제거 if i == "": exit() print(i) 다른 풀이 예외 처리를 이용한다. import sys..

[eval] 문자열 식 실행

eval 문자열형의 식을 입력받아 그 실행 결과를 반환하는 함수 예시 print(f"1 + 2 = {eval('1 + 2')}") print(f"1 == 2 = {eval('1 == 2')}") 함수의 실행 결과도 반환할 수 있다. print(eval("print('hello')")) 주의점 간편하고 강력하지만 사용자의 입력값을 eval 함수로 실행시키는 등의 코드는 사용하지 않도록 한다. 해킹의 위험성이 존재하기 때문이다. 간단한 예를 통해 알아보자. 예시 코드 아래 코드는 사용자가 입력한 수식을 계산하여 출력하는 코드이다. def input_eval(): user_input = input("enter expression: ") return eval(user_input) print(input_eval(..

Python 2021.12.17

[ln] Python 심볼릭 링크 설정

CentOS 7에서는 기본적으로 python2를 사용하도록 설정되어 있다. ……물론 아닐 수도 있다. 이 글에서는 python3을 주로 사용한다는 가정하에 python 명령어를 사용하면 python2가 아니라 python3을 실행할 수 있도록 설정하는 방법을 정리하고자 한다. Symbolic Link를 설정하고 관리하는 방법은 update-alternatives도 존재하지만, 이 글에서는 ln 명령을 이용해 설정하려고 한다. 시스템 설정 변경이 필요하므로 root 권한이 필요하다. python 환경이 변경될 수 있기 때문에 실행에는 주의가 필요하다. 1. Python 실행 위치 확인 which python 2. /usr/bin/python이 가리키는 파이썬 버전 확인 필요 시 기존 설정을 원복할 수 있도..

Linux 2021.12.06

[Python] 변수에 함수 저장

파이썬에서 함수는 1급 객체(first-class object)이다. 1급 객체(first-class object) 프로그래밍 언어 디자인에서 다른 객체들에 일반적으로 적용 가능한 연산을 모두 지원하는 객체 보통 함수에 매개변수로 넘기기, 수정하기, 변수에 대입하기와 같은 연산을 지원하는 객체를 말한다. 이 글에서는 1급 객체의 조건 중 하나인 변수에 함수를 할당하여 사용하는 방법에 대해 다룬다. 기본 사용 테스트 함수 두 수를 입력받아 그 합을 반환하는 더하기 함수를 예시로 들고자 한다. def plus(a, b): return a + b 변수에 테스트 함수 할당 result라는 변수에 테스트 함수를 할당한다. 함수를 호출해 반환 값을 변수에 저장하는 것과 함수를 변수에 저장하는 것의 차이를 구분해야 ..

Python 2021.11.23