NameError:名称'e'未定义,如何计算正确

  1. 我把句子分开了。
  2. 第二步,我要计算变量“ s”中的字符“ e”。

我尝试了s_list.count(e)s_list.count("e")和许多其他

代码:

s = "Ich lerne Python"

s_list = s.split() #Spaltung vom String
s_list.sort() #Sortierung

print(s_list)


s_list.count(e)
print(s_list)

['Ich','Python','lerne']
---------------------------------------------------------------------------
NameError                                 Traceback (most recent call last)
<ipython-input-72-29d14ddb1793> in <module>()
      3 s_list.sort() #Sortierung
      4 print(s_list)
----> 5 s_list.count(e)
      6 print(s_list)

NameError: name 'e' is not defined
weiyi961013 回答:NameError:名称'e'未定义,如何计算正确

为什么不简单地s.count("e")。您可以直接在字符串上使用count方法。正如您在问题中所指出的那样,您遇到了问题,但是您显然已经尝试了不同的方法,即e是一个变量,并且您要搜索"e",即字母“ e”。 / p>

但是,在应用split方法之后,您会在字符串列表中搜索字母“ e”。您找不到任何内容,因为您的列表没有条目“ e”,而是显示以下内容:['Ich','lerne','Python']。分割不会在每个字母之后分割,而是在空格处分割。

如果要遍历分割后的字符串,可以执行以下操作:

count_e = 0
for word in s_list:
    count_e = count_e + word.count("e")

或列表理解:

count_e = sum([word.count("e") for word in s_list])
,

有多种方法可以对字符串中的特定字符进行计数,以下是您可以使用的两种方法,我建议使用方法2,因为它使用count函数较为简单,并且可以消除循环。 / p>

方法1-循环

# initializing string  
test_str = "Ich lerne Python"

# counting e  
count = 0

for i in test_str: 
    if i == 'e': 
        count = count + 1

方法2-计数

# count() 

# initializing string  
test_str = "Ich lerne Python"

# using count() to get count  
# counting e  
counter = test_str.count('e') 

# printing result  
print ("Count of e in Ich lerne Python is : " +  str(counter))
,

如果您有包含字符串的列表,则必须分别为每个字符串计算"e"并求和。

s_list = ['Ich','Python','lerne']

result = 0

for word in s_list:
    result = result + word.count("e")

print(result)

与列表理解相同

s_list = ['Ich','lerne']

result = sum(word.count("e") for word in s_list)

print(result)

顺便说一句:您可以在分割"e"之前将其计数

s = "Ich lerne Python"

result = s.count("e")

print(result)
本文链接:https://www.f2er.com/3159818.html

大家都在问