使用python中的函数将十进制数字转换为二进制

时间:2018-11-19 18:47:56

标签: python

我必须为我的班级创建一个将十进制数字转换为二进制的程序,但即时消息丢失了。这些是方向。 必须使用3个文件

user_input.py

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

conversion.py

将提供的数字转换为二进制数字(例如,提供254并转换为11111110)
没有用于将数字转换为二进制的打印语句,输入语句或内置函数。转换必须手动完成。
小提示,将1和0串联起来会很困难b / c python将要添加数字(例如1 + 1 = 2与1 + 1 = 11)。那么,您将如何处理此问题?
转换必须在函数中完成
不允许导入语句

main.py

打印提供并转换的数字的八位二进制表示形式(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'

所以基本上我输了。谁能指出我的正确方向,以便我找出答案?

1 个答案:

答案 0 :(得分:1)

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

删除行:

num = ''

它应该可以工作。