"""练习 2:统计字符串中的英文字母、数字、空格及字符频次。 输入一行字符串;输出字符频次时用 repr 显示空格等字符。 学习说明: - input() 读取一整行文本;for 循环每次取出一个字符。 - 通过 if 判断分别统计 ASCII 英文字母、数字和普通空格。 - 用字典保存字符和次数;先判断字符是否已经在字典中,再增加次数。 - repr(ch) 会把空格显示成可辨认的形式。 """ text = input() letters = 0 digits = 0 spaces = 0 char_counts = {} for ch in text: if ch.isascii(): if ch.isalpha(): letters = letters + 1 if ch.isdigit(): digits = digits + 1 if ch == " ": spaces = spaces + 1 if ch in char_counts: char_counts[ch] = char_counts[ch] + 1 else: char_counts[ch] = 1 print("letters:", letters) print("digits:", digits) print("spaces:", spaces) print("frequencies:") for ch in char_counts: count = char_counts[ch] print(repr(ch), count)