编写输入输出以在手指上进行二进制计数

问题描述 投票:0回答:1

我对编码非常陌生,并试图找出如何编写代码,在其中输入数字,它会为您提供以二进制显示它所需的手指(如果未知的右手拇指=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}
binary user-input
1个回答
0
投票

你可以这样做:

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代码。

© www.soinside.com 2019 - 2024. All rights reserved.