程序设计方法学作业:任选C++、Java、C#、JavaScript、Python中的一门语言,编写完整的二元计算器的程序。前段时间学习了python,正好用来练练手。整体代码比较简单,没用到什么知识点
整体框架
写了两个文件,main.py和tools.py。
main文件中主要负责不同模块的条件判断调用,tools中写了不同的函数。
知识点
1.python内置进制转换函数
# 十进制转换为其他进制
dec = int(input("请输入十进制数字:"))
print("转换为二进制为:", bin(dec))
print("转换为八进制为:", oct(dec))
print("转换为十六进制为:", hex(dec))
# 其他进制转换为十进制
string2 = '111000101'
print('二进制字符串转换成十进制数为:',int(string1,2))
string8 = '1234567'
print('八进制字符串转换成十进制数为:',int(string8,8))
string16 = 'ABCD'
print('十六进制字符串转换成十进制数为:',int(string16,16))
2.in 和not in
可以用来判断字符串是否位于某个字符串字典中,其他类型功能相似。
while sci_ope not in ["1", "2"]:
3.input接收多个值
直接定义多个变量,同时input
num_a, ope, num_b = input("请输入操作")
4.平方、根号
import math,调用pow进行平方操作,sqrt进行开方操作。
print("%d² = %d" % (ope, math.pow(ope, 2)))
print("√%d = %.20f" % (ope, math.sqrt(ope))
全部代码
main.py
# 编写完整的二元计算器的程序
import tools
version = "V 1.0"
while True:
operate_str = tools.show_wel(version)
if operate_str in ["1", "2", "3", "4"]:
# 标准计算器(+ - * /)
if operate_str == "1":
tools.stan_cal()
# 科学计算器(平方 三角运算等)
elif operate_str == "2":
sci_ope = tools.sci_cal_wel()
tools.sci_cal(sci_ope)
# 程序员计算器(进制转换)
elif operate_str == "3":
tools.pro_cal()
# 退出系统
elif operate_str == "4":
print("欢迎再次使用计算器!")
break
else:
print("您的输入错误,请重新输入!")
tools.py
import math
def show_wel(version):
"""
显示计算器首界面
:param version: 版本号
:return: 返回选择的不同操作
"""
print("*" * 50)
print("欢迎使用简易计算器 %s " % version, end="\n\n")
print("请选择您要实现的功能:")
print("1.标准")
print("2.科学")
print("3.程序员")
print("4.退出系统")
print("*" * 50)
ope = input("请输入您想进行的操作:")
print("您选择的操作是:%d" % int(ope))
return ope
def sci_cal_wel():
"""
显示科学计算器首界面
:return:
"""
print("*" * 50)
print("选择要进行的操作:")
print("1.X²")
print("2.√x")
sci_ope = input("请输入选择的操作:")
while sci_ope not in ["1", "2"]:
sci_ope = input("您的输入有误,请重新输入:")
return sci_ope
# 标准计算器操作
# eval() 函数用来执行一个字符串表达式,并返回表达式的值
def stan_cal():
"""
该函数实现标准计算器操作,包括加减乘除以及取余运算
"""
num_a, ope, num_b = input("请输入操作")
if ope == "+":
print("%d + %d = %d" % (int(num_a), int(num_b), int(num_a) + int(num_b)))
elif ope == "-":
print("%d - %d = %d" % (int(num_a), int(num_b), int(num_a) - int(num_b)))
elif ope == "*":
print("%d * %d = %d" % (int(num_a), int(num_b), int(num_a) * int(num_b)))
elif ope == "/":
print("%d / %d = %.20f" % (int(num_a), int(num_b), int(num_a) / int(num_b)))
elif ope == "%":
print("%d %% %d = %d" % (int(num_a), int(num_b), int(num_a) % int(num_b)))
def sci_cal(sci_ope):
"""
实现简单科学计算器,仅包括平方操作和开根操作
:param sci_ope: 传递过来要进行的操作
"""
if sci_ope == "1":
ope = int(input("请输入操作数:"))
print("%d² = %d" % (ope, math.pow(ope, 2)))
elif sci_ope == "2":
ope = int(input("请输入操作数:"))
print("√%d = %.20f" % (ope, math.sqrt(ope)))
def pro_cal():
"""
实现简单程序员计算器,实现十进制转换为二进制、八进制、十六进制
"""
dec = int(input("请输入十进制数字:"))
print("转换为二进制为:", bin(dec))
print("转换为八进制为:", oct(dec))
print("转换为十六进制为:", hex(dec))
完整项目下载:
我的GitHub(calculator.zip)