python - 在 Python 3 上使用 WHILE 测试十进制输入无法使其工作
问题描述
我是 Python 编程的新手,我正在测试一些我迄今为止学到的特性。我想创建一个程序来帮助我在早上打开收银台。我编写了一个将字符串内容分配给变量的脚本,因此它首先测试(使用 while 循环)用户是否键入了字母输入。如果是这样,它会告诉用户需要输入一个数值并再次调用输入,再次填充一个字符串值。如果不是字母输入,则退出此 while 循环。现在问题来了。我希望它要求用户继续输入数字(浮点)值,直到想要退出这个模块,然后总和显示在屏幕上。在这个 while 循环中,我放置了一条从字符串到浮点数的转换线,因此它可以对数字求和,而不仅仅是将它们作为字符串连接在一起。但是我可以' t 似乎使它工作。这是到目前为止的代码
`n = input('n = ')
na = 0.00
while n.isalpha():
print('Valor inválido. Insira um valor numérico.')
n = input('n = ')
while n.isdecimal():
n = float(n)
na += n
print('Insira o próximo valor: ')
print('Digite qualquer letra para sair')
n = input('n = ')
print('A soma é {:.2f}'.format(na))`
但是,如果我输入 5.22,例如,它会退出程序而不显示任何错误:
n = 5.22
A soma é 0.00
Process finished with exit code 0
我怎样才能让这个while循环按我想要的方式工作?
啊,当我在 n 变量上输入整数值时,它工作得很好。
n = 5
Insira o próximo valor:
Digite qualquer letra para sair
n = 5
Insira o próximo valor:
Digite qualquer letra para sair
n = 5
Insira o próximo valor:
Digite qualquer letra para sair
n = 5
Insira o próximo valor:
Digite qualquer letra para sair
n = 5
Insira o próximo valor:
Digite qualquer letra para sair
n = m
A soma é 25.00
提前致谢!!
解决方案
推荐阅读
- sql - SQL 查询中多余的空格会影响性能吗?
- jupyter-notebook - 如何避免 Jupyter cell-ids 一直在变化,从而向 VCS diff 发送垃圾邮件?
- javascript - 在javascript中随机化字符串(排列)的函数
- python - 如何将 tfa.losses.TripletSemiHardLoss() 与 softplus 一起使用?
- java - 无法解析符号“预期”
- powerbi - 在 Power BI 中组合 2 个矩阵表可视化
- reactjs - 将新创建的 react 本机应用推送到 Github 或 Gitlab 时出错
- javascript - 将超链接添加到 amcharts 强制定向树中的节点
- c++ - PCLVisualizer 无法正确显示点云
- sql - RegexLike 代码不会返回以 0 开头的数字