我对python脚本有一些问题。我不太擅长这门语言,因为我在为我的朋友做一些事情。你知道吗
代码正在运行,但是输出是直接向上的。一些随机的东西而不是二进制数。你知道吗
代码如下:
def decToBin(n):
wynik = ""
while n > 0:
wynik = str(n % 2) + wynik
n = n / 2
return wynik
print("zamiana liczb z systemu dziesietnego na binarny")
with open('program.txt', 'r') as plik: # otwieramy plik do odczytu
for line in plik:
x=int(line)
with open('wyniki.txt', 'w') as plik1:
plik1.write(decToBin(x))
plik1.close()
plik.close()
下面是脚本的链接: repl.it
/编辑 好吧,算了吧,现在代码是这样的:
def decToBin(n):
wynik = ""
while n > 0:
wynik = str(n % 2) + wynik
n = int(n/2)
return wynik
plik1=open('wyniki.txt', 'w')
print("zamiana liczb z systemu dziesietnego na binarny")
with open('program.txt', 'r') as plik: # otwieramy plik do odczytu
for line in plik:
x = int(line)
plik1.write(decToBin(x))
plik1.write("\n")
plik1.close()
第一件事:已经有一些东西正是你想做的,所以使用它是明智和有效的:
我想,代码中的问题是您使用的是python3.x,其中整数之间的标准除法返回一个float(从[https://www.python.org/dev/peps/pep-0238/][PEP-0238]开始)。 这里有一个建议,你应该如何改变你的功能,使它工作。您可以对照内置的bin功能进行检查:
下面是一种针对文本示例的方法—Python不会像Java/C那样将字符转换为int。相反,您将获得序数值,然后将其转换为二进制数
我认为这种方法值得用一个输入文件的示例来尝试,然后重构为一个文件r/w
要对文件执行此操作,请尝试以下操作:
如果要反转字节的顺序,可以反转或更改整个文件 写入\u str+=str(到\u bin(每个\u字符)) 到 write_str=str(到\u bin(每个字符))+write_str
相关问题 更多 >
编程相关推荐