首页 > 解决方案 > 虽然需要循环测试用例帮助

问题描述

你能帮我解决这个问题吗?我被测试用例 1 和 2 困住了。

def upper_1():
    countCap = 0
    while True:
        word = input('Enter word or press Enter/Return key: ')
        if word == '':
            print("'0 words were entered'")
            break
        else:
            if word[0].isupper():
                countCap += 1
            
    if word != '':
        print('Words with first letter in upper case = ', str(countCap))

在此处输入图像描述

在此处输入图像描述

标签: pythonwhile-loop

解决方案


您的代码中有一些逻辑错误。一些小的修复会做:

def upper_1():
    countCap = 0
    words = False
    while True:
        word = input('Enter word or press Enter/Return key: ')
        if word == '':
            break  # always the end of the loop, even if words were entered
        words = True
        if word[0].isupper():
            countCap += 1
            
    if words:  # this is where you can check
        print('Words with first letter in upper case = ', str(countCap))
    else:
        print("0 words were entered")

或者缩短一点:

def upper_1():
    countCap = words = 0  # [== False]
    while True:
        if not (word := input('Enter word or press Enter/Return key: ')):
            break
        words = True
        countCap += word[0].isupper()
            
    if words:
        print('Words with first letter in upper case = ', str(countCap))
    else:
        print("0 words were entered")

推荐阅读