首页 > 解决方案 > 使用python中的函数将十进制数字转换为二进制

问题描述

我必须为我的班级创建一个程序来将十进制数转换为二进制,但我迷路了。这些是方向。3 必须使用文件

用户输入.py

从用户那里获取一个 0-255 之间的整数。
user_input.py 中不允许转换或打印语句
获取整数必须在函数中完成
不允许导入语句

转换.py

将提供的数字转换为二进制数(例如,提供 254 并转换为 11111110)
没有打印语句、输入语句或将数字转换为二进制的内置函数。转换必须手动完成。
小提示,连接 1 和 0 将很难 b/c python 会想要添加数字(例如,1+1 = 2 vs 1+1 = 11)。那么,你将如何处理这个问题呢?
转换必须在函数中完成
不允许导入语句

主文件

打印提供和转换的数字的八位二进制表示 (00000000 - 11111111)。为此,您必须访问 conversion.py 和 user_input.py 中的必要函数
注意 - 该程序只允许访问函数。不允许直接访问变量。
main.py 中不允许输入或转换 注意 - 二进制打印只能是八个二进制数。没有逗号、括号等 - 不允许使用 ['1', '0', '0', ...] 或 [1,1,0,0,1..]。

使函数获取我使用的输入数字

  def number ():
    num =int(input('Pick a number from 0 - 255'))
    return num
  number()

在那之后,当我不知道如何在不导入它的情况下访问它时。这是我用来转换的代码

def conversion(num):
cnv_bin = ''
num = ''
while num // 2 > 0:
    if num % 2 == 0:
        cnv_bin += '0'
    else:
        cnv_bin += '1'
    num = num // 2
return cnv_bin

在我尝试的最后一个文件中

import conversion
import user_input
print(conversion.conversion(user_input.number()))

这给了我这个错误

Traceback (most recent call last):
File "C:/Users/adkir/PycharmProjects/lab_23/main.py", line 4, in <module>
print(conversion.conversion(user_input.number()))
File "C:\Users\adkir\PycharmProjects\lab_23\conversion.py", line 5, in 
conversion
while num // 2 > 0:
TypeError: unsupported operand type(s) for //: 'str' and 'int'

所以基本上我迷路了。谁能指出我正确的方向,以便我解决这个问题?

标签: python

解决方案


您的conversion函数将num其作为参数,但它num通过为其分配一个空字符串来覆盖它的值。

删除行:

num = ''

它应该可以工作。


推荐阅读