【问题标题】:Limiting input to A-Z with a max of 20 characters将输入限制为 A-Z,最多 20 个字符
【发布时间】:2017-01-22 20:19:52
【问题描述】:

我有这段代码允许人们输入目的地并将其附加到列表中:

i=0
while 1:
    i+=1
    place=input('Enter Extra Destination %d: '%i)
    if place != '':
        print ('Press enter to stop')
    if place=='':
        break
    dest.append(place)

我希望将目标输入限制为 A-Z(大写和小写),最多 20 个字符。我不知道该怎么做。我知道如何限制数字而不是文字。

【问题讨论】:

    标签: python-3.x input while-loop append character


    【解决方案1】:

    str.isalpha() 只接受字母字符。但请注意,不允许使用空格。

    仅限字母字符带空格且最多 20 个字符:

    if string.replace(" ", "").isalpha() and len(string) <= 20:
        # what you want to do
    else:
        print("Invalid")
    

    .replace(" ", "").isalpha() 在检查之前删除所有空格,因此允许空格

    【讨论】:

    • 它似乎不适用于我目前的代码。你有什么方法可以整合它吗?
    • @aNameNoob:啊,我用正确的代码进行了编辑。我意识到.split() 只修剪前导和尾随空格,而不是所有空格。
    • 谢谢,我设法让其他代码工作,将进行这些更改
    【解决方案2】:

    有点难看,但是使用列表理解和使用 isalpha 或空格进行检查的连接是一个很好的演示

    >>> a = 'abcdefg hijk @ 123 cdezyxwvu'
    >>> "".join([i for i in a if i.isalpha() or i==" "])[:20]
    'abcdefg hijk   cdezy'
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-08-30
      • 2017-10-18
      • 2017-11-07
      • 1970-01-01
      • 1970-01-01
      • 2010-12-27
      • 1970-01-01
      相关资源
      最近更新 更多