如何用Python统计整数输入及Bytes转二进制后的分组数量?
一、统计整数输入的数量
场景1:输入一行空格分隔的整数
读取输入后按空格分割,转换为整数列表后统计长度:
input_str = input("请输入空格分隔的整数:") int_list = list(map(int, input_str.split())) count = len(int_list) print(f"整数输入数量:{count}")
场景2:逐个输入直到终止
通过循环接收输入,判断是否为有效整数,计数至输入终止符(如q):
count = 0 while True: user_input = input("请输入整数(输入q结束):") if user_input.lower() == 'q': break try: int(user_input) count += 1 except ValueError: print("输入不是有效整数,请重新输入") print(f"整数输入数量:{count}")
二、统计二进制分组数量(解决split报错问题)
首先优化你的biner函数,移除冗余代码:
def biner(password): return ' '.join(f'{my_byte:0>8b}' for my_byte in password)
方法1:基于转换后的字符串统计
函数返回的是字符串类型,直接用split()分割分组后取长度即可:
byte_data = b'\xd8\xe9\xbdR' binary_str = biner(byte_data) group_count = len(binary_str.split()) print(f"二进制分组数量:{group_count}") # 输出4
之前报错是因为误在bytes对象上调用split(),确保调用对象是转换后的字符串即可。
方法2:直接统计原bytes长度(更高效)
每个字节对应一个8位二进制分组,因此分组数量等于原bytes对象的长度,无需转换字符串:
byte_data = b'\xd8\xe9\xbdR' group_count = len(byte_data) print(f"二进制分组数量:{group_count}") # 输出4
内容的提问来源于stack exchange,提问作者HelpMe
相关产品推荐
相关产品推荐

