Daily Log

[Python] [기초] 사칙연산 계산기 구현하기

고등학생 멘토링 겸 작성하게 된 Python 언어 기반의 사칙 연산 계산기 소스코드입니다.

구현하면서 코드의 들여쓰기로 블록(block)을 구분하는 특징을 가진 Python (파이썬). 이는 다른 언어들과 구분되는 Python (파이썬) 만이 가지는 독특한 특징 중 하나로, 들여쓰기가 달라지면 다른 블록으로 인식합니다.

들여쓰기는 가독성이 뛰어나다는 장점을 가지고 있지만, 소스를 수정하거나 편집하는 경우에 들여쓰기가 변경되면 많은 문제가 발생할 소지가 있습니다. 예를 들어, 팀 협업 시, 소스 코드를 수정하여 들여쓰기가 변경되었다면, 어떤 부분에서 오류가 발생했는지 파악하기가 어렵습니다.

 

  소스 코드

while True:
    a=float(input('n1:'))
    b=float(input('n2:'))

    if a==b==0:
        print('종료합니다.')
    c=input('연산자:')
    if c=='*':
        d=a*b
        print('계산값은', d, '입니다.')
        continue
    if c=='+':
        d=a+b
        print('계산값은', d, '입니다.')
        continue
    if c=='-':
        d=a-b
        print('계산값은', d, '입니다.')
        continue
    if c=='/':
        d=a/b
        print('계산값은', d, '입니다.')
        continue 

    if c!='+' or c!='-' or c!='*' or c!='/': 
        while True:
            print('연산자를 다시 입력하세요.')
            c=input('연산자:')

            if c=='*':
                d=a*b
                print('계산값은', d, '입니다.')
                break
            if c=='+':
                d=a+b
                print('계산값은', d, '입니다.')
                break
            if c=='-':
                d=a-b
                print('계산값은', d, '입니다.')
                break
            if c=='/':
                d=a/b
                print('계산값은', d, '입니다.')
                break

 

실행 결과

n1:
3

n2:
7

연산자:
$
연산자를 다시 입력하세요.

연산자:
&
연산자를 다시 입력하세요.

연산자:
☆
연산자를 다시 입력하세요.

연산자:
*
계산값은 21.0 입니다.

n1:
67

n2:
3

연산자:
-
계산값은 64.0 입니다.

n1:
4

n2:
6

연산자:
+
계산값은 10.0 입니다.

n1:
9

n2:
3

연산자:
/
계산값은 3.0 입니다.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

%d bloggers like this: