動作環境
Python3
特定の文字列に以下の確認をする。
- 数値が1つでも入っているか
- alphabetが1つでも入っているか
v0.1
checkalpha = lambda t:[e for e in t if e.isalpha()]
checkdigit = lambda t:[e for e in t if e.isdigit()]
atxt = '1234b'
print(checkalpha(atxt))
print(checkdigit(atxt))
btxt = '12345'
print(checkalpha(btxt))
print(checkdigit(btxt))
if len(checkalpha(btxt)) == 0:
print("no alphabet")
run
['b']
['1', '2', '3', '4']
[]
['1', '2', '3', '4', '5']
no alphabet
正規表現使う方が楽だろうか。
v0.2
len()をlambda式に入れた。
numalpha = lambda t:len([e for e in t if e.isalpha()])
numdigit = lambda t:len([e for e in t if e.isdigit()])
atxt = '1234b'
print(numalpha(atxt))
print(numdigit(atxt))
btxt = '12345'
print(numalpha(btxt))
print(numdigit(btxt))
if numalpha(btxt) == 0:
print("no alphabet")
run
1
4
0
5
no alphabet
v0.3
- Upper, lower case letterのチェック
numlower = lambda t:len([e for e in t if e.islower()])
numupper = lambda t:len([e for e in t if e.isupper()])
numdigit = lambda t:len([e for e in t if e.isdigit()])
def checkfunc(txt):
print("===%s===" % txt)
print("lower:%d, upper:%d, digit:%d" %
(numlower(txt), numupper(txt), numdigit(txt)))
if numlower(txt) == 0:
print("no lower case letters")
if numupper(txt) == 0:
print("no upper case letters")
if numdigit(txt) == 0:
print("no digits")
atxt = '1234b'
checkfunc(atxt)
btxt = '12345'
checkfunc(btxt)
run
===1234b===
lower:1, upper:0, digit:4
no upper case letters
===12345===
lower:0, upper:0, digit:5
no lower case letters
no upper case letters
参考
v0.4
@SaitoTsutomu さんのコメントにてsum(), map(), str.isalphaなどの使用方法を教えていただきました。
情報感謝です。
numlower = lambda s:sum(map(str.islower, s))
numupper = lambda s:sum(map(str.isupper, s))
numdigit = lambda s:sum(map(str.isdigit, s))
def checkfunc(txt):
print("===%s===" % txt)
print("lower:%d, upper:%d, digit:%d" %
(numlower(txt), numupper(txt), numdigit(txt)))
if numlower(txt) == 0:
print("no lower case letters")
if numupper(txt) == 0:
print("no upper case letters")
if numdigit(txt) == 0:
print("no digits")
atxt = '1234b'
checkfunc(atxt)
btxt = '12345'
checkfunc(btxt)
run
===1234b===
lower:1, upper:0, digit:4
no upper case letters
===12345===
lower:0, upper:0, digit:5
no lower case letters
no upper case letters
参考 > map()