我有一个接受字符串输入的函数。我想计算输入中没有字符串。
例如,我有一个字符串汽车=“丰田,本田,丰田,宝马,丰田”
我想要一个不会返回字符串的函数
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”
答案 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)