【问题标题】:Percentage as user input作为用户输入的百分比
【发布时间】:2022-01-22 13:44:00
【问题描述】:

有没有办法添加百分比作为用户输入?

谷歌没有帮助。


提前谢谢

更新

这是一个简单的代码:-

dialy_average = float(input('Average daily increase: '))
print(dialy_average)

这是输出:-

Average daily increase: 30%
Traceback (most recent call last):
  File "C:\Users\jimsrc\Desktop\repo\New folder\test2.py", line 1, in <module>
    dialy_average = float(input('Average daily increase: '))
ValueError: could not convert string to float: '30%'

【问题讨论】:

  • 什么?用户输入是什么意思?只需添加百分比符号....
  • 您的意思是让用户从input() 提示符中输入“30%”吗?您可以只切掉最后一个字符并将字符串的其余部分转换为数字。
  • @GreenCloakGuy 我是初学者。请给我看看好吗?
  • int(input("Average daily increase: ")[:-1])/100
  • @Guimute 这不是硬编码的吗?如果有人进入 50 % 会发生什么?

标签: python-3.x


【解决方案1】:

如果您希望用户在输入中添加字符,您可以使用正则表达式对其进行解析:

import re

per_raw = input()
per_str = re.findall("([0-9]+)%", per_raw)[0]
per = float(per_str)

这不会检查错误。如果要支持小数点,则需要选择不同的表达式。

在其他语言中,有一个名为 scanf 的函数更简单一些,但在 python 中目前没有等效函数。

【讨论】:

  • 它有效,但如果 OP 不知道如何rstrip 或切片“%”字符,我怀疑他们想使用正则表达式。
  • @Guimute 我在处理海龟图形时遇到了问题。您知道任何参考资料或开始学习的地方吗?
【解决方案2】:

这应该可以实现你想要的 -

daily_average=float(input(‘Daily average increase - ‘).replace(‘%’,’’))/100

【讨论】:

  • 此语句无效
猜你喜欢
  • 2020-04-18
  • 1970-01-01
  • 2012-11-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-04-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多