如何调整Python代码仅输出字符串字母、数字、空格的最终统计结果
字符串统计代码调整方案
问题核心原因
逐次展示中间统计过程的现象,本质是输出语句的缩进位置错误:三行打印语句被放在了for循环的代码块内部,程序每遍历完一个字符、完成一次统计值更新,就会触发一次打印,把当前的临时统计值直接输出,直到整个循环跑完。
具体调整方法
- 把三行打印结果的语句从
for循环的内部缩进层级移出,对齐到和for循环同级的位置,让程序先跑完所有字符的统计逻辑,再统一执行打印 - 修正原代码的不规范书写:去掉
i.和字符串方法名之间的多余空格(比如原代码中i. isalpha()、i. isnumeric()的点号后存在无意义空格,属于会触发语法报错的书写瑕疵),删掉没有实际作用的else: pass空分支
调整后完整可运行代码
text = input('str :') letters = 0 digit = 0 space = 0 for i in text: if i.isalpha(): letters = letters + 1 elif i.isnumeric(): digit = digit + 1 elif i.isspace(): space = space + 1 # 全量遍历统计完成后再输出最终结果 print(f"字母数量:{letters}") print(f"数字数量:{digit}") print(f"空格数量:{space}")
调整后程序运行时,只会在整个字符串遍历统计完成后,一次性输出三个最终统计值,不会再逐次展示中间过程。
内容的提问来源于stack exchange,提问作者black820
相关产品推荐
相关产品推荐

