python中的Isspace函数

问题描述 投票:-1回答:3

我在尝试执行此代码时遇到麻烦,我希望用户输入一个值,程序会检查该值是否为字符串,然后返回长度。如果该值包含空格,则程序将删除空格并打印长度。但是,如果它包含任何整数值,程序将返回“不允许使用整数”

这是代码:

def length(Name):
    long = len(Name)
    return long

new_length = input("Please Enter Your name You can use Spaces: ")
value1 = new_length
if value1.isspace() == True:
  print("This is Before Removing Spaces: " + value1)
  value2 = value1.replace(" ", "")
  print("This is After Removing Spaces: " + value2)
elif value1.isalpha() == True: 
  print("Here is The Length: ", length(value1))
elif value1.isdigit() == True:
    print("Integers are not allowed! ")
else:
    print("There's someting wrong with  "+ value1)

因此,如果您能帮助我,我会很感激。谢谢

python function conditional-statements isspace
3个回答
1
投票

我不认为str.isspacestr.isalphastr.isdigit方法可以实现您期望的功能。首先,它们都测试您输入的字符串中的all字符是否是其名称中描述的类型。您的代码似乎期望如果字符的[[any匹配,它们将返回True。也就是说,如果有any个空格,则要删除它们并显示前后两个长度。

没有任何字符串方法可以在Python中为您完成测试。您可以使用正则表达式(功能更强大,但更复杂),也可以编写一些更复杂的代码进行测试。我建议使用any函数,并向其传递一个生成器表达式,该表达式在字符串中的每个字符上调用所需的方法。

if any(c.isspace() for c in user_str): ...

这可能不是您所有测试所要的。您的代码所需的逻辑并不十分明显,因为在某些特殊情况下,您的输出并未具体解决。包含字母和数字的字符串是否有效?一个数字之间没有空格的空格怎么办?您可能需要重新排列if /elif/ else语句的条件,以便它们符合您的意图。
我还要注意,您用于用户输入的变量名new_length非常容易引起误解。它不是长度,而是您要测量长度的字符串!对具有误导性或不清楚的变量名的变量进行逻辑错误要容易得多,因此花一些时间回头重新考虑先前选择的名称有时是个好主意,因为它可以大大提高代码的清晰度!描述性的变量名很好,但是要在简洁和简洁之间进行权衡,因为长名称的键入很乏味(而且容易产生拼写错误)。它们也可能导致行长问题,从而使在编辑器屏幕上一次查看所有代码变得不那么方便。

0
投票

0
投票
全部

0
投票

0
投票

如果字符串中只有空格字符并且至少有一个字符,则返回True,否则返回False。

© www.soinside.com 2019 - 2024. All rights reserved.