首页上一页 1 下一页尾页 1 条记录 1/1页
1、分支覆盖不全,比如函数第2个参数输入个4,没有返回
2、函数嵌套层级超过3级
3、函数第3个参数在某些情况下不需要,但是没有给默认值,导致在不需要时也必须输入
4、整个函数的if 和 return 使用不地道,在if 分支中return了,就不需要else的
def input_box(input_str, str_rule, str_length=0): """ 输入字符串,类型,长度限制,判断输入的字符串是否符合规则,是则返回字符串,否则返回字符串"0" :param input_str: 输入的字符串 :param str_rule: 规则编号,1-数字不限制位数,2-字母限制位数,3-数字限制位数 :param str_length: 如果限制位数,则需要该参数 :return: """ instr = input(input_str) if len(instr) == 0: print("输入为空,请重新输入!") return "0" if str_rule not in [1, 2, 3]: print("输入类别错误,请重新输入!") return "0" if str_rule == 1: if not instr.isdigit(): print("类型1[数字不限制位数]必须输入数字,请重新输入!") return "0" if instr == "0": print("类型1[数字不限制位数]必须输入数字,且不能为0,请重新输入!") return "0" return instr if str_rule == 2: if not instr.isalpha(): print("类型1[数字不限制位数]必须输入字母,请重新输入!") return "0" if len(instr) != str_length: print("类型2[字母]必须输入字母,字母长度要求{}位,实际输入{}位,请重新输入!".format(str_length, len(instr))) return "0" return instr if str_rule == 3: if not instr.isdigit(): print("类型1[数字制位数]必须输入数字,请重新输入!") return "0" if len(instr) != str_length: print("类型2[数字限制位数]必须输入字母,字母长度要求{}位,实际输入{}位,请重新输入!".format(str_length, len(instr))) return "0" return instr