[ 정보처리기사 ]

python 문법 :: 슬라이싱, 람다 익명함수, 비트연산자

히앤님 2025. 6. 23. 16:47
반응형
SMALL

python 슬라이싱[start:stop:step]

인덱스 0부터 시작, 맨 앞부터 사이사이 숫자 넣기

 

  _a_      _b_     _c_    _d_    _e_ 

↑      ↑        ↑       ↑       ↑      ↑

0         1           2        3          4        5

 

[1 : 3] => bc

[ : 3] => abc

[ 3: ] => de

[1:5] => bcde

 

:: => 증가해라.

 

대괄호[] 안에 :: 콜론 표시이다.

 

1. 어떤 때에 쓰이나? 

- 리스트다. [2, 4, 6, 8, ...] 

 

2.  [1:8:3] 무슨 뜻인가? 

- 1부터 시작해서 8까지 3씩 증가하는 수를 리스트로 만들어내는 것이다. 

->nlist = [1,2,3,4,5,6,7,8,9,10]

->nlist[1:8:3]

->출력 : [2, 5, 8]

 

3. [::-1] 무슨 뜻인가? 

- 모든 숫자를 1만큼 역순으로 뽑아내는 것이다.

->nlist = [1,2,3,4,5,6,7,8,9,10]

->nlist[::-1]

-> 출력: [10, 9, 8, 7, 6, 5, 4, 3, 2, 1]

 

4. [::2]무슨 뜻인가? 

- 모든 숫자를 2증가 만큼 뽑아낸다. 

->nlist = [1,2,3,4,5,6,7,8,9,10]

->nlist[::-1]

-> 출력: [1,3,5,7,9]

 

5. [2::5]무슨 뜻인가? 

-2부터 시작하여 5증가만큼 뽑아낸다. 

->nlist = [1,2,3,4,5,6,7,8,9,10]

->nlist[2::5]

-> 출력: [3, 8]

 

6. [4::-2]무슨 뜻인가? 

-4부터 시작하여 역순으로 -2감소만큼 뽑아낸다.

->nlist = [1,2,3,4,5,6,7,8,9,10]

->nlist[4::-2]

-> 출력: [5,3,1]

 

 


람다 익명함수(lambda)

파이썬에서 lambda는 "익명 함수(Anonymous Function)"를 만드는 키워드입니다. 말 그대로 이름이 없는 함수를 한 줄로 간단하게 만들 때 사용합니다.

✅ 기본 문법

lambda 매개변수: 반환값

예를 들어,

add = lambda x, y: x + y print(add(3, 5)) # 출력: 8

lambda x, y: x + y는 x와 y를 더하는 함수를 만들고, 그걸 add라는 변수에 저장한 것입니다.

 


map() 함수 => 반복문 for 같은 거

list -> [1,2,3,4,5] 이 형태로 내보내라.

array -> [{1,2,3}, {4,5,6}, 7] 또는 [ [ ], [ ] ] 이런 배열로 내보내라.

 

TestList = [1, 2, 3, 4, 5]

TestList = list(map(lambda num: num + 100, TestList))

print(TestList)

 

map(lambda num: num + 100, TestList)

-> 반복해라. num = num + 100 인데 num에 TestList를 하나씩 넣어서

101 나오고 102 나오고 103 나옴

 

list(결과값)

-> 이걸 리스트로 만들어라.

 

답 : {101,102,103,104,105}

 


for i in range (1,3) 은

 

for(i=1; i < 3 ; i++) 이것과 같으므로

 

1,2까지만 넣으면 된다.


a = 0
for i in range(1, 4):  # i = 1, 2, 3
    a = a + 1
print(a) # 3

 

  • 이 경우 a는 1 → 2 → 3으로 올라가고,
  • 마지막에 print(a) 하니까 최종값인 3만 출력됩니다.
a = 0
for i in range(1, 4):
    a = a + 1
    print(f"i: {i}, a: {a}")

#i: 1, a: 1
#i: 2, a: 2
#i: 3, a: 3

 

 

출력을 계속해서 하려면 for 문 안에 넣고 {i} 와 같이 묶어서 계속해서 출력되게 해야한다.


✅ 파이썬 비트 연산자 총정리

연산자 이름 설명
& AND 둘 다 1일 때만 1
` ` OR
^ XOR 다를 때만 1
~ NOT (반전) 비트를 전부 뒤집음 (1→0, 0→1)
<< Left Shift 왼쪽으로 비트 이동 (곱셈 효과)
>> Right Shift 오른쪽으로 비트 이동 (나눗셈 효과)

비트 연산자를 출력하려면 숫자를 2진법으로 바꿔야함.

 

2로 나눠서 나머지들을 모아서 만들면 된다.

즉, 숫자에 비트연산자가 껴있으면 무조건 2진법으로 바꾼 뒤 변경해서 계산해야함.

 

100을 이진법으로 하면 1100100 이렇게 되고

이걸 만약에 다시 10진법으로 바꾼다고 하면 맨 앞에서부터 1,2,4,8,16,32... 순서로 계산하면 된다.

 

  ___      ___     ___    ___    ___ 

    ↑         ↑        ↑       ↑       ↑      

     16         8          4         2         1

 

100은 10진법으로 계산하면 4+32+64 가 됨.

 

// => 나눗셈

% => 나머지

** => 거듭제곱(승)

 


for item in sub:
    print(item, end='')

🔹 for item in sub:

  • sub는 리스트나 문자열 같은 반복 가능한(iterable) 객체여야 합니다.
  • item은 sub 안의 요소를 하나씩 꺼내는 변수입니다.
  • 예를 들어 sub = ['a', 'b', 'c']라면,
    item은 'a' → 'b' → 'c' 순으로 바뀌면서 반복합니다.

🔹 print(item, end='')

  • print() 함수는 기본적으로 한 번 출력하고 나면 자동으로 줄바꿈(\n) 을 합니다.
  • 그런데 end=''는 이 줄바꿈을 없애고, 출력 뒤에 아무것도 붙이지 말라는 의미입니다.
  • 즉, 여러 개를 한 줄에 붙여서 출력하게 됩니다.

즉, item에 들어가는거 순서대로 뿌리라는 말. abcd 이런식으로

 

반응형
LIST