获取没有任何空格的输入 - python

时间:2014-11-25 04:53:52

标签: python

因此,这个函数应该从用户那里得到猜测。这个猜测应该是一个字符,并且没有任何空格。

问题是,当我输入一个空格''它返回'你必须输入一个猜测'。但是,当我输入2个空格''它返回'你只能猜出一个字符'。

我需要它来显示'你必须输入一个猜测'。输入是包含一个空格还是两个空格,还是点击或两个,或者甚至与点击和空格混合。我怎么能这样做?

def get_guess(repeated_guess):  
    while True:
        guess = input('Please enter your next guess: ') # ask for input
        guess.strip() # remove all spaces
        guess = str(guess).lower() # convert it to lowercase string        
        if len(guess) > 1: # check if it's more than one character
            print('You can only guess a single character.')
        elif guess.isspace(' '):
            print('You must enter a guess.')
        elif guess in repeated_guess: # check if it's repeated
            print('You already guessed the character:', guess)
        else:
            return guess

5 个答案:

答案 0 :(得分:1)

guess.strip() 返回被剥离的字符串; guess保持不变。你需要重新分配它:

guess = guess.strip()

答案 1 :(得分:1)

没有正则表达式的简单方法。

guess = ''.join(guess.split())

这将从字符串中的任何位置删除空格。 strip仅从字符串的末尾删除,直到第一个非空白字符。

答案 2 :(得分:0)

剥离后应该将猜测值设为新值     猜= guess.strip()

答案 3 :(得分:0)

您的问题是在检查字符串的长度是否仅为空格之前检查字符串的长度。具有2个空格的字符串将被视为2个字符的字符串,并且因为将首先评估if语句,它将返回多字符打印语句。如果您重新排序代码,以便它首先检查字符串是否只是空格而是优先考虑那个印刷语句而不是另一个。

答案 4 :(得分:0)

我不确定我是否完全理解你的问题但是,我会采取刺。

如果您正在寻找用户输入单个字符作为输入(不包括空格),则应从输入中删除所有空格。 guess.strip()仅删除前导和尾随空格。

尝试使用guess.replace(" ", "");这将从用户输入中删除所有空格。

此外,与其他人一样,这些方法会返回一个新字符串,并删除相应的字符。您的代码应该看起来像guess = guess.strip()