python - 迭代用户输入并转换为二进制
问题描述
我正在做一个二进制计数器程序。我需要它来打印十进制等价物和相应的二进制等价物......
到目前为止,我已经设法做到了这一点,但是我需要将二进制文件从 0 转换为用户输入值,我一直在玩它,但我无法弄清楚:感谢任何帮助:)
Please enter number: 12
Decimal: 1 = binary: 1100
Decimal: 2 = binary: 1100
Decimal: 3 = binary: 1100
Decimal: 4 = binary: 1100
Decimal: 5 = binary: 1100
Decimal: 6 = binary: 1100
Decimal: 7 = binary: 1100
Decimal: 8 = binary: 1100
Decimal: 9 = binary: 1100
Decimal: 10 = binary: 1100
Decimal: 11 = binary: 1100
Decimal: 12 = binary: 1100
从这段代码
dec = input('Please enter number')
new_list = []
index = 0
output = ''
counter = 0
dec = int(dec)
upper_range = int(dec)
#for x in range(0,upper_range):
while dec > 0:
output += str(dec % 2)
dec = (dec // 2)
output = output[::-1]
new_list.append(output)
while counter < upper_range:
print('Decimal:', counter + 1, end=' ',)
print(' = binary:' , *new_list)
counter = counter + 1
解决方案
您应该改为在循环内进行十进制到二进制的转换;否则它只进行上限值的转换:
dec = input('Please enter number')
counter = 1
upper_range = int(dec)
while counter <= upper_range:
binary = ''
dec = counter
while dec > 0:
binary += str(dec % 2)
dec = (dec // 2)
binary = binary[::-1]
print('Decimal:', counter, end=' ',)
print(' = binary:' , binary)
counter = counter + 1
推荐阅读
- python - 使用 Python 类型提示来指定一个类型应该就是那个?
- go - 将附加参数传递给回调
- php - 有没有办法在 HTML 标签中使用字体作为内联?
- c# - 设备重启后更快地获取推送通知
- microservices - 每个用户的 Keycloak 硬编码声明
- coq - 为什么基于微积分的语言如此多地使用 Setoid?
- mysql - 如何在 MySQL 中找到不同组的列的聚合总和的差异?
- python - 装饰器函数来包装一个函数?
- android - 如何使用 RxAndroidBle 调用多个 setupIndication
- vue.js - NuxtJS中如何为publicPath、outputDir、indexPath配置不同的路径