2 回答
TA贡献1893条经验 获得超10个赞
我想即使它有一个带有数字的字符串,您也希望返回 false 试试下面的代码。
布尔返回函数
def isstring(*args):
for i in range(len(args)):
if any(char.isdigit() for char in args[i]):
return False
return True
print(isstring("nikhil","kone1ru"))
字符串返回函数
def errorstring(*args):
for i in range(len(args)):
if any(char.isdigit() for char in args[i]):
return args[i]
return None
str = errorstring("nikhil", "kone1ru")
if str is None:
print("No string contains number")
else:
print("String with number:"+str)
TA贡献1859条经验 获得超6个赞
通常如果你只想知道给定的字符串是否只包含字母(没有空格、标点符号、数字等),你可以简单地.isalpha()在字符串上使用 Python 的函数。例如,'john'.isalpha()返回True,但'johnny5'.isalpha()返回False。 但是,除非您将字符串描述为 Unicode,否则这对于带有 Unicode 字母的内容将失败。例如,'Köln'.isalpha()返回False,但u'Köln'.isalpha()返回True。不过,我认为这在 Python 3.x 和 Python 2.x 中可能有所不同。
我在这里看到了另一个答案 used isdigit(),但这会传递给带有非字母数字符号的字符串,如john+doe或doe,john。
如果您有一个格式正确的字符串列表,并且当且仅当它们都是严格按字母顺序排列时您想返回“True”,那么此函数应该可以满足您的需求:
def check_list(mylist):
for word in mylist:
if not word.isalpha():
return False
return True
或等效但更短的方法:
def check_list(mylist):
return not False in [word.isalpha() for word in mylist]
在各种字符串的列表上运行它:
#!/usr/bin/python
# -*- coding: latin-1 -*-
def check_list(mylist):
return not False in [word.isalpha() for word in mylist]
mylist1 = ['Berlin', u'Köln', u'Munich']
print("My strings: %s" % mylist1)
print("All of my strings are alphabetic strings:")
print check_list(mylist1)
mylist2 = ['Berlin', u'Köln', u'Munich 2018']
print("My other strings: %s" % mylist2)
print("All of these strings are alphabetic strings:")
print check_list(mylist2)
# Output is:
# My strings: ['Berlin', u'K\xf6ln', u'Munich']
# All of my strings are alphabetic strings:
# True
# My other strings: ['Berlin', u'K\xf6ln', u'Munich 2018']
# All of these strings are alphabetic strings:
# False
棘手的部分是你说你想要你的列表sys.arg(或者更具体地说, sublist sys.arg[1:])。挑战可能是将其放入适当的可识别字符串列表中,而不会出现烦人的UnicodeDecodeError错误。但是一旦你弄清楚了,就.isalpha()应该像这里一样工作。
添加回答
举报