未解决的参考 - Python

时间:2016-06-20 10:32:30

标签: python

我有一个接受字符串输入的函数。我想计算输入中没有字符串。

例如,我有一个字符串汽车=“丰田,本田,丰田,宝马,丰田”

我想要一个不会返回字符串的函数

toyota_count = 0
honda_count = 0
BMW_count = 0

def count_cars(cars):
    if "toyota" in cars:
        toyota_count += 1
    if "honda" in cars:
        honda_count += 1

但是这给了我函数中toyota_count的错误,它说“未解决的参考toyota_count”

3 个答案:

答案 0 :(得分:2)

因为toyota_count是全球性的。 在方法中定义变量(首选)或在methot中将其指定为全局,如下所示:

def myfunc():
  gobal toyota_count

<强> 修改

您也可以使用cars.count("Toyota")来获取字符串中的子字符串总数。

答案 1 :(得分:1)

假设您的字符串不重叠,只需使用字符串count()方法。虽然这不是超级高效(三次调用count(),因此有3次搜索),但它符合您描述的用例。

cars = "Toyota, Honda, Toyota, BMW, Toyota"
toyota_count = cars.count("Toyota")
honda_count = cars.count("Honda")

答案 2 :(得分:1)

toyota_count = 0
honda_count = 0
BMW_count = 0

def count_cars(cars):
    global toyota_count
    toyota_count = cars.count('Toyota')


count_cars("Toyota, Honda, Toyota, BMW, Toyota")
print (toyota_count)