如何统计给定字符串的字母、数字和特殊符号?代码无输出问题排查
问题排查与修复
你的函数运行无输出及代码存在的问题如下:
1. 核心无输出原因:未调用函数
你仅定义了find_digits_chars_symbols函数,但没有在代码末尾触发函数调用,函数内部的逻辑完全未执行,因此没有任何输出。需要添加函数调用语句,比如传入测试字符串执行。
2. 变量名拼写错误
else分支中写的是symbol += 1,但初始化的统计变量是symbols(复数形式),这会导致运行时抛出NameError错误。
3. 字母判断逻辑不准确
"A"<=i <= "z"的判断有漏洞,ASCII表中大写字母与小写字母之间存在[、\、]等非字母字符,这些字符会被错误判定为字母。使用字符串内置的isalpha()方法判断字母更可靠。
修复后的完整代码
def find_digits_chars_symbols(a): letters = 0 digits = 0 symbols = 0 for i in a: if i.isalpha(): letters += 1 elif i.isdigit(): digits += 1 else: symbols += 1 print("Letters=", letters) print("Digits=", digits) print("Symbols=", symbols) # 调用函数,传入测试字符串 find_digits_chars_symbols("Hello123!@#")
运行示例
传入测试字符串"Hello123!@#"后,输出结果为:
Letters= 5 Digits= 3 Symbols= 3
内容的提问来源于stack exchange,提问作者Ankita
相关产品推荐
相关产品推荐

