You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

请求协助排查Python While循环测试用例问题(测试用例1、2卡壳)

问题分析

先看你的代码逻辑里的几个关键问题,这应该是导致测试用例卡住的核心原因:

  • 实时打印统计值而非最终汇总:你每次输入非空单词后都会立刻打印当前的大写开头单词数,这不符合常规的统计需求——用户应该是希望在结束输入(按回车)后,一次性得到所有输入的统计结果。
  • 缺少总单词数统计:你的代码只跟踪了大写开头的单词数,但初始提示里提到了“0 words were entered”,说明需要统计总共输入了多少个单词,才能在结束时输出完整的统计信息。
  • 字符串格式冗余:打印"'0 words were entered'"时多了一层单引号,显得不规范,而且这个提示应该根据总单词数动态变化,而不是固定写死0。
修复后的代码
def upper_1(): 
    count_cap = 0 
    total_words = 0  # 新增:统计总输入单词数
    while True: 
        word = input('Enter word or press Enter/Return key: ') 
        if word == '': 
            # 结束输入时统一输出统计结果
            print(f"{total_words} words were entered")
            print(f'Words with first letter in upper case = {count_cap}')
            break 
        else: 
            total_words += 1  # 每输入一个非空单词,总计数+1
            if word[0].isupper(): 
                count_cap += 1 
代码修改说明
  • 新增total_words变量,用来统计用户输入的所有非空单词数量,结束时能准确输出总单词数。
  • 把所有打印操作移到**输入结束(word为空)**的分支里,只会在用户结束输入时一次性展示最终统计结果,避免实时打印的干扰。
  • 用f-string替代字符串拼接,让输出格式更简洁易读,同时去掉了原代码里多余的单引号。
  • 变量名改成符合Python PEP8规范的小写加下划线格式(count_cap而非countCap),提升代码可读性。

这样修改后,测试用例应该就能正常通过了——比如输入多个单词后按回车,会正确显示总单词数和大写开头的数量;空输入时也会显示0个单词和0个大写开头的单词。

内容的提问来源于stack exchange,提问作者Richie Singh

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.30 20:59:08