大家看看Python怎么编简易计算器
不需要任何库
首先创建一个文件夹,里面创建一个main.py文件。
--main.py
print("The programme can count'+ - * / ^ root'.")
print("When you use'root',Exponent is before it,and power is next to it.")
print("Only 2 numbers.")
先输出几句用户使用的提醒:
“这个程序可以使用加减乘除,乘方和开方。”
“使用开方时先指数,再输幂。”
“计算机只能提供两个数的运算。”
再是一个无限循环
--main.py
while True:
然后再声明:如果要退出就输入‘q’
--main.py
print("You can enter 'q' at any time when you quit.")
接着写数字输入,及如果输入‘q’时的处理:
先输入第一个数字,存进变量num1,当它为q时,直接退出循环,否则将它转为int整数类型,供后面进行运算。
再是输入num2,即运算符号(operation)为q时,也跳出循环。(因为num2输入时,程序自动将它设为str字符串类型,所以不用再转换类型)。
最后输入的第二个数字num3也与num1同理。
--main.py
num1 = input("The first number: ")
if num1 == 'q':
break
else:
num1 = int(num1)
num2 = input("The operation is: ")
if num2 == 'q':
break
num3 = input("The second number is: ")
if num3 == 'q':
break
else:
num3 = int(num3)
接着分别判断num2为‘+’,‘-’,‘*’,‘/’,‘^’,‘root’的情况
--main.py
if num2 == '+':
print(num1+num3)
elif num2 == '-':
print(num1-num3)
elif num2 == '*':
print(num1*num3)
elif num2 == '/':
if num3 != 0:
print(num1/num3)
else:
print("Divided by zero!")
continue
elif num2 == '^':
print(num1**num3)
elif num2 == 'root':
if num3 < 0 and num1 % 2 == 0:
print("When exponent is even,power can't < 0!")
continue
else:
print(num3**(1/num1))
在处理除法或开方时,特别地用if语句判断除数为0和指数为偶数,幂为负数的情况。
最后,和大家说一句告别。注意代码不用缩进。
--main.py
print("Bye!")
整个文件代码如下:
--Caculator/main.py
print("The programme can count'+ - * / ^ root'.")
print("When you use'root',Exponent is before it,and power is next to it.")
print("Only 2 num.")
while True:
print("You can enter 'q' at any time when you quit.")
num1 = input("The first number: ")
if num1 == 'q':
break
else:
num1 = int(num1)
num2 = input("The operation is: ")
if num2 == 'q':
break
num3 = input("The second number is: ")
if num3 == 'q':
break
else:
num3 = int(num3)
if num2 == '+':
print(num1+num3)
elif num2 == '-':
print(num1-num3)
elif num2 == '*':
print(num1*num3)
elif num2 == '/':
if num3 != 0:
print(num1/num3)
else:
print("Divided by zero!")
continue
elif num2 == '^':
print(num1**num3)
elif num2 == 'root':
if num3 < 0 and num1 % 2 == 0:
print("When exponent is even,power can't < 0!")
continue
else:
print(num3**(1/num1))
print("Bye!")
当然,运算除法和开方的代码也可以用try-except代码代替:
elif num2 == '/':
try:
print(num1/num3)
except ZeroDivisionError:
print("Divided by zero!")
continue
elif num2 == 'root':
try:
print(num3**(1/num1))
except ValueError:
print("When the exponent is even,power can't < 0!")
continue
有些更复杂的运算,代码可能更长,这里就不说了哈。
还有,最后要庆祝言和小姐姐10周年生日快乐!