为了账号安全,请及时绑定邮箱和手机立即绑定

检测前导空白 - Python

检测前导空白 - Python

动漫人物 2022-06-22 18:01:57
我想知道用户是否在数字前输入了空格。目前,如果您按下空格然后输入数字,程序会忽略空格并在您刚刚输入数字时看到它。我尝试了在这个网站上找到的一些方法,但我一定遗漏了一些东西。import rewhile True:        enternum=input('Enter numbers only')           try:           enternum=int(enternum)        except ValueError:            print ('Try again')            continue        conv = str(enternum) # converted it so I can use some of the methods below        if conv[0].isspace(): # I tried this it does not work            print("leading space not allowed")        for ind, val in enumerate(conv):                       if (val.isspace()) == True: # I tried this it does not work                print('leading space not allowed')        if re.match(r"\s", conv): # I tried this it does not work (notice you must import re to try this)            print('leading space not allowed')        print('Total items entered', len(conv)) # this does not even recognize the leading space        print ('valid entry')        continue
查看完整描述

1 回答

?
慕桂英4014372

TA贡献1871条经验 获得超13个赞

您的示例代码中的问题是您enternum在检查空格之前转换为整数(从而删除空格)。如果您只是在将其转换为整数enternum[0].isspace() 之前进行检查,它将检测到空格。


不要忘记检查用户是否输入了某些内容,而不仅仅是按回车键,否则IndexError在尝试访问时会出现enternum[0].


while True:

  enternum = input('Enter numbers only')

  if not enternum:

    print('Must enter number')

    continue

  if enternum[0].isspace():

    print('leading space not allowed')

    continue

  enternum = int(enternum)

  ...

您没有具体说明为什么要禁止空格,因此您应该考虑这是否是您真正想要做的。另一种选择是使用enternum.isdecimal()(同样,在转换为 int 之前)检查字符串是否仅包含十进制数字。


查看完整回答
反对 回复 2022-06-22
  • 1 回答
  • 0 关注
  • 93 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信