首页上一页 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