我对编码非常陌生,并试图找出如何编写代码,在其中输入数字,它会为您提供以二进制显示它所需的手指(如果未知的右手拇指=1,右索引=2右中=4右环) =8 右小指=16,左小指=32 左环=64 左中指=128 左食指=256 左拇指=512 你交替使用手指,将它们加在一起产生数字)
我尝试在这里查找输入数字输出字母代码,但是当我将其插入时,它无法运行,而且我不知道如何修复它。
characters = 'abcdefghij'
d = {}
for x in range(len(characters)):
d[characters[x]] = x+1
print(d)
prints {'a': 1, 'b': 2, 'c': 4, 'd': 8, 'e': 16, 'f': 32, 'g':
64, 'h': 128, 'i': 256, 'j': 512}
你可以这样做:
def number_to_fingers(number):
fingers = {
'left_thumb': 512,
'left_index': 256,
'left_middle': 128,
'left_ring': 64,
'left_pinky': 32,
'right_pinky': 16,
'right_ring': 8,
'right_middle': 4,
'right_index': 2,
'right_thumb': 1
}
finger_names = []
for finger in fingers:
if number >= fingers[finger]:
finger_names.append(finger)
number -= fingers[finger]
return ", ".join(finger_names)
# Input the number you want to convert to finger names
input_number = int(input("Enter a number: "))
finger_names = number_to_fingers(input_number)
print(f"Output: {finger_names}")
首先将手指映射到字典中的值
fingers
。列表 finger_names
将存储您的结果。然后,对每个手指迭代 fingers
,检查输入数字是否大于或等于与该手指关联的值。如果是,则手指名称会附加到 finger_names
,这意味着二进制表示需要该手指。然后从输入数字中减去手指的值以跟踪要表示的剩余值。最后 ", ".join(finger_names)
将手指名称连接成一个字符串,这样在打印输出中看起来会更漂亮。
这里有一些很好的例子,说明如何编写将十进制数转换为二进制的Python代码。