关于Python统计一行字符数量的代码

想要编写一段代码,可以统计一行中字符的数量。
我的想法是将“=”填充,直到换行的时候停下来。idle一直报错,说语法错误,但是我还是不知道哪里有问题,有人能帮忙改改吗

img

函数体没有正确缩进,导致语法错误。

bunmer 变量中的 print 语句没有正确关闭。

if 语句中的条件不正确,因为 "\n 不是一个有效的条件。

else 子句没有对应的 if 语句。

return 语句与函数体同级,需要缩进。

while 语句没有正确的条件,以及没有缩进的代码块。


def count_characters(line):
    count = 0
    for char in line:
        if char != '\n':
            count += 1
        else:
            break
    return count

line = input("输入一行: ")
char_count = count_characters(line)
print("字符有:", char_count)


你的if while 没有打引号,\n没有引号,所以一直在报错。
统计字符是假设是只是字母可以这样写

def statisticsChar(content: string):
    i = 0
    n = 0
    while content[i] != '\n':
        n = n + 1
        i = i + 1
    return n

你这代码问题多了
1.双引号不成对
2.括号不成对
3.缩进不正确
4.if和while后面直接写字符串,永远为真,你需要一个比较

if和while处的换行符后面少了个单引号,然后还有缩进。按照你的逻辑,(不知道有没有理解对你的意思),修改如下:

def n(x):
    nums=0
    
    for ch in x: #遍历字符串      
        if ch=='\n': # 如果是换行,则打印一个换行
            print (n)
        else: # 否则 将字符个数+1
            nums=nums+1
    number=('='*nums) # 将字符个数*'='
    return number # 返回这个字符串

s=input("请输入一行字符:")
result = n(s)  
print(result.count("=")) # 打印结果

img

非常感谢各位的帮助!可能我描述问题的语言有点错误,其实我的意思是这样的:让用户输入的字符(用户只输入一个字符)将一行填满,然后统计这一行的字符数量