Python条件分支函数调试求助:输出不符合预期
问题分析与修正方案
先看你原函数里的核心错误点,逐个修正后就能满足需求:
错误点与对应修正
1. 统计大写'E'次数的分支错误
原代码用input_string.count('e')统计小写'e',但需求是统计大写'E'的出现次数,大小写敏感,必须修正统计的目标字符。
2. 纯数字字符串处理分支错误
原代码尝试对字符串执行% 2运算,会直接触发TypeError(字符串不能和整数做取模运算)。根据你给出的例子'4224'→'2114',逻辑应为遍历每个数字字符,转整数后除以2再转回字符串,最后拼接结果。
3. 反转字符串分支错误
原代码input_string[-1:0]是错误的切片用法:Python切片默认步长为1,当起始索引大于结束索引时,返回空字符串。正确的反转方式是用步长为-1的切片[::-1]。
修正后的完整代码
def function(input_string): output_string = '' if len(input_string) > 6: return input_string[1:] # 返回从索引1开始的字符串 elif input_string.count('E') > 2: return input_string.count('E') # 返回字符'E'的出现次数 elif input_string.isdigit(): # 按需求处理纯数字字符串:每个数字除以2后拼接 return ''.join(str(int(c) // 2) for c in input_string) else: return input_string[::-1] # 反转字符串,例:输出'Ecetem' return output_string input_string = 'metecE' output_string = function(input_string) print(output_string) # 输出结果为'Ecetem',符合需求
测试验证
针对你的测试输入'metecE':
- 长度为6,不满足
len>6; - 大写'E'仅出现1次,不满足
>2; - 不是纯数字字符串,进入else分支执行反转,最终输出
'Ecetem',符合预期。
内容的提问来源于stack exchange,提问作者Tevin
相关产品推荐
相关产品推荐

