Tkinter 在“”.join() 之后插入输出为 [list]
Tkinter Insert outputting as [list] after "".join()
我正在制作一个 python 程序,它使用 tkinter GUI 将数字转换为二进制。在条目上使用 e.insert 时,它将 return 一个普通字符串:
0101010011
作为
[0, 1, 0, 1...]
将数字转换为二进制的函数。我知道 bin() 替代方案存在,我只是想创建自己的替代方案。
def dec2bin(decnum):
binarylist = []
while (decnum > 0):
binarylist.append(decnum % 2)
decnum = decnum // 2
binarylist.reverse()
binarylist = str(binarylist)
return "".join(binarylist)
按下 tkinter gui 中的按钮时调用的函数,该按钮旨在用二进制输出替换输入框的文本之一。
def convert():
decimal = entrydec.get()
decimal = int(decimal)
entrybin.delete(0, END)
entrybin.insert(0, dec2bin(decimal))
我期望输出010101,但实际输出是[0, 1, 0, 1, 0, 1]
您不能在列表上使用 str()
- str([0, 1, 0, 0])
来获取包含字符串的列表 - ["0", "1", "0", "0"]
您可以使用列表理解:
binarylist = [str(x) for x in binarylist]
或map()
:
binarylist = map(str, binarylist)
或者您必须在添加到列表时将数字 0
,1
转换为字符串:
binarylist.append( str(decnum % 2) )
以后可以使用join()
def dec2bin(decnum):
binarylist = []
while (decnum > 0):
binarylist.append( str(decnum % 2) ) # <-- use str()
decnum = decnum // 2
binarylist.reverse()
#binarylist = str(binarylist) # <-- remove it
return "".join(binarylist)
dec2bin(12)
结果:
"1100"
我正在制作一个 python 程序,它使用 tkinter GUI 将数字转换为二进制。在条目上使用 e.insert 时,它将 return 一个普通字符串: 0101010011 作为 [0, 1, 0, 1...]
将数字转换为二进制的函数。我知道 bin() 替代方案存在,我只是想创建自己的替代方案。
def dec2bin(decnum):
binarylist = []
while (decnum > 0):
binarylist.append(decnum % 2)
decnum = decnum // 2
binarylist.reverse()
binarylist = str(binarylist)
return "".join(binarylist)
按下 tkinter gui 中的按钮时调用的函数,该按钮旨在用二进制输出替换输入框的文本之一。
def convert():
decimal = entrydec.get()
decimal = int(decimal)
entrybin.delete(0, END)
entrybin.insert(0, dec2bin(decimal))
我期望输出010101,但实际输出是[0, 1, 0, 1, 0, 1]
您不能在列表上使用 str()
- str([0, 1, 0, 0])
来获取包含字符串的列表 - ["0", "1", "0", "0"]
您可以使用列表理解:
binarylist = [str(x) for x in binarylist]
或map()
:
binarylist = map(str, binarylist)
或者您必须在添加到列表时将数字 0
,1
转换为字符串:
binarylist.append( str(decnum % 2) )
以后可以使用join()
def dec2bin(decnum):
binarylist = []
while (decnum > 0):
binarylist.append( str(decnum % 2) ) # <-- use str()
decnum = decnum // 2
binarylist.reverse()
#binarylist = str(binarylist) # <-- remove it
return "".join(binarylist)
dec2bin(12)
结果:
"1100"