python - 我正在尝试 WAP 将拒绝转换为二进制而不使用列表
问题描述
我已经看过几个程序。只是想知道这个逻辑有什么问题。它不断返回'str'对象不支持项目分配。我查了一下,但仍然找不到发生这种情况的原因。我只是一个新手,所以如果我只是想太多,请提前道歉。
x = dec
a = 5
n = 1
remainder = str()
binary = str()
while a != 1:
a = x // 2
b = x % 2
x = a
z = str(b)
remainder = str(remainder + z)
if a == 1:
b = 1
z = str(b)
remainder = str(remainder + z)
print(remainder)
asd = len(remainder)
for y in range(1, asd + 1):
binary[y:y + 1] = remainder[-y:-y - 1]
print("It's binary form is ", binary)
解决方案
问题在这里:
for y in range(1, asd + 1):
binary[y:y + 1] = remainder[-y:-y - 1]
# ^^^^^^^^^^^^^ error
你期望这会做什么?Python 字符串是不可变的:您不能分配给字符串切片。您只能使用该值(例如,赋值的右侧),或替换变量的整个值。
我怀疑您正在尝试反转字符串。像这样做:
rev = remainder[::-1] # Whole string, but in reverse order
推荐阅读
- ruby-on-rails - 编码 iso-8859-1 不适用于 rails 5
- c# - 如何在执行共同任务时等待多个线程?
- python-3.x - SQLAlchemy 表达式语言和 SQLite 的删除级联
- javascript - 这里声明了什么?申报后的样子如何?
- hashicorp-vault - Hashicorp 保险库 - “个人保险库”政策问题
- python - Python - 字符串中的每个其他字母在循环中大写,其中数据是从用户输入的复制列表中传递下来的
- process - ubuntu中多个进程之间通信的最佳方式是什么
- python - 如何删除我的数据集中的垃圾值或缺失值?
- node.js - Node.js 和 Express - BadRequestError:请求中止
- wordpress - 使用 Docker 文件错误将文件从主机复制到 Docker 容器