python 中给定字符串中的一组数字
Given set of numbers in a string in python
我想检查字符串中是否存在一组数字
这是我的代码:
def check_no(string):
string = string.lower()
no = set(c)
s = set()
for i in string:
if i in no:
s.add(i)
else:
pass
if len(s) == len(no):
return("Valid")
else:
return("Not Valid")
c = input()
print(check_no(c))
如果字符串中存在给定的数字集,则打印 Valid
,如果不存在,则打印 Not valid
当输入为 123
且字符串类似于 I have 12 car and 3 bikes
时,程序运行正常,然后输出有效
但是当我将输入作为 254
并将字符串作为 i hav25555number
时,输出为 valid
但实际输出应为 Not valid
作为 4
字符串中不存在。
任何人都可以帮助如何在提供的代码中解决它
我想检查所有字符是否匹配然后使用 all
。
def check_no(text, check):
valid = all(character in text for character in check)
if valid:
return("Valid")
else:
return("Not Valid")
check = '254'
text = 'i hav25555number'
print(check_no(text, check))
单行版
def check_no(text, check):
return 'Valid' if all(character in text for character in check) else 'Not Valid'
你的函数大部分是正确的,但可能是因为你对变量名的(糟糕的)选择,string
和 c
变量在环境中混淆了。
解决方案是将参数显式添加到函数定义中(同时避免使用 string
或 c
之类的名称,因为这些可能是预定义的 python 关键字):
teststring = "254"
testc = "i hav25555number"
def check_no(mystring, myc):
string = mystring.lower()
no = set(c)
print("string is",string)
s = set()
for i in string:
if str(i) in no:
# print(i, " in ", no)
s.add(i)
else:
pass
# print("s is",s)
# print("no is",no)
if len(s) == len(no):
return("Valid")
else:
return("Not Valid")
print(check_no(teststring,testc))
给出:
print(check_no(teststring,testc))
string is 254
Not Valid
如前所述,您可以使用 all
让您的代码更优雅,尽管您的实现也没有任何问题。
我想检查字符串中是否存在一组数字
这是我的代码:
def check_no(string):
string = string.lower()
no = set(c)
s = set()
for i in string:
if i in no:
s.add(i)
else:
pass
if len(s) == len(no):
return("Valid")
else:
return("Not Valid")
c = input()
print(check_no(c))
如果字符串中存在给定的数字集,则打印 Valid
,如果不存在,则打印 Not valid
当输入为 123
且字符串类似于 I have 12 car and 3 bikes
时,程序运行正常,然后输出有效
但是当我将输入作为 254
并将字符串作为 i hav25555number
时,输出为 valid
但实际输出应为 Not valid
作为 4
字符串中不存在。
任何人都可以帮助如何在提供的代码中解决它
我想检查所有字符是否匹配然后使用 all
。
def check_no(text, check):
valid = all(character in text for character in check)
if valid:
return("Valid")
else:
return("Not Valid")
check = '254'
text = 'i hav25555number'
print(check_no(text, check))
单行版
def check_no(text, check):
return 'Valid' if all(character in text for character in check) else 'Not Valid'
你的函数大部分是正确的,但可能是因为你对变量名的(糟糕的)选择,string
和 c
变量在环境中混淆了。
解决方案是将参数显式添加到函数定义中(同时避免使用 string
或 c
之类的名称,因为这些可能是预定义的 python 关键字):
teststring = "254"
testc = "i hav25555number"
def check_no(mystring, myc):
string = mystring.lower()
no = set(c)
print("string is",string)
s = set()
for i in string:
if str(i) in no:
# print(i, " in ", no)
s.add(i)
else:
pass
# print("s is",s)
# print("no is",no)
if len(s) == len(no):
return("Valid")
else:
return("Not Valid")
print(check_no(teststring,testc))
给出:
print(check_no(teststring,testc))
string is 254
Not Valid
如前所述,您可以使用 all
让您的代码更优雅,尽管您的实现也没有任何问题。