设为首页收藏本站

Crossin的编程教室

 找回密码
 立即加入
查看: 9088|回复: 3
打印 上一主题 下一主题

python的循环问题,想做一个摄氏度华氏度互换程序

[复制链接]

1

主题

0

好友

17

积分

新手上路

Rank: 1

跳转到指定楼层
楼主
发表于 2020-12-11 09:26:02 |只看该作者 |倒序浏览
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('重新输入单位:'))
复制代码
回复

使用道具 举报

174

主题

45

好友

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

沙发
发表于 2020-12-11 13:00:29 |只看该作者
你12行和14行都少半个括号
#==== Crossin的编程教室 ====#
微信ID:crossincode
网站:http://crossincode.com
回复

使用道具 举报

1

主题

0

好友

17

积分

新手上路

Rank: 1

板凳
发表于 2020-12-12 03:47:17 |只看该作者
本帖最后由 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循环做一个,假如单位输错可以跳回去重新执行输入单位和数据的程序,感谢大佬答疑
回复

使用道具 举报

3

主题

1

好友

111

积分

注册会员

Rank: 2

地板
发表于 2021-2-9 17:07:01 |只看该作者
  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的输入为浮点数而出错
复制代码
看到之后有点灵感,就写了一下。

可能楼主看不到。

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

使用道具 举报

您需要登录后才可以回帖 登录 | 立即加入

QQ|手机版|Archiver|Crossin的编程教室 ( 苏ICP备15063769号  

GMT+8, 2024-4-26 13:01 , Processed in 0.016375 second(s), 21 queries .

Powered by Discuz! X2.5

© 2001-2012 Comsenz Inc.

回顶部