python - 使用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'
所以基本上我迷路了。谁能指出我正确的方向,以便我解决这个问题?
解决方案
您的conversion
函数将num
其作为参数,但它num
通过为其分配一个空字符串来覆盖它的值。
删除行:
num = ''
它应该可以工作。
推荐阅读
- javascript - 使用 p5.js 在图像上摆动形状
- python - Google 上传某些文件失败
- elasticsearch - 在 Fluentd 中查找上次缓冲区刷新的时间戳
- java - 如何在freemarker中使用保留字符(#)作为插值
- django - Django ModelForm 不保存任何数据
- c++ - 将 std::string 转换为 char* 的问题
- docker - Kubernetes 服务不会在 Pod 之间分发请求
- amazon-web-services - Cloudwatch 访问超过 5 次的用户数
- java - 显示重复项目的回收站视图
- sql - 使用 PostgreSQL 从数组中获取标签