在Python中检查字符串是否为“<int1>,<int2>”的确切形式,而不使用正则表达式,或者尝试使用/ catch

时间:2016-04-03 22:09:44

标签: python string

我将两个整数的字符串转换为元组。我需要确保我的字符串格式化为:

"<int1>,<int2>"

这与先前的问题不重复。由于这没有解决我之前不知道的限制。我的参数将是&#34; 4,5&#34;例如。我不允许编写其他帮助函数来检查它们是否格式正确。必须在名为convert_to_tuple

的单个函数中完成检查

我只是再次查看了项目规范,我不允许导入任何新模块,所以正则表达式已脱离桌面。我也不允许使用try / catch。

你能指出我的写作方向吗?感谢

这是我将字符串转换为元组的代码。所以我需要某种类型的检查来执行这段代码。

if foo: 
s1 = "12,24"
string_li = s1.split(',')
num_li = [int(x) for x in string_li]
num_tuple = tuple(num_li)
return num_tuple

else:
empty_tuple = ()
return empty_tuple

2 个答案:

答案 0 :(得分:0)

这有用吗? (编辑符合OP的要求)

def is_int(string):
    return string and set(string).issubset(set('1234567890'))

def check_str(s):
    parts = s.split(',', 1)
    return len(parts) == 2 and is_int(parts[0]) and is_int(parts[1])

答案 1 :(得分:0)

我相信测试(没有转换,没有正则表达式或异常处理)一个简单的:

vals = s1.split(',')
if len(vals) == 2 and all(map(str.isdigit, vals)):

将验证有两个组件,它们都是非空的,仅由数字组成。