실습(내장함수, 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. 결과 출력
![](https://blog.kakaocdn.net/dn/cMu7RQ/btrmYb7hpqm/2PGstnJmuhHkOTBBvtZM80/img.png)
※ 전체 코드
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 |