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

仅当该列表中的字母形成时才检查参数

仅当该列表中的字母形成时才检查参数

牧羊人nacy 2021-08-17 11:02:58
我有三个参数,所有参数都必须由字母组成,例如 john、car、yoga。如果参数包含任何数字或符号,我需要打印错误,您只需要使用字母。我想我需要创建一个列表并仅在该列表中的字母形成时检查参数。有人可以帮我在 python 中做到这一点吗?
查看完整描述

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)


查看完整回答
反对 回复 2021-08-17
?
慕丝7291255

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()应该像这里一样工作。


查看完整回答
反对 回复 2021-08-17
  • 2 回答
  • 0 关注
  • 148 浏览
慕课专栏
更多

添加回答

举报

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