본문 바로가기
반응형

Python9

Python lstrip으로 접두어 지웠는데 숫자까지 사라져요: removeprefix의 차이 파일명 문자열 앞의 2026-만 빼려는데, 뒤에 있던 2022까지 사라졌나요? lstrip("2026-")는 2026-라는 문구를 한 번 지우는 명령이 아니에요. 2·0·6·- 가운데 하나인 문자를 왼쪽부터 계속 제거해요. 정확히 일치하는 접두어 한 덩어리만 빼려면 removeprefix("2026-")가 맞아요.이 차이는 연도나 구분자가 연달아 붙은 이름에서 쉽게 드러나요. 아래 예제는 실제 파일을 옮기거나 이름을 바꾸지 않고, 메모리에 있는 문자열만 처리해요.2026- 뒤의 2022도 제거 대상 문자로 읽혀요label = "2026-2022-report.csv"print(label.lstrip("2026-"))print(label.removeprefix("2026-"))report.csv2022-re.. 2026. 10. 29.
Python round(4.015, 2)는 왜 4.01일까요? 반올림 규칙과 입력값을 확인해요 round(4.015, 2)를 계산했는데 4.02가 아니라 4.01이 나오면, 마지막 자리 5만 보고 반올림 규칙이 틀렸다고 느끼기 쉬워요. 여기서는 float에 담긴 실제 값이 정확한 4.015보다 조금 작다는 점을 먼저 확인해야 해요. 중간값을 어느 쪽으로 보낼지 정하는 규칙과, 그 중간값이 실제로 입력됐는지는 따로 볼 문제예요.같은 화면의 숫자라도 문자열에서 바로 만든 Decimal인지, 이미 float를 거친 값인지에 따라 결과가 달라져요. 자체 숫자 몇 개로 두 차이를 나누어 확인해 볼게요. 아래 코드는 Python 3.12.14에서 실행했어요.정확히 가운데라면 짝수 쪽을 택해요for value in (3.5, 4.5, -3.5, -4.5): print(f"{value}: {round(va.. 2026. 10. 28.
Python zip으로 묶었더니 마지막 항목이 사라져요: strict=True도 검사 시점이 있어요 품목 코드는 세 개인데 zip으로 수량과 묶으니 두 줄만 남았나요? 기본 zip은 더 짧은 쪽이 끝나면 멈춰요. 긴 쪽의 남은 항목을 자동으로 채우거나 오류로 알려 주지는 않아요.두 목록이 반드시 일대일이어야 한다면 Python 3.10부터 지원하는 strict=True를 검토할 수 있어요. 다만 이 옵션은 반복 도중 길이 차이를 발견하는 검사예요. 앞에서 처리한 일을 취소해 주지는 않는다는 점까지 함께 봐야 해요.세 번째 코드가 조용히 빠지는 작은 예제codes = ["P01", "P02", "P03"]quantities = [4, 7]print(list(zip(codes, quantities)))[('P01', 4), ('P02', 7)]이 자체 예제에서 P03은 결과에 없어요. 수량이 0이라고 판단.. 2026. 10. 27.
Python 함수 기본값에 []를 썼더니 이전 호출의 목록이 남아요 함수를 두 번 불렀을 뿐인데 두 번째 결과에 첫 번째 값까지 남아 있나요? 매개변수 기본값을 items=[]처럼 작성했다면 확인해 보세요. 기본값의 빈 리스트는 호출할 때마다 새로 만들어지는 것이 아니라 함수가 정의될 때 한 번 만들어져요.그래서 기본 인자를 생략한 호출들이 같은 리스트를 계속 사용할 수 있어요. 호출마다 독립적인 결과를 원했다면, 리스트를 만드는 위치를 함수 본문 안으로 옮겨야 합니다.호출은 두 번인데 기본 목록은 하나예요def remember(label, items=[]): items.append(label) return itemsfirst = remember("alpha")second = remember("beta")print(first)print(second)print(.. 2026. 10. 26.
Python 리스트를 복사했는데 원본도 바뀌어요: 이름·바깥 목록·안쪽 객체를 나눠 봐요 원본 목록은 그대로 두고 복사본에만 태그를 하나 더 붙였는데, 원본의 태그도 늘어났다면 당황스럽지요. 파일을 잘못 저장했거나 프로그램이 예전 값을 기억한 것처럼 느껴질 수 있어요. 하지만 메모리 안에서 두 이름이 같은 객체를 가리키거나, 바깥 목록만 새로 만들고 안쪽 항목을 함께 쓰고 있어서 생긴 결과일 수 있습니다. Python의 대입과 복사는 같은 작업이 아니에요. list.copy()를 썼더라도 중첩된 목록이나 딕셔너리까지 전부 독립적으로 만들어 주지는 않아요. 오늘은 “복사했으니 안 바뀌어야 한다”는 생각을 조금 더 구체적으로 나눠볼게요. 어느 객체를 새로 만들었고, 이번 코드가 그중 어느 부분을 바꾸는지가 핵심입니다. 2021년 Python3.8 명령 프롬프트 공개 자료 화면이에요. x에 값을 .. 2026. 10. 22.
Python >>>에서 되던 계산이 파일에선 안 보여요: 셸과 편집창을 구분해요 파이썬을 켜서 계산했을 때는 답이 바로 보였어요. 똑같은 줄을 파일로 저장하고 실행했더니 이번에는 아무것도 안 나옵니다. 설치가 잘못됐을까요? 아니면 교재의 >>>까지 함께 붙여 넣어야 하는 걸까요? 이럴 때는 코드를 다시 설치하기 전에 지금 보고 있는 창을 구분해 보세요. 대화형 셸은 한 번 입력하고 결과를 살피는 곳이고, 편집창은 여러 줄의 코드를 파일로 만드는 곳이에요. 같은 Python 문장을 사용해도 결과를 보여 주는 방식과 남겨 두는 대상이 달라요. 오늘은 Python 3의 공식 문서로 프롬프트·파일·출력을 나누어 볼게요. 사진은 공개된 과거 소프트웨어 자료이며 제 PC에서 찍은 설치 후기나 여러분 계정의 화면이 아니에요. 현재 문서와 사진 속 버전을 같은 것으로 가정하지 않고, 화면에서 실제.. 2026. 10. 21.
반응형