当前位置: 首页 > 知识库问答 >
问题:

在python中验证用户输入字符串

钱毅
2023-03-14

这是我刚接触Python时就一直在阅读的一本书中的一些代码……这一部分按它应该的方式工作

totalCost = 0
print 'Welcome to the receipt program!'
while True:
    cost = raw_input("Enter the value for the seat ['q' to quit]: ")
    if cost == 'q':
        break
    else:
        totalCost += int(cost)

print '*****'
print 'Total: $', totalCost
share|edit
answered 8 hours ago

我的困境是…我需要验证输入是什么…因此,如果用户输入的是一个字符串(比如“五”而不是数字),而不是q或数字,它会告诉他们“很抱歉,“五”是无效的。请重试…然后它会再次提示用户输入。我是Python新手,一直在为这个简单的问题绞尽脑汁

*更新**因为我没有足够的积分来为我自己的问题添加答案,所以我在这里发布这个。。。。

Thank you everyone for your help.  I got it to work!!!  I guess it's going to take me a little time to get use to loops using If/elif/else and while loops.

This is what I finally did

total = 0.0
print 'Welcome to the receipt program!'
while True:
    cost = raw_input("Enter the value for the seat ['q' to quit]: ")
    if cost == 'q':
        break
    elif not cost.isdigit():
        print "I'm sorry, but {} isn't valid.".format(cost)
    else:
        total += float(cost)
print '*****'
print 'Total: $', total

共有3个答案

上官自明
2023-03-14

你已经走了大部分路了。你有:

if cost == 'q':
    break
else:
    totalCost += int(cost)

因此,也许可以在if语句中添加另一个子句:

if cost == 'q':
    break
elif not cost.isdigit():
    print 'That is not a number; try again.'
else:
    totalCost += int(cost)

在Python中,如何检查字符串中是否包含数值?涵盖此特定案例(检查字符串中的数值),并提供指向其他类似问题的链接。

范志勇
2023-03-14

您可能需要检查它是否为数字:

>>> '123'.isdigit()
True

这大概是这样的:

totalCost = 0
print 'Welcome to the receipt program!'
while True:
    cost = raw_input("Enter the value for the seat ['q' to quit]: ")
    if cost == 'q':
        break
    elif cost.isdigit():
        totalCost += int(cost)
    else:
        print('please enter integers.')

print '*****'

print 'Total: $', totalCost
强承望
2023-03-14
if cost == 'q':
    break
else:
    try:
        totalCost += int(cost)
    except ValueError:
        print "Invalid Input"

这将查看输入是否为整数,如果为整数,它将中断。如果不是,它将打印“无效输入”并返回原始输入。希望这有帮助:)

 类似资料:
  • 问题内容: 因此,我几乎搜索了单词“ string”,“ python”,“ validate”,“ user input”等等的每个排列,但是我还没有找到一种适合我的解决方案。 我的目标是提示用户是否要使用字符串“ yes”和“ no”进行另一笔交易,我认为字符串比较在Python中是一个相当简单的过程,但是有些不起作用对。我使用的是Python 3.X,据我所知,输入应使用字符串而不使用原始输

  • 问题内容: 我试图在我的一种方法中建立用户输入验证系统…在一定程度上可以正常工作,但是尽管有代码,但它仍然允许整数作为有效输入,我不希望这样,我怎么能更改此代码,以仅允许将字母(字符串)作为有效输入。在这一点上,我感到困惑,我尝试使用整数对该系统进行测试,它可以完美地工作,但是使用字母,无济于事。 有见识? 问题答案: 更换 与 如果使用扫描仪,则仅检查下一步是否有 东西 ,特别是对于字母或其他物

  • 我已经创建了一个控制台应用程序,现在开始将其转换为摇摆应用程序。我有一个问题,我搜索了很多次,但我没有找到任何答案。 我的应用程序有一个类来验证用户的输入,如果输入错误,它会向控制台发出错误消息。所以我尝试做的是,我有一个Jtextfield并验证这个输入,如果输入错误,它应该给我错误消息。 这是我的Input类,用户可以在其中编写 这是我的输出类方法 我只是想知道我可以使用输入类的验证,还是应该

  • 问题内容: Python如何接受用户输入,并验证? 问题答案: 完成此操作的最简单方法是将方法置于循环中。当输入错误时使用,当你感到满意时使用。 当你的输入可能引发异常时 使用和检测用户何时输入了无法解析的数据。 实施你自己的验证规则 如果要拒绝Python可以成功解析的值,则可以添加自己的验证逻辑。 结合异常处理和自定义验证 以上两种技术都可以组合成一个循环。 将其全部封装在一个函数中 如果你需

  • 问题内容: 我是这个C ++世界的新手,正在尝试为数字密码编写输入验证功能。这是我到目前为止所得到的: 对于不正确的值,它工作得很好,但在有效输入时不会中断循环。知道我在这里缺少什么吗?干杯!! James Kanze脚本的ErroR: 新代码: 使用 和 验证作为字符串 感谢所有人(尤其是James Kanze)的帮助。这件事在这里很有效。 那里还有进一步改进的空间吗?干杯!! 问题答案: 这看

  • 我正在做一个简单的程序,要求用户输入0-19之间的五个数字。我想在每个数字后面添加一些东西(比如if语句),以确保它在这个范围内。如果不是,程序应该说“请再读指令”,然后system.exit(0)。这段代码是相关的: 如有任何帮助,将不胜感激。