在python中切片字符串时未获得正确的结果
我将24位长的二进制数切成3个8位长的数字。 下面是我的代码:在python中切片字符串时未获得正确的结果,python,Python,我将24位长的二进制数切成3个8位长的数字。 下面是我的代码: def extract_number(number): number_in_string = str(number) red = number_in_string[:8] green = number_in_string[8:16] blue = number_in_string[16:24] return [int(red), int(green), int(blue)] if __nam
def extract_number(number):
number_in_string = str(number)
red = number_in_string[:8]
green = number_in_string[8:16]
blue = number_in_string[16:24]
return [int(red), int(green), int(blue)]
if __name__ == '__main__':
print(extract_number(101111010110011011100100))
我从终点站得到的结果是
[10111101, 1100110, 11100100]
问题出现在第二个数字中。当我在字符串[8:16]中对\u进行编号时,它的数字不是8位数长。我在这里使用的切片函数是错误的吗?您正确地使用了切片函数
In [28]: str(101111010110011011100100)[8:16]
Out[28]: '01100110'
第二个数字的前导零在将字符串转换为整数后被忽略
In [29]: int('01100110')
Out[29]: 1100110
您使用十进制表示的数字,但提到二进制。这有什么原因吗?我想推荐你使用二进制基数
def extract_number(number):
number_in_string = bin(number)[2:]
red = number_in_string[:8]
green = number_in_string[8:16]
blue = number_in_string[16:24]
return [int(red, 2), int(green, 2), int(blue, 2)]
if __name__ == '__main__':
print(extract_number(0b101111010110011011100100))
上面的代码输出
[189, 102, 228]
如果您需要这些数字的二进制表示,请使用内置函数正确使用切片函数
In [28]: str(101111010110011011100100)[8:16]
Out[28]: '01100110'
第二个数字的前导零在将字符串转换为整数后被忽略
In [29]: int('01100110')
Out[29]: 1100110
您使用十进制表示的数字,但提到二进制。这有什么原因吗?我想推荐你使用二进制基数
def extract_number(number):
number_in_string = bin(number)[2:]
red = number_in_string[:8]
green = number_in_string[8:16]
blue = number_in_string[16:24]
return [int(red, 2), int(green, 2), int(blue, 2)]
if __name__ == '__main__':
print(extract_number(0b101111010110011011100100))
上面的代码输出
[189, 102, 228]
如果您需要这些数字的二进制表示,请使用内置函数正确使用切片函数
In [28]: str(101111010110011011100100)[8:16]
Out[28]: '01100110'
第二个数字的前导零在将字符串转换为整数后被忽略
In [29]: int('01100110')
Out[29]: 1100110
您使用十进制表示的数字,但提到二进制。这有什么原因吗?我想推荐你使用二进制基数
def extract_number(number):
number_in_string = bin(number)[2:]
red = number_in_string[:8]
green = number_in_string[8:16]
blue = number_in_string[16:24]
return [int(red, 2), int(green, 2), int(blue, 2)]
if __name__ == '__main__':
print(extract_number(0b101111010110011011100100))
上面的代码输出
[189, 102, 228]
如果您需要这些数字的二进制表示,请使用内置函数正确使用切片函数
In [28]: str(101111010110011011100100)[8:16]
Out[28]: '01100110'
第二个数字的前导零在将字符串转换为整数后被忽略
In [29]: int('01100110')
Out[29]: 1100110
您使用十进制表示的数字,但提到二进制。这有什么原因吗?我想推荐你使用二进制基数
def extract_number(number):
number_in_string = bin(number)[2:]
red = number_in_string[:8]
green = number_in_string[8:16]
blue = number_in_string[16:24]
return [int(red, 2), int(green, 2), int(blue, 2)]
if __name__ == '__main__':
print(extract_number(0b101111010110011011100100))
上面的代码输出
[189, 102, 228]
如果需要这些数字的二进制表示,请使用内置函数尝试按原样返回字符串。将它们转换为整数将从字符串中删除任何前导零(如果存在)。更正了这里的代码-
def extract_number(number):
number_in_string = str(number)
red = number_in_string[:8]
green = number_in_string[8:16]
blue = number_in_string[16:24]
return [red, green, blue]
if __name__ == '__main__':
print(extract_number(101111010110011011100100))
输出-
['10111101', '01100110', '11100100']
尝试按原样返回字符串。将它们转换为整数将从字符串中删除任何前导零(如果存在)。更正了这里的代码-
def extract_number(number):
number_in_string = str(number)
red = number_in_string[:8]
green = number_in_string[8:16]
blue = number_in_string[16:24]
return [red, green, blue]
if __name__ == '__main__':
print(extract_number(101111010110011011100100))
输出-
['10111101', '01100110', '11100100']
尝试按原样返回字符串。将它们转换为整数将从字符串中删除任何前导零(如果存在)。更正了这里的代码-
def extract_number(number):
number_in_string = str(number)
red = number_in_string[:8]
green = number_in_string[8:16]
blue = number_in_string[16:24]
return [red, green, blue]
if __name__ == '__main__':
print(extract_number(101111010110011011100100))
输出-
['10111101', '01100110', '11100100']
尝试按原样返回字符串。将它们转换为整数将从字符串中删除任何前导零(如果存在)。更正了这里的代码-
def extract_number(number):
number_in_string = str(number)
red = number_in_string[:8]
green = number_in_string[8:16]
blue = number_in_string[16:24]
return [red, green, blue]
if __name__ == '__main__':
print(extract_number(101111010110011011100100))
输出-
['10111101', '01100110', '11100100']
嘿我在此处未看到任何更改0_0@Kahsn我不明白你为什么看不到任何变化。再次检查答案。我已经用输出更新了它。注意,我返回的是切片字符串,没有将它们转换为整数。哦,我的错。我完全错过了int()部分。哥们儿,嘿!我在此处未看到任何更改0_0@Kahsn我不明白你为什么看不到任何变化。再次检查答案。我已经用输出更新了它。注意,我返回的是切片字符串,没有将它们转换为整数。哦,我的错。我完全错过了int()部分。哥们儿,嘿!我在此处未看到任何更改0_0@Kahsn我不明白你为什么看不到任何变化。再次检查答案。我已经用输出更新了它。注意,我返回的是切片字符串,没有将它们转换为整数。哦,我的错。我完全错过了int()部分。哥们儿,嘿!我在此处未看到任何更改0_0@Kahsn我不明白你为什么看不到任何变化。再次检查答案。我已经用输出更新了它。注意,我返回的是切片字符串,没有将它们转换为整数。哦,我的错。我完全错过了int()部分。哥达查。