Python如何在循环中逐位取输入字符实现英文转二进制功能
实现方案
核心优化逻辑
- 无需手动编写26个字母+空格的判断分支,使用Python内置的
ord()函数即可直接获取字符的ASCII编码,再通过format()方法转为8位补前导0的二进制字符串,完全覆盖你的需求 - 逐字符提取直接利用字符串的可迭代特性/索引遍历即可实现,无需额外引入第三方依赖
逐字符处理代码实现
方案1:每次输入一行后,按顺序连续处理该行所有字符
import time while True: input_str = input("Ltr:") # 按顺序遍历输入字符串的每一个字符 for char in input_str: if char == ' ': print(" ") # 仅处理小写字母,其他字符可自行扩展规则 elif 'a' <= char <= 'z': print(format(ord(char), '08b')) time.sleep(0.001)
方案2:每次while循环仅处理1个字符,处理完成后进入下一轮循环
如果你需要严格遵循「每次循环处理一个字符」的逻辑,处理完单个字符就结束当次循环,可以用索引记录当前处理位置:
import time pending_str = "" current_idx = 0 while True: # 待处理字符全部消费完后接收新的输入 if current_idx >= len(pending_str): pending_str = input("Ltr:") current_idx = 0 # 取当前位置的字符,索引后移一位 char = pending_str[current_idx] current_idx += 1 if char == ' ': print(" ") elif 'a' <= char <= 'z': print(format(ord(char), '08b')) time.sleep(0.001)
内容的提问来源于stack exchange,提问作者Manuel Pozzoni
相关产品推荐
相关产品推荐

