首页 > 技术文章 > python 查找字符串中字母的个数

bethansy 2017-06-15 16:06 原文

 2017.6.17 更新:好像知道错在哪里了。以第一个为例,输入应该是“AHHaaBBa”,因为直接输入AHHaaBBa时,系统不知到这是一个变量还是字符串,所以必须输入的时候申明定义。既然这样的话,那我在str=input()的时候将输入定义成字符串格式例如

str=str(input())这样呢?结果还是不可以。。。最后,最好不要把变量名和函数名取得一样,就像我这里的str就很不合规范

%%%%% 分隔符

试了好几种方法全都报错,先贴出来,反正自己是觉得没毛病

(1)首先看不懂if_name_=="_main_"这句话的定义,反正网上老师要求加的,运行首先提示

NameError: name '_name_' is not defined

把这句话删掉后,还是出错,提示

%%%% 分隔符 上面那个应该是:if__name__=="__main__" ,少写了一下下划线,表达的意思是程序的入口

AHHaaBBa

Traceback (most recent call last):   File "D:/Python27/yy/excer_3.py", line 11, in <module>    

str=input()   File "<string>", line 1, in <module>

NameError: name 'AHHaaBBa' is not defined

def countchar(str):
    wordlist=[chr(i) for i in range(97,23)]
    str=str.lower()
    result=[]
    for i in range(len(str)):
        x=str[i]
        if x in wordlist:
            y=wordlist.index(x)
            result[y]=result[y]+1
    return result
if _name_=="_main_":
    str=input()
print(countchar(str))

 (2)用了内置函数

def countchar(str):
    wordlist=[chr(i) for i in range(97,23)]
    str=str.lower()
    result=[]
    for index,value in enumerate(wordlist):
        a=str.count(value)
        result[index]=a
    return result
# if _name_=="_main_":
    str=input()
    print(countchar(str))

 仍旧出错,Nameerror是什么问题?几次同时出现

>>> ===================== RESTART: D:/Python27/yy/excer_3.py =====================

>>> aaAAbDC

Traceback (most recent call last):   File "<pyshell#1>", line 1, in <module>  

   aaAAbDC

NameError: name 'aaAAbDC' is not defined

>>>

(3)当然还有这个,最后这个可以成功运行,但是提交到系统里又不行了,幸好我不想买他们的证书。虽然程序运行出来了,但是我还是不知道上面两个代码哪里错了

def countchar(str):
    s=str.lower()
    result=[]
    for index,value in enumerate([chr(i) for i in range(97,123)]):
        result.append(s.count(value))
    return result
str=raw_input()
print countchar(str)

 

推荐阅读