python刚开学 2021-10-20 18:20 采纳率: 87.5%
浏览 18
已结题

用python3写了一个简单的小功具,请帮我优化,

自定义函数:

def changfangxing(a,b):
    s = a*b
    return s

def sanjiaoxing(a,h):
    s = (a*h)/2
    return s

def yuan(r):
    s = 3.14*r*r
    return s

def chengfa(a,b):
    j = a*b
    return j

def chufa(a,b):
    j = a/b
    return j

def jiafa(a,b):
    j = a+b
    return j

def jianfa(a,b):
    j = a-b
    return j

def jiujiu():
    for i in range(1,10):
        for j in range(1,i+1):
            print('%d*%d=%d' % (j,i,i*j),end='\t')
def chengfabiao():
    return jiujiu()



import gongju

while True:
    
    num = int(input('请输入数字选择工具:\n1长方形面积计算\n2三角形面积计算\n3圆形面积计算\n4九九乘法表\n5乘法计算\n6除法计算\n7加法计算\n8减法计算\n0退出\n'))

    if num <0 or num> 9:
        print()
        print('请输入1-9之间的数字')
        print()
        l = input('按回车继续')
        if not l:
            continue
    
    if num == 0:
        print('退出')
        break

    if num == 1:
        cfx = gongju.changfangxing(int(input('请输入长度:')),int(input('请输入宽度:')))
        print('长方形面积为:%.2f' % cfx)
        print()
        l = input('按回车继续')
        if not l:
            continue

    if num == 2:
        sjx = gongju.sanjiaoxing(int(input('请输入底边长度:')),int(input('请输入高度:')))
        print('三角形的面积为:%.2f' % sjx)
        print()
        l = input('按回车继续')
        if not l:
            continue

    if num == 3:
        y = gongju.yuan(int(input('请输入半径:')))
        print('圆的面积为:%.2f' % y)
        print()
        l = input('按回车继续')
        if not l:
            continue

    if num == 4:
        cfb = gongju.chengfabiao()
        print(cfb)
        print()
        l = input('按回车继续')
        if not l:
            continue

    if num == 5:
        cf = gongju.chengfa(int(input('请输入:')),int(input('请输入:')))
        print('结果为:%d' % cf)
        print()
        l = input('按回车继续')
        if not l:
            continue

    if num == 6:
        chu = gongju.chufa(int(input('请输入被除数:')),int(input('请输入除数:')))
        print('商为:%d' % chu)
        print()
        l = input('按回车继续')
        if not l:
            continue

    if num == 7:
        jia = gongju.jiafa(int(input('请输入数字:')),int(input('请输入数字:')))
        print('和为:%d' % jia)
        print()
        l = input('按回车继续')
        if not l:
            continue

    if num == 8:
        jf = gongju.jianfa(int(input('请输入被减数:')),int(input('请输入减数:')))
        print('差为:%d' % jf)
        print()
        l = input('按回车继续')
        if not l:
            continue

请帮我优化一下。如果能换一种思路写出来更好。谢谢

  • 写回答

1条回答 默认 最新

  • 小白华 2021-10-21 11:19
    关注

    用不着写那么复杂

    while True:
        num = int(input('''请输入数字选择工具:
        1:长方形面积计算
        2:三角形面积计算
        3:圆形面积计算
        4:九九乘法表
        5:乘法计算
        6:除法计算
        7:加法计算
        8:减法计算
        0:退出
        '''))
        if num < 0 or num > 8:
            input('请输入0-8之间的数字(按回车继续)!')
            continue
    
        elif num == 0:
            print('退出')
            break
    
        elif num == 1:
            cfx = int(input('请输入长度:')) * int(input('请输入宽度:'))
            print('长方形面积为:%.2f' % cfx)
    
        elif num == 2:
            sjx = int(input('请输入底边长度:')) * int(input('请输入高度:')) / 2
            print('三角形的面积为:%.2f' % sjx)
    
        elif num == 3:
            y = int(input('请输入半径:')) ** 2 * 3.14
            print('圆的面积为:%.2f' % y)
    
        elif num == 4:
            for i in range(1, 10):
                for j in range(1, i+1):
                    print('%d*%d=%d' % (j, i, i*j), end='\t')
    
        elif num == 5:
            cf = int(input('请输入:')) * int(input('请输入:'))
            print('结果为:%d' % cf)
    
        elif num == 6:
            chu = int(input('请输入被除数:')) / int(input('请输入除数:'))
            print('商为:%d' % chu)
    
        elif num == 7:
            jia = int(input('请输入数字:')) + int(input('请输入数字:'))
            print('和为:%d' % jia)
    
        elif num == 8:
            jf = int(input('请输入被减数:')) - int(input('请输入减数:'))
            print('差为:%d' % jf)
    
        input('按回车继续')
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 10月30日
  • 已采纳回答 10月22日
  • 修改了问题 10月21日
  • 创建了问题 10月20日

悬赏问题

  • ¥15 微信会员卡接入微信支付商户号收款
  • ¥15 如何获取烟草零售终端数据
  • ¥15 数学建模招标中位数问题
  • ¥15 phython路径名过长报错 不知道什么问题
  • ¥15 深度学习中模型转换该怎么实现
  • ¥15 HLs设计手写数字识别程序编译通不过
  • ¥15 Stata外部命令安装问题求帮助!
  • ¥15 从键盘随机输入A-H中的一串字符串,用七段数码管方法进行绘制。提交代码及运行截图。
  • ¥15 TYPCE母转母,插入认方向
  • ¥15 如何用python向钉钉机器人发送可以放大的图片?