Python 3字符串验证程序主函数实现求助:无法生成目标输出
解决字符串批量验证的主函数编写问题
看起来你已经搞定了所有验证辅助函数,现在卡在主函数的循环调用和结果输出上对吧?核心问题是你没有调用函数(只写了函数名,没有加括号传参),所以打印出了函数对象而不是实际的布尔结果。
下面是完善后的主函数代码,完全匹配你需要的输出格式:
# 测试用字符串 old_strings = [ 'xyz556677abc', 'top89hat' ] strings = [ 'qqrrb12ss', 'y123bz','1222345', 'top89hat' ] # 假设你的五个辅助函数已经定义在这里: # def consecutive(s): ... # def one_digit(s): ... # def not_nums(s): ... # def length(s): ... # def string_req(s, old_list): ... def validate_strings(): # 遍历每个待测试的字符串 for s in strings: # 调用每个辅助函数并获取结果 consec_result = consecutive(s) one_digit_result = one_digit(s) not_nums_result = not_nums(s) length_result = length(s) req_result = string_req(s, old_strings) # 按照指定格式打印结果 print(f"consecutive('{s}') = {consec_result}") print(f"one_digit('{s}') = {one_digit_result}") print(f"not_nums('{s}') = {not_nums_result}") print(f"length('{s}') = {length_result}") print(f"string_req('{s}', old_strings) = {req_result}") # 执行主函数 validate_strings()
关键说明:
- 循环遍历测试字符串:用
for s in strings逐个处理每个待验证的字符串,这是批量处理的核心。 - 调用函数并保存结果:每个辅助函数都需要传入当前字符串
s作为参数(string_req还要额外传old_strings),这样才能得到布尔值结果,而不是打印函数本身。 - 格式化输出:使用f-string(
f"...")来拼接字符串和结果,完全匹配你需要的格式,比如consecutive('qqrrb12ss') = True。
运行这段代码后,就能得到你想要的输出效果了。如果你的辅助函数逻辑正确,结果会和示例完全一致。
内容的提问来源于stack exchange,提问作者DwightD
相关产品推荐
相关产品推荐

