python - 从我创建的列表中仅提取一个元素
问题描述
议程:
简单地说,我想将二进制数更改为十进制数。我知道 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)
解决方案
而不是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
。
推荐阅读
- laravel - Laravel 关系,需要建议
- python-3.x - 循环页面并将详细内容保存为 Python 中的数据框
- python - 我可以使用 spacy 在字符串中识别“问题词”(谁,如何,何时......)?
- javascript - 注销后如何清除浏览器缓存(内存/磁盘缓存)?
- r - 使特征返回不同的类
- web - 静态 Markdown 网站的实时服务器
- java - 如何在 Spring Data Mongo 中将“$min”运算符与多个表达式一起使用?
- r - 在R中将天转换为周
- php - 随机生成4位代码并检查是否存在,然后重新生成
- python - pandas groupby 并聚合参数'as_index'的多个值