编写生成器函数,接受一个字符串,分别统计大写字母,小写字母,数字,其他字符的数量,以元组返回结果
时间: 2024-01-13 11:05:28 浏览: 90
好的,以下是生成器函数的代码:
```python
def count_chars(string):
upper_count = 0
lower_count = 0
digit_count = 0
other_count = 0
for char in string:
if char.isupper():
upper_count += 1
elif char.islower():
lower_count += 1
elif char.isdigit():
digit_count += 1
else:
other_count += 1
yield (upper_count, lower_count, digit_count, other_count)
```
这个函数接受一个字符串作为参数,并使用一个循环遍历字符串中的每个字符。然后检查每个字符是否是大写字母、小写字母、数字或其他字符,并相应地增加计数器的值。
最后,函数使用 `yield` 语句将一个元组返回,其中包含每个计数器的值。请注意,由于这是一个生成器函数,所以我们可以使用 `next()` 函数来获取它的结果,如下所示:
```python
string = "Hello World! 123"
result = count_chars(string)
print(next(result)) # 输出 (2, 8, 3, 2)
```
这里的 `next()` 函数调用将执行 `count_chars()` 函数,并返回它生成的第一个元组。在这个例子中,结果是 `(2, 8, 3, 2)`,表示字符串中有 2 个大写字母,8 个小写字母,3 个数字和 2 个其他字符。
阅读全文