[英]check the arguments only if the letters in that list are formed
我有三個參數,所有參數都必須由字母組成,例如 john、car、yoga。 如果參數包含任何數字或符號,我需要打印錯誤,您只需要使用字母。 我想我需要創建一個列表並僅在該列表中的字母形成時檢查參數。 有人可以幫我在 python 中做到這一點嗎?
我想即使它有一個帶有數字的字符串,您也希望返回 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)
通常,如果您只想知道給定的字符串是否僅包含字母(沒有空格、標點符號、數字等),您可以簡單地在字符串上使用 Python 的.isalpha()
函數。 例如, 'john'.isalpha()
返回True
,但'johnny5'.isalpha()
返回False
。 但是,除非您將字符串描述為 Unicode,否則這對於帶有 Unicode 字母的內容將失敗。 例如, 'Köln'.isalpha()
返回False
,但u'Köln'.isalpha()
返回True
。 不過,我認為這在 Python 3.x 和 Python 2.x 中可能有所不同。
我看到這里使用的另一個答案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
(或者更具體地說,子列表sys.arg[1:]
)。 挑戰可能是將其放入適當的可識別字符串列表中,而不會出現煩人的UnicodeDecodeError
錯誤。 但是一旦你弄清楚了, .isalpha()
應該像這里一樣工作。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.