2015-02-21 6 views
-4

Мне было скучно в один прекрасный день и решил сделать простой калькулятор python, который попросил два номера и выполнил и выполнил операцию. Это началось как 64-строчная часть кода, и я упростил ее теперь всего лишь 9 строк кода !!!. Мне было просто любопытно, может ли кто-нибудь сделать код менее 9 строк. Возможно ли иметь меньше строк и выполнять одно и то же действие? Пожалуйста, напишите, что вы можете придумать, я не думаю, что он может получить меньше 9 строк. Вот что я написал и полностью функционально. Python 2.7:Simple Python Calculator Challenge 2.7

num1 = float(raw_input("What will be your first number?:\n")) 
num2 = float(raw_input("What will be your second number?:\n")) 
Q_3 = raw_input("What will be your operation?:\n") 
if Q_3 == "+": print(num1 + num2) 
if Q_3 == "-": print(num1 - num2) 
if Q_3 == "/": print(num1/num2) 
if Q_3 == "*": print(num1 * num2) 
if Q_3 == "%": print(num1 % num2) 
if Q_3 == "**": print(num1 ** num2) 
+3

Минимизация количества строк кода не создает хорошую программу, вы должны попытаться оптимизировать свою программу другими способами. – Misch

+0

И что именно должно быть достигнуто за счет сокращения кодовых строк? И это не полностью функционально, если оно не обрабатывает ошибки ввода. –

+2

Это просто из любопытства. Мне было любопытно, каково минимальное количество строк кода, необходимых для создания функционального калькулятора. (Предполагая, что пользователь вводит только целые числа) – Daniel

ответ

3

5 линий:

num1 = float(raw_input("What will be your first number?:\n")) 
num2 = float(raw_input("What will be your second number?:\n")) 
Q_3 = raw_input("What will be your operation?:\n") 
if Q_3 in ("+", "-", "/", "*", "%", "**"): 
    print(eval("%s %s %s" % (num1, Q_3, num2))) 

Или с 4-мя линиями:

num1, num2, Q_3 = map(raw_input, ["What will be your first number? ", 
    "What will be your second number? ", "What will be your operation? "]) 
if Q_3 in ("+", "-", "/", "*", "%", "**"): 
    print(eval("%s %s %s" % (float(num1), Q_3, float(num2)))) 
+0

Спасибо, человек, это здорово! И вы даже можете сделать это 4 линии !!! – Daniel

+0

хорошо подумав хорошо сделано. –

0

Благодаря JuniorCompressor новый код калькулятор может быть упрощена до 2-х строк !!

num1, num2, Q_3 = map(raw_input, ["What will be your first number? ", "What will be your second number? ", "What will be your operation? "]) 
if Q_3 in ("+", "-", "/", "*", "%", "**"): print(eval("%s %s %s" % (float(num1), Q_3, float(num2)))) 
+0

Существует неофициальный принцип, который предполагает, что у нас есть только 79 столбцов для каждой строки – JuniorCompressor