为什么判断Ture or False时会把Ture赋上去,该怎么改?

img

img

img

img


经过调试我发现,判断汉字和标点符号的两个函数没有问题,问题出在if判断true or false那里,无论用==还是is,都会直接将布尔类型赋为true,我实在不知道怎么改了。

从你代码和截图看,计算并没有问题,第二个方法只能计算英文的标点符号,你字符串的是中文符号,所以标点是0个,改成英文符号就可以计算出来了。



```python
from string import punctuation
def is_Chinese(uchar):
    if uchar >= u'\u4e00' and uchar <= u'\u9fa5':
        return True
    else:
        return False


def is_zh_punctuation(w):
    punctuation_str = punctuation
    if w in punctuation_str:
        return True
    else:
        return False

s = "学而时习之,不亦说乎?有朋自远方来,不亦乐乎?人不知而不愠,不亦君子乎?"
m=0
n=0
for a in s:
    if is_Chinese(a):
        m += 1
    else:
        if is_zh_punctuation(a):
            n +=1

print(f"在s中有{m}个中文字符和{n}个标点符号。")

C:\Users\Lenovo\AppData\Local\Programs\Python\Python38\python.exe E:/testTools/software_test/test.py
在s中有30个中文字符和6个标点符号。

Process finished with exit code 0
if is_chinese(a):
       m+=1
else if ....