TIL

내일배움캠프 본캠프 15일차 - 파이썬 - 연산자, 자료형 / 함수 문제 풀기

수현조 2024. 12. 13. 18:11

베이직반 강의 복습

1. 산술 연산자 (Arithmetic Operators)

숫자 계산에 사용되는 연산자:

  • + : 더하기
  • - : 빼기
  • / : 나누기
  • * : 곱하기
  • % : 나머지
  • // : 몫
  • ** : 거듭제곱

예시:

print(5 + 3)   # 8
print(10 % 3)  # 1
print(2 ** 3)  # 8

2. 비교 연산자 (Comparison Operators)

두 값을 비교하여 True 또는 False 반환:

  • == : 값이 같음
  • > : 크다
  • < : 작다
  • >= : 크거나 같다
  • <= : 작거나 같다
  • != : 같지 않음

예시:

print(5 > 3)   # True
print(5 != 5)  # False

3. 논리 연산자 (Logical Operators)

논리값을 조합:

  • and : 두 조건이 모두 참일 때 참.
  • or : 둘 중 하나만 참이어도 참.
  • not : 논리값을 반전.

예시:

print(True and False)  # False
print(True or False)   # True
print(not True)        # False

4. 아이덴티티 연산자 (Identity Operators)

객체가 동일한 메모리 위치를 가리키는지 확인:

  • is : 동일 객체인지 확인.
  • is not : 동일하지 않은 객체인지 확인.

예시:

a = [1, 2, 3]
b = a
c = [1, 2, 3]
print(a is b)   # True
print(a is c)   # False

5. 할당 연산자 (Assignment Operators)

변수에 값을 할당하거나 값을 수정:

  • = : 할당
  • +=, -=, *=, /=, **= : 복합 할당

예시:

a = 5
a += 2  # a = a + 2
print(a)  # 7

6. 비트 연산자 (Bitwise Operators)

정수의 비트값을 연산:

  • & : AND (둘 다 1일 때 1)
  • | : OR (둘 중 하나라도 1이면 1)
  • ^ : XOR (둘이 다를 때 1)
  • ~ : NOT (비트 반전)
  • >> : 오른쪽 쉬프트
  • << : 왼쪽 쉬프트

예시:

a = 5  # 0101
b = 3  # 0011
print(a & b)  # 0001 -> 1
print(a | b)  # 0111 -> 7
print(a ^ b)  # 0110 -> 6
print(a >> 1) # 0010 -> 2
print(a << 2) # 10100 -> 20

Python 자료형 정리

1. 리스트 (List)

  • 순서가 있는 변경 가능한 자료형.
  • 다양한 데이터 타입 저장 가능.

예시:

mylist = [1, "AI9기", 3.14]
mylist.append(4)
print(mylist)  # [1, "AI9기", 3.14, 4]

2. 튜플 (Tuple)

  • 순서가 있지만 변경할 수 없는 자료형.
  • 참조 속도가 빠르고 해시 가능.

예시:

mytuple = (1, "AI9기", 3.14)
print(mytuple[1])  # "AI9기"

3. 딕셔너리 (Dictionary)

  • 키-값 쌍으로 이루어진 자료형.
  • Python 3.7부터 순서 보장.

예시:

mydict = {"이름": "민준", "나이": 20}
print(mydict["이름"])  # "민준"

4. 세트 (Set)

  • 중복되지 않고 순서가 없는 자료형.

예시:

myset = {1, 2, 2, 3}
print(myset)  # {1, 2, 3}

함수 문제와 풀이 - 숙제

숙제 70

Hi 함수 호출 시 'hi' 출력

def hi():
    print('hi')
hi()

숙제 71

Hi 함수 호출 시 'hi "여러분들의 이름"' 출력

def hi(name):
    print(f'hi "{name}"')
hi('수현')

숙제 72

사용자가 입력한 두 개의 숫자를 더하는 함수

def plus():
    a = int(input("첫번째 숫자 입력 : "))
    b = int(input("두번째 숫자 입력 : "))
    return a + b
result = plus()
print(result)

숙제 73

1000개 이상의 숫자를 받아 더하는 함수

def chungea(*args):
    return sum(args)

result = chungea(1,2,3,4,5,6,7,8,9,10,11,12)
print(result)

숙제 74

리스트를 받아 길이를 반환하는 함수

def banhwan(lst):
    return len(lst)

ex_list = [1, 2, 3, 4, 5]
result = banhwan(ex_list)
print(result)  # 5

숙제 75

세 개의 숫자 중 가장 큰 숫자를 반환

def jeilbig(a, b, c):
    return max(a, b, c)

숙제 76

20세 이상이면 True, 미만이면 False 반환

def doragara(age):
    return age >= 20

숙제 77

문자열의 첫 문자가 대문자인지 확인

def hwagin(a):
    return a[0] == a[0].upper()

숙제 78

문자열에서 모음의 개수 세기

def moem(mal):
    moems = "aeiouAEIOU"
    count = 0
    for i in mal:
        if i in moems:
            count += 1
    return count

숙제 79

숫자 리스트에서 짝수만 더하기

def zzagsu(numlist):
    return sum(num for num in numlist if num % 2 == 0)

숙제 80

리스트와 값을 받아 리스트에 값이 포함되어 있는지 확인

def itzi(lst, a):
    return a in lst

숙제 81

두 문자열에서 공통으로 포함된 문자 반환

def gongtong(a, b):
    return ''.join(set(a) & set(b))

숙제 82

문자열을 반대로 반환

def bandea(a):
    return a[::-1]

숙제 83

삼각형의 밑변과 높이를 입력 받아 넓이 계산

def nerby(base, height):
    return base * height * 0.5

숙제 84

리스트에서 중복된 요소가 있는지 확인

def jungbok(lst):
    return len(lst) != len(set(lst))

숙제 85

두 리스트에서 공통 요소 반환

def gt_yoso(list1, list2):
    return list(set(list1) & set(list2))

숙제 86

문자열에서 숫자만 추출

def chuchul(munjayul):
    return ''.join(i for i in munjayul if i.isdigit())

숙제 87

리스트에서 최대값과 최솟값의 차이 계산

def gyesan(lst):
    return max(lst) - min(lst)

오늘의 느낀 점

  1. 귀찮다
  2. 눈이 아프다
  3. 집인데 집에 가고 싶다
  4. 머신러닝 해야하는데