如何允许用户在计算器中的运算中不输入任何数字
How to allow user to enter no number for an operation in a calculator
这是我在 Python 中的第三个项目。我正在研究一个计算器,我有所有的操作等,工作得很好。但是,我想让用户不必在两个操作(即欧拉数和 Pi)上输入第二个数字,并且计算器仍然可以工作。例如,如果我现在想将一个数乘以 pi,我需要输入“1”作为第二个数。我想消除这种需要。
非常感谢您提供的任何帮助。
import math
def welcome():
print('''
Welcome to Calculator
''')
# Define our function
welcome()
def calculate():
operation = input('''
Please type in the math operation you would like to complete:
+ for addition
- for subtraction
* for multiplication
/ for division
** for power
% for modulo
pi to multiply by Pi
e to multiply by Euler's Number
''')
number_1 = float(input('Please enter the first number: '))
number_2 = float(input('Please enter the second number: '))
if operation == 'e':
print('{} * e = '.format(number_1, math.e))
print(number_1 * math.e)
elif operation == 'pi':
print('{} * Pi = '.format(number_1, math.pi))
print(number_1 * math.pi)
elif operation == '+':
print('{} + {} = '.format(number_1, number_2))
print(number_1 + number_2)
elif operation == '-':
print('{} - {} = '.format(number_1, number_2))
print(number_1 - number_2)
elif operation == '*':
print('{} * {} = '.format(number_1, number_2))
print(number_1 * number_2)
elif operation == '/':
print('{} / {} = '.format(number_1, number_2))
print(number_1 / number_2)
elif operation == '**':
print('{} ** {} ='.format(number_1, number_2))
print(number_1 ** number_2)
elif operation == '%':
print('{} % {} ='.format(number_1, number_2))
print(number_1 % number_2)
else:
print('You have not typed a invalid operator, please run the program again.')
# Add again() function to calculate() function
again()
def again():
calc_again = input('''
Do you want to calculate again?
Please type Y for YES or N for NO.
''')
if calc_again.upper() == 'Y':
calculate()
elif calc_again.upper() == 'N':
print("Thank you for using the calculator. I'll be here whenever you need me.")
else:
again()
# Call calculate() outside of the function
calculate()
在上面加一个if条件就可以了
number_2 = float(input('Please enter the second number: '))
像这样
if(operation != 'e' || operation != 'pi'):
number_2 = float(input('Please enter the second number: '))
着眼于您需要更改的特定片段,这是一种方法:
...
number_1 = float(input('Please enter a number: '))
if operation == 'e' or operation == 'pi':
if operation == 'e':
print('{} * e = '.format(number_1, math.e))
print(number_1 * math.e)
elif operation == 'pi':
print('{} * Pi = '.format(number_1, math.pi))
print(number_1 * math.pi)
else:
number_2 = float(input('Please enter a second number: '))
if operation == '+':
print('{} + {} = '.format(number_1, number_2))
print(number_1 + number_2)
elif operation == '-':
print('{} - {} = '.format(number_1, number_2))
print(number_1 - number_2)
...
在对 e 和 pi 进行条件检查后,将第二个数字的输入移动到所有循环中,即可解决此问题,而无需对代码进行太多更改。
举个例子:
number_1 = float(input('Please enter the first number: '))
if operation == 'e':
print('{} * e = '.format(number_1, math.e))
print(number_1 * math.e)
elif operation == 'pi':
print('{} * Pi = '.format(number_1, math.pi))
print(number_1 * math.pi)
elif operation == '+':
number_2 = float(input('Please enter the second number: '))
print('{} + {} = '.format(number_1, number_2))
print(number_1 + number_2)
这不符合最佳做法,但它应该按照您的意愿完成。如果您想要比这更好的方法,我可以编辑此答案以包括改进及其更好的原因。
这是我在 Python 中的第三个项目。我正在研究一个计算器,我有所有的操作等,工作得很好。但是,我想让用户不必在两个操作(即欧拉数和 Pi)上输入第二个数字,并且计算器仍然可以工作。例如,如果我现在想将一个数乘以 pi,我需要输入“1”作为第二个数。我想消除这种需要。 非常感谢您提供的任何帮助。
import math
def welcome():
print('''
Welcome to Calculator
''')
# Define our function
welcome()
def calculate():
operation = input('''
Please type in the math operation you would like to complete:
+ for addition
- for subtraction
* for multiplication
/ for division
** for power
% for modulo
pi to multiply by Pi
e to multiply by Euler's Number
''')
number_1 = float(input('Please enter the first number: '))
number_2 = float(input('Please enter the second number: '))
if operation == 'e':
print('{} * e = '.format(number_1, math.e))
print(number_1 * math.e)
elif operation == 'pi':
print('{} * Pi = '.format(number_1, math.pi))
print(number_1 * math.pi)
elif operation == '+':
print('{} + {} = '.format(number_1, number_2))
print(number_1 + number_2)
elif operation == '-':
print('{} - {} = '.format(number_1, number_2))
print(number_1 - number_2)
elif operation == '*':
print('{} * {} = '.format(number_1, number_2))
print(number_1 * number_2)
elif operation == '/':
print('{} / {} = '.format(number_1, number_2))
print(number_1 / number_2)
elif operation == '**':
print('{} ** {} ='.format(number_1, number_2))
print(number_1 ** number_2)
elif operation == '%':
print('{} % {} ='.format(number_1, number_2))
print(number_1 % number_2)
else:
print('You have not typed a invalid operator, please run the program again.')
# Add again() function to calculate() function
again()
def again():
calc_again = input('''
Do you want to calculate again?
Please type Y for YES or N for NO.
''')
if calc_again.upper() == 'Y':
calculate()
elif calc_again.upper() == 'N':
print("Thank you for using the calculator. I'll be here whenever you need me.")
else:
again()
# Call calculate() outside of the function
calculate()
在上面加一个if条件就可以了
number_2 = float(input('Please enter the second number: '))
像这样
if(operation != 'e' || operation != 'pi'):
number_2 = float(input('Please enter the second number: '))
着眼于您需要更改的特定片段,这是一种方法:
...
number_1 = float(input('Please enter a number: '))
if operation == 'e' or operation == 'pi':
if operation == 'e':
print('{} * e = '.format(number_1, math.e))
print(number_1 * math.e)
elif operation == 'pi':
print('{} * Pi = '.format(number_1, math.pi))
print(number_1 * math.pi)
else:
number_2 = float(input('Please enter a second number: '))
if operation == '+':
print('{} + {} = '.format(number_1, number_2))
print(number_1 + number_2)
elif operation == '-':
print('{} - {} = '.format(number_1, number_2))
print(number_1 - number_2)
...
在对 e 和 pi 进行条件检查后,将第二个数字的输入移动到所有循环中,即可解决此问题,而无需对代码进行太多更改。
举个例子:
number_1 = float(input('Please enter the first number: '))
if operation == 'e':
print('{} * e = '.format(number_1, math.e))
print(number_1 * math.e)
elif operation == 'pi':
print('{} * Pi = '.format(number_1, math.pi))
print(number_1 * math.pi)
elif operation == '+':
number_2 = float(input('Please enter the second number: '))
print('{} + {} = '.format(number_1, number_2))
print(number_1 + number_2)
这不符合最佳做法,但它应该按照您的意愿完成。如果您想要比这更好的方法,我可以编辑此答案以包括改进及其更好的原因。