2301_80102446 2023-10-06 22:06 采纳率: 0%
浏览 47

编写程序将用户输入华氏度转换为摄氏度,或将输入的摄氏度转换为华氏度

编写程序将用户输入华氏度转换为摄氏度,或将输入的摄氏度转换为华氏度。
输入格式:
输入要求:1)摄氏度可采用大小写字母C、c结尾,温度可以是整数或小数,如:12.34C指摄氏度12.34度;2)华氏度可采用大小写字母F、f结尾,温度可以是整数或小数,如:87.65F指华氏度87.65度;3)输入格式错误时,输出提示:输入格式错误.
输出格式:
输出转换后温度,保留两位小数.

  • 写回答

2条回答 默认 最新

  • 梦幻精灵_cq 2023-10-06 22:41
    关注

    • 代码运行效果截屏图片

      img


      img


      img


      img


      img


      img

    代码

    #!/sur/bin/nve python
    # coding: utf-8
    
    s = input('\n输入:').strip()
    
    sign = 1
    a = s[0]
    
    if not a.isdigit():
    
        if a == '-':
            sign = -1
            s = s[1:]
        elif a == '+':
            s = s[1:]
            
        else:
            print(f"\n{' 输入错误!':~^35}")
            exit()
    
    if s[-1] not in list('cfCF') or not s[:-1].replace('.', '').isdigit():
        print(f"\n{' 输入错误!':~^35}")
        exit()
    
    print('\n输出:', end='')
    flag, num = s[-1], float(s[:-1])
    
    if num == 0:
        sign = 1
        
    if flag in list('fF'):
        num2 = (num-32)/1.8 if sign > 0 else sign*(abs(num)+32)/1.8
        print(f"华氏{sign*num}℉ = 摄氏{num2:.2f}℃")
    else:
        num2 = 32 + 1.8*num if sign > 0 else (32 - 1.8*abs(num))*sign
        print(f"摄氏{sign*num}℃ = 华氏{num2:.2f}℉")
    
    

    评论 编辑记录

报告相同问题?

问题事件

  • 创建了问题 10月6日