Crossin的编程教室

标题: python的循环问题,想做一个摄氏度华氏度互换程序 [打印本页]

作者: ericvvp    时间: 2020-12-11 09:26
标题: python的循环问题,想做一个摄氏度华氏度互换程序
python3.9
想做一个摄氏度和华氏度互转程序,
如果单位输错可以重输(做一个while循环)
pycham提示我13行elif有SyntaxError: invalid syntax的错误
希望有大神帮帮忙,看一下我在互转那里就出现问题了,我写了三个版本的都运行不来,还没写到while部分就不行了。
涉及的公式:
华氏度=32+摄氏度×1.8
摄氏度=(华氏度-32)÷1.8
源码部分:https://www.verybin.com/?fecb9707efedf695#daybbguIJNLWe7rV/cgrD8Eot1xywWoxEmFZbSjP5MM=
  1. #python3.9
  2. """
  3. 摄氏度和华氏度互转
  4. 做个单位输错可以重输的循环
  5. verson: 0.1
  6. """
  7. value = int(input('请输入数据: '))
  8. unit = input('单位: ')
  9. degree = (value-32)//1.8
  10. fahrenheit = (value*1.8)+32
  11. if unit == 'c': #摄氏度转华氏度
  12.     print('%.2f摄氏度 = %.2f华氏度' % (degree, fahrenheit)
  13. elif unit == 'f': #f转c
  14.     print('%.2f华氏度 = %.2f摄氏度' % (fahrenheit, degree)

  15. """
  16. 摄氏度和华氏度互转
  17. 做个单位输错可以重输的循环
  18. verson: 0.2
  19. """
  20. # value = int(input('请输入数据: '))
  21. # unit = input('单位: ')
  22. # if unit == 'c': #摄氏度转华氏度
  23. #     print('%.2f摄氏度 = %.2f华氏度' % (value, (value-32)/1.8))
  24. # elif unit == 'f':
  25. #     print('%.2f华氏度 = %.2f摄氏度' % (value, (value*1.8)+32))

  26. """
  27. 摄氏度和华氏度互转
  28. 做个单位输错可以重输的循环
  29. verson: 0.3
  30. """
  31. value = int(input('请输入数据: '))
  32. unit = input('单位: ')
  33. if unit == 'c': #摄氏度转华氏度
  34.     print('%.f摄氏度 = %.f华氏度' % (value, (value-32)//18))
  35. elif unit == 'f': #f转c
  36.     print('%.f华氏度 = %.f摄氏度' % (value, (value*1.8)+32))
  37. else:
  38.     print(input('重新输入单位:'))
复制代码

作者: crossin先生    时间: 2020-12-11 13:00
你12行和14行都少半个括号
作者: ericvvp    时间: 2020-12-12 03:47
本帖最后由 ericvvp 于 2020-12-12 04:23 编辑
crossin先生 发表于 2020-12-11 13:00
你12行和14行都少半个括号

改后:
  1. """
  2. 摄氏度和华氏度互转
  3. 如果单位输错可以重输
  4. verson: 0.4
  5. """
  6. value = int(input('请输入数据: '))
  7. unit = input('单位: ')
  8. degree = (value-32)/1.8
  9. fahrenheit = (value*1.8)+32
  10. if unit == 'c': #摄氏度转华氏度
  11.     print('%.f摄氏度 = %.1f华氏度' % (value, fahrenheit))
  12. elif unit == 'f': #f转c
  13.     print('%.f华氏度 = %.1f摄氏度' % (value, degree))
  14. else:
  15.     print('无法识别数据,程序结束')
复制代码
不过我想用while循环做一个,假如单位输错可以跳回去重新执行输入单位和数据的程序,感谢大佬答疑
作者: FERRYMAN    时间: 2021-2-9 17:07
  1. tem = input('请输入温度(数字):')   #此时tem为字符串形式
  2. unit = input("单位:('°C'或'°F')")
  3. danwei = False
  4. while danwei == False:
  5.     print('如果单位输入错误,请输入"quit"以重新输入,无误请按回车')
  6.     a = input()
  7.     if a == 'quit':
  8.         unit = input('输入新单位:')
  9.     else:
  10.         danwei = True
  11. if unit == '°C':
  12.     print('%s摄氏度 = %s华氏度' % (tem, str((float(tem)*1.8)+32)))  
  13. elif unit == '°F':
  14.     print('%s华氏度 = %s摄氏度' % (tem, str((float(tem)-32)/1.8)))
  15.     #通过形式的转换可以避免因为tem的输入为浮点数而出错
复制代码
看到之后有点灵感,就写了一下。

可能楼主看不到。

但是给自己练习一下肯定是好的




欢迎光临 Crossin的编程教室 (https://bbs.crossincode.com/) Powered by Discuz! X2.5