我必须为我的班级创建一个将十进制数字转换为二进制的程序,但即时消息丢失了。这些是方向。 必须使用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'
所以基本上我输了。谁能指出我的正确方向,以便我找出答案?
答案 0 :(得分:1)
您的conversion
函数使用num
作为参数,但是它通过向其分配一个空字符串来覆盖num
的值。
删除行:
num = ''
它应该可以工作。