230902_스터디노트

Sihyun Kim·2023년 9월 2일

파이썬 중급

중첩함수

def calculator(n1, n2, operator):

    def addcal():
        print(f'덧셈: {n1 + n2}')

    def subcal():
        print(f'뺄셈: {n1 - n2}')

    def mulcal():
        print(f'곱셈: {n1 * n2}')

    def divcal():
        print(f'나눗셈: {n1 / n2}')

    if operator == 1:
        addcal()

    elif operator == 2:
        subcal()

    elif operator == 3:
        mulcal()

    elif operator == 4:
        divcal()




while True:

    userNo1 = float(input('숫자 n1 입력: '))
    userNo2 = float(input('숫자 n2 입력: '))
    userOption = int(input('1.덧셈 2.뺄셈 3.곱셈 4.나눗셈 5.종료 \t'))



    if userOption == 5:
        print('BYE')
        break

    calculator(userNo1, userNo2, userOption)

💔

  • userOption을 int 캐스팅 안했더니, 함수 실행이 아예 안됨
  • 중첩 함수 개념은 이해가 가는데 바로 사용이 안됨
  • calculator 함수를 불러와야 하는 타이밍이 언제인가 헷갈림
  • while문은 혼자서 문제 풀 때는 생각조차 안남 (for문은 잘 쓰는데...)

lambda 함수

getTriangleArea = lambda n1, n2: n1 * n2 / 2
getSquareArea = lambda n1, n2: n1 * n2
getCircleArea = lambda r: r * r * 3.14

width = int(input('가로 길이: '))
height = int(input('세로 길이: '))
radius = int(input('반지름 길이: '))

triangleValue = getTriangleArea(width, height)
squareValue = getSquareArea(width, height)
circleValue = getCircleArea(radius)

print('삼각형 넓이: {}'.format(triangleValue))
print('사각형 넓이: {}'.format(squareValue))
print('원 넓이: {}'.format(circleValue))

🤍

  • 데이터 반환(return)은 어느 타이밍에 써야 할지 이해가 안갔는데,
    조금은 알 것 같은 느낌적인 느낌

모듈

import random

rNum = random.randint(1,10)
print(f'rNum: {rNum}')

rNums = random.sample(range(0,101), 10)
print(f'rNums: {rNums}')

💙

  • random 모듈에서 randint 말고 다른거 (sample) 첨 써봄, range도 저렇게 사용할 수 있는 거구나
    이렇게 처음 보는게 갑자기 불쑥불쑥 나온다 ^^ 어쩌겠어 그냥 외워야지

모듈 제작

내가 쓴 코드

import random

rNums = random.sample(range(1,46), 6)

print(f'이번주 로또 번호: {rNums}')
import lotto

문제 풀이

def getlottoNum():
    rNums = random.sample(range(1,46), 6)

    return rNums
 
import lotto

result = lotto.getlottoNum()
print(f'이번주 로또 번호: {result}')

💔

  • 결과는 같으나 풀이가 다르다
  • 여전히 미궁 속의 return

오늘의 마무리

def reverseStr(str):
    reversedStr = ''

    for c in str:
        reversedStr = c + reversedStr

    return reversedStr
    
---

import reverseStr

userInput = input('문자열 입력: ')
result = reverseStr.reverseStr(userInput)

print(result)

💔

  • for문에 str의 등장이라... 😀
profile
문과이과예체능통합형인재

0개의 댓글