输入一个字符串,确保该字符串满足一下条件:
例子:91-93-55-44
如果不满足则返回"False"
本人是初学者希望大佬们能用尽量基本的Python方法来解答该问题!!
要用户输入字符串是这样。
a = input("输入一个字符串:")
print(funcname(a))
import re
def funcname(s):
return re.match(r'^(([1-9]\d|100)-)*([1-9]\d|100)$', s)!=None
print(funcname("91-93-55-44"))
print(funcname("9-93-55-44"))
print(funcname("93-105-44"))
print(funcname("9-93-aa-44"))
3
# 这是纯正则表达式的方法
import re
def funcname(s):
return re.match(r'^(([1-9]\d|100)-)*([1-9]\d|100)$', s)!=None
print(funcname("91-93-55-44"))
print(funcname("9-93-55-44"))
print(funcname("63-105-44"))
print(funcname("93-100-44"))
print(funcname("93-100-44.9"))
print(funcname("10-AA-66"))
# 这是比较基本的方法
import re
def funcname(s):
li = s.split("-")
for v in li:
if re.search(r'\D', v) or not 10<=int(v)<=100:
return False
return True
print(funcname("91-93-55-44"))
print(funcname("9-93-55-44"))
print(funcname("63-105-44"))
print(funcname("93-100-44"))
print(funcname("93-100-44.9"))
print(funcname("10-AA-66"))
不用正则表达式,也可以改成
if not v.isdigit() or not 10<=int(v)<=100:
谢谢,大佬!是对的! 还有个问题: 就为什么连字符在数字之间不用考虑? 或者说为什么不添加条件来限制输入变量
因为一开始就用s.split("-") 以连字符"-"来分割成list列表了啊。
之后只判断列表中的元素就好了