Python
-
[Python_Algorithm]슬라이스식으로 원소에 접근하기(자료구조와 함께 배우는 알고리즘 입문)Python/Algorithm 2021. 1. 26. 20:56
슬라이스식으로 원소 꺼내기 슬라이스 : 리스트나 튜플 일부를 일정한 범위와 간격으로 꺼내어 다른 리스트나 튜플을 만드는 것 왼쪽부터 차례대로 0부터 시작하여 6번째 인덱스 앞까지 추출된다. 인덱스 0번부터 7번 앞까지 2칸씩의 간격으로 출력된다. 거꾸로된 인덱스로 오른쪽부터 -1부터 시작된다. -4와 -2의 앞인 -3까지 출력하여 green과 blue과 출력된다. 출력될 내용이 없어서 출력은 안되지만 오류는 나지 않는다. 뮤터블과 이뮤터블의 대입 동일한 변수 명에 다른 값을 대입했을 때 객체의 식별 번호가 달라짐을 알 수 있다. 누적 변수 n을 1만큼 증가시키니 이 또한 식별번호가 변하였다. n의 숫자의 값이 변한것이 아닌 n이 참조하는 곳이 변한것이다. 파이썬에서는 수나 문자열은 값을 변경할 수 없고 ..
-
[Python_Algorithm]리스트와 튜플 알아보기(자료구조와 함께 배우는 알고리즘 입문)Python/Algorithm 2021. 1. 23. 17:13
보통 다른 언어에서 배열을 '리스트'로 구현하는 것과 달리, 파이썬에서 배열은 '리스트'와 '튜플'로 구현할 수 있다. 리스트의 기초 리스트는 변경할 수 있는 '뮤터블'list형 객체 리스트는 연산자 [] 안에 원소를 쉼표로 구분하여 생성할 수 있다. 원소 없이 [] 만 사용한다면 빈 리스트가 생성된다. # 리스트의 기초 list01 = [] #빈 리스트 list02 = [1,2,3] #[1,2,3] list03 = ['A','B','C',] #마지막 원소에 쉼표를 사용해도 됨 print(list01) print(list02) print(list03) list03처럼 쉼표는 맨 마지막 원소 뒤에 쓸 수 있다. 파이썬 내장 함수 list() 를 사용하여 문자열이나 튜플 등 다양한 자료형 객체를 원소로 하는..
-
[python_Algorithm]배열 개념 알아보기(자료구조와 함께 배우는 알고리즘 입문)Python/Algorithm 2021. 1. 20. 21:05
배열의 필요성 # 학생 5명의 시험 점수를 입력받아 합계와 평균을 출력하기 print('학생 그룹 점수의 합계와 평균을 구합니다.') score1 = int(input('1번의 학생의 점수를 입력하세요.:')) score2 = int(input('2번의 학생의 점수를 입력하세요.:')) score3 = int(input('3번의 학생의 점수를 입력하세요.:')) score4 = int(input('4번의 학생의 점수를 입력하세요.:')) score5 = int(input('5번의 학생의 점수를 입력하세요.:')) total = 0; total += score1 total += score2 total += score3 total += score4 total += score5 print(f'합계는 {tota..
-
[Python_Algorithm] 다중 루프 알아보기(자료구조와 함께 배우는 알고리즘 입문)Python/Algorithm 2021. 1. 17. 15:33
단순 반복문이 아닌 반복문 안에 반복문이 들어갈 수도 있다. # 구구단 곱셈표 출력하기 print('-'*27) for i in range(1,10): for j in range(1,10): print(f'{i*j:3}',end='') print() print('-'*27) 구구단의 알고리즘의 모습은 이렇다. # 왼쪽 아래가 직각인 이등변 삼각형으로 * 출력하기 print('왼쪽 아래가 직각인 이등변 삼각형을 출력합니다.') n=int(input('짧은 변의 길이를 입력하세요.:')) for i in range(n): for j in range(i + 1): print('*', end='') print() # 행 변경 i는 0에서 부터 시작하므로 *을 출력하는 횟수인 j는 i 보다 1이 + 된 수만큼 출..
-
[Python_Algorithm]반복문 건너뛰기와 여러 범위 스캔하기(자료구조와 함께 배우는 알고리즘 입문)Python/Algorithm 2021. 1. 15. 23:53
# 1~12까지 8을 건너뛰고 출력하기1 for i in range(1,13): if i == 8: continue print(i,end='') print() 위의 결과는 8은 출력되진 않지만 range 범위만큼 반복을 해야하므로 효율적이지진 않다. # 1부터 12까지 8을 건너뛰고 출력하기2 for i in list(range(1,8))+list(range(9,13)): print(i,end='') print() 여기선 8을 건너뛰고 리스트를 만들어 출력하였다. 하지만 이도 for문에서 리스트의 내용을 하나씩 꺼내서 반복하기에 반복은 여전히 발생한다. # 2자리 양수(10~99) 입력받기 print('2자리 양수를 입력하세요.') while True: no = int(input('값을 입력하세요.:')..
-
[Python_Algorithm]직사각형 넓이로 변의 길이 구하기(자료구조와 함께 배우는 알고리즘 입문)Python/Algorithm 2021. 1. 12. 20:48
조건문의 종료 # 가로, 세로 길이가 정수이고 넓이가 area인 직사각형에서 변의 길이 나열하기 area= int(input('직사각형의 넓이를 입력하세요:')) for i in range(1,area+1): # 1부터 사각형의 넓이 계산 if i * i > area : break if area % i :continue print(f'{i}X{area//i}') i * i > area 일 때 break 문을 걸어줌으로써 조건문이 종료된다. 예시) 넓이가 30인데 i는 5인경우 5 X 5는 25로 가능 하지만 6인 경우는 6 X 6이 나와 안된다. continue 는 밑의 부분을 실행하지 않고 다시 조건문으로 돌아간다. 넓이로 나누어 떨어지지 않는 수는 다시 조건문으로 올라가 다음 값을 실행한다. (나머지..