본문 바로가기

Python

[Python] 13

실습(내장함수, Method 정리)

문제

"""
    1. 무한루프로 사용자에게 수식을 입력받는다.
    2. 수식 대신 'X'를 입력하면 종료한다.
    3. 수식을 계산해서 수식과 결과를 출력한다.
       총 40칸으로 오른쪽 정렬해서 결과를 출력
    4. 사용자가 수식을 계속해서 입력하면 기존 수식들을 출력하고 기존 결과에 추가로 수식을 계산한 결과를 출력한다.
    5. 수식 대신 'C'를 입력하면 0을 출력하고 수식들을 다 비운다.
"""

 

0. 선언

from myutils import *
exp_list = [] # exp_list를 리스트로 선언한다.
isfirst = True

1. 무한루프로 사용자에게 수식을 입력받는다.(X를 입력하면 종료한다.)

while True:

 

1-1. 입력받은 수식은 exp에 저장하고, 그 동안 입력받은 수식들은 exp_list에 저장

exp = input("수식을 입력하세요(종료는 'X', 초기화는 'C') : ")

1-2. X를 입력하면 종료, C를 입력하면 0을 출력하고 초기화 후 루프 진행

if exp == 'X':
    break
elif exp == 'C':
    isfirst = True
    print('0')
    exp_list.clear()
    continue

1-3. 수식을 계산한다.

if isfirst == True:
    exp1 = exp
else:
    exp1 = str(result) + ' ' + exp  # ' '를 중간에 넣어주면 버그를 오류가 나도록 처리 가능
                                    # (버그 : 8+8(=16) 후 *7이 아닌 5*7을 입력한 경우 : 165*7로 결과가 출력된다)

result = eval(exp1)
isfirst = False
 

1-4. 수식을 저장한다.

exp_list.append(exp)

1-5. 저장한 수식을 한 줄씩 출력한다.

for e in enumerate(exp_list): # 마지막 결과만 색상 변경
    if (e[0] == len(exp_list) - 1):
        print(RED + format(e[1], '>40') + END)
    else:
        print(GREEN + format(e[1], '>40') + END)

1-6. 계산 결과를 출력한다.

print(YELLOW + '-'*40 + END)
print(format(result, '>40'))

 

2. 결과 출력

결과

 

※ 전체 코드

from myutils import *

# 0. 타이틀을 출력한다.
cprintTitle("Calculator for Engineering ")

exp_list = []  # exp_list를 리스트로 선언한다.
isfirst = True

# 1. 무한루프로 사용자에게 수식을 입력받는다.(X를 입력하면 종료한다.)
while True:

# 1-1. 입력받은 수식은 exp에 저장하고, 그 동안 입력받은 수식들은 exp_list에 저장
    exp = input("수식을 입력하세요(종료는 'X', 초기화는 'C') : ")

# 1-2. X를 입력하면 종료, C를 입력하면 0을 출력하고 초기화 후 루프 진행
    if exp == 'X':
        break
    elif exp == 'C':
        isfirst = True
        print('0')
        exp_list.clear()
        continue

# 1-3. 수식을 계산한다.
    if isfirst == True:
        exp1 = exp
    else:
        exp1 = str(result) + ' ' + exp  # ' '를 중간에 넣어주면 버그를 오류가 나도록 처리 가능
                                        # (버그 : 8+8(=16) 후 *7이 아닌 5*7을 입력한 경우 : 165*7로 결과가 출력된다)

    result = eval(exp1)
    isfirst = False

# 1-4. 수식을 저장한다.
    exp_list.append(exp)

# 1-5. 저장한 수식을 한 줄씩 출력한다.
    for e in enumerate(exp_list):  # 마지막 결과만 색상 변경
        if (e[0] == len(exp_list) - 1):
            print(RED + format(e[1], '>40') + END)
        else:
            print(GREEN + format(e[1], '>40') + END)

# 1-6. 계산 결과를 출력한다.
    print(YELLOW + '-'*40 + END)
    print(format(result, '>40'))

'Python' 카테고리의 다른 글

[Python] 15  (0) 2021.12.05
[Python] 14  (0) 2021.12.04
[Python] 12  (0) 2021.12.01
[Python] 11  (0) 2021.11.28
[Python] 10  (0) 2021.11.27