首页 > 解决方案 > 从我创建的列表中仅提取一个元素

问题描述

议程:

简单地说,我想将二进制数更改为十进制数。我知道 Python 有实现这个目标的内置函数,但我想用代码手动

问题 :

我被困在从使用长度用户输入创建的列表中提取元素的过程中。它只给了我使用长度创建的列表中的一个值是用户输入

我的代码:

user_input = int(input("Enter the binary number "))
change_user_input_to_list = [int(x) for x in str(user_input) ]
# print(type(change_user_input_to_list))
# print(len(change_user_input_to_list))
length_of_user_input = len(change_user_input_to_list)
list_created_with_length_of_user_input = []

for i in range(length_of_user_input):
    calculation_for_making_list_with_length_of_user_input = 2**i
    list_created_with_length_of_user_input.append(calculation_for_making_list_with_length_of_user_input)

print(list_created_with_length_of_user_input)
result =0
coun = 0

#problem is here

while coun <length_of_user_input:
    if list_created_with_length_of_user_input[coun]==1:
        print(list_created_with_length_of_user_input[coun])
    coun= coun+1

print(result)

标签: pythonlist

解决方案


而不是if list_created_with_length_of_user_input[coun]==1:我们需要检查if change_user_input_to_list[coun]==1:.

更改最少的代码:

user_input = int(input("Enter the binary number "))
change_user_input_to_list = [int(x) for x in str(user_input) ]
length_of_user_input = len(change_user_input_to_list)
list_created_with_length_of_user_input = []

for i in range(length_of_user_input):
    calculation_for_making_list_with_length_of_user_input = 2**i
    list_created_with_length_of_user_input.append(calculation_for_making_list_with_length_of_user_input)

result =0
coun = 0

while coun <length_of_user_input:
    if change_user_input_to_list[coun]==1:
        result += list_created_with_length_of_user_input[coun]
    coun= coun+1

print(result)

笔记:

如果输入是10111,那么您的代码会将反转的二进制数转换11101为十进制数29


推荐阅读