为什么我的代码返回0?而不是大写和小写的数字?

时间:2019-09-18 06:26:12

标签: python-3.7

我正在尝试编写代码,计算一个字符串中有多少个上下字符。这是我的代码。

我一直试图将其转换为字符串,但无法正常工作。

def up_low(string):
    result1 = 0
    result2 = 0
    for x in string:
        if x == x.upper():
            result1 + 1

        elif x == x.lower():
            result2 + 1

    print('You have ' + str(result1) + ' upper characters and ' + 
str(result2) + ' lower characters!')



up_low('Hello Mr. Rogers, how are you this fine Tuesday?')

我希望我的结果能够计算上下两个字符。现在,我收到“您有0个大写字母和0个小写字母!”。

它不是将result1和result2相加。

2 个答案:

答案 0 :(得分:1)

问题出在result1 + 1result2 + 1行中。这是一个表达式,但不是一个赋值。换句话说,您增加计数器,然后增加的值将消失。

解决方案是将赋值运算符=放到某个地方。

答案 1 :(得分:1)

似乎您的错误出在分配中,错了一个'='符号(例如result1 + = 1)

对于字符串中的x:         如果x == x.upper():             result1 + = 1

    elif x == x.lower():
        result2 +**=** 1