首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我让用户输入一个支票号码,我想接受CR为‘0’。“

我让用户输入一个支票号码,我想接受CR为‘0’。“
EN

Stack Overflow用户
提问于 2020-12-12 03:56:49
回答 1查看 18关注 0票数 0

我想让CR或null被接受为零。

这是我用来验证条目是否为整数的代码,如果我键入0,它可以工作,但如果我只是按ENTER键,它就不接受它。

代码语言:javascript
复制
while True:
    try:
        Checkno = int(input("Enter Check number, if none Enter 0"))
        #Checkno should be valid integer 0 is ok
    except ValueError:
        print("Sorry, I didn't understand that.")
        #better try again... Return to the start of the loop
        continue
    else:
        #Checkno was successfully parsed!
        #we're ready to exit the loop.
        break
EN

回答 1

Stack Overflow用户

发布于 2020-12-12 04:05:15

问题是input()去掉了尾随的换行符。按Enter键将返回空字符串。您可以使用or的一个有趣的属性来解决这个问题。它将在第一个True事物上短路,并解析为该值。"foo" or "bar""foo",而"" or "bar""bar"。在您的示例中,

代码语言:javascript
复制
while True:
    try:
        Checkno = int(input("Enter Check number, or Enter for 0: ").strip() or 0)
        #Checkno should be valid integer 0 is ok
    except ValueError:
        print("Sorry, I didn't understand that.")
        #better try again... Return to the start of the loop
        continue
    else:
        #Checkno was successfully parsed!
        #we're ready to exit the loop.
        break
print(f"using {Checkno}")
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65257814

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档