列表中的字符串未正确添加到空字符串中

时间:2017-07-14 20:50:23

标签: python-2.7 calculator

我正在制作一个计算器程序,而我目前正试图将用户的输入变成一个字符串。我能够根据他们按下的按钮创建一个列表。因此,如果他们按下5,则字符串将是' 5'并且如果他们按下8后,它将是' 58'等等。因此,每次按下按钮时,我已将该号码添加到列表中,因此在最后一个示例中,列表将是[' 5',' 8']。我试图把这些串起来,但是我遇到了问题。

from Tkinter import *


root=Tk()
root.geometry('300x500')
root.configure(bg="gray")
root.title("Calculator")

typed_num=[]

def button_command(number):
    typed_num.append(str(number))

    string_num=''
    for val in typed_num:
        string_num+=typed_num
    print string_num


startx=20
starty=60

one_button=Button(root, text="1", command=lambda:button_command(1), highlightbackground='gray').place(x=startx, y=starty)
two_button=Button(root, text="2", command=lambda:button_command(2), highlightbackground='gray').place(x=startx+60, y=starty)
three_button=Button(root, text="3", command=lambda:button_command(3), highlightbackground='gray').place(x=startx+120, y=starty)
four_button=Button(root, text="4", command=lambda:button_command(4), highlightbackground='gray').place(x=startx, y=starty+60)
five_button=Button(root, text="5", command=lambda:button_command(5), highlightbackground='gray').place(x=startx+60, y=starty+60)
six_button=Button(root, text="6", command=lambda:button_command(6), highlightbackground='gray').place(x=startx+120, y=starty+60)
seven_button=Button(root, text="7", command=lambda:button_command(7), highlightbackground='gray').place(x=startx, y=starty+120)
eight_button=Button(root, text="8", command=lambda:button_command(8), highlightbackground='gray').place(x=startx+60, y=starty+120)
nine_button=Button(root, text="9", command=lambda:button_command(9), highlightbackground='gray').place(x=startx+120, y=starty+120)
zero_button=Button(root, text="0", command=lambda:button_command(0), highlightbackground='gray').place(x=startx+60, y=starty+180)


root.mainloop()

非常感谢任何和所有帮助!返回的错误是:TypeError:无法连接' str'和'列出'对象

2 个答案:

答案 0 :(得分:1)

您正在此处尝试此连接:string_num+=typed_num。如果要将项添加到列表中,可以使用append,例如typed_num.append(string_num)。您尝试向字符串添加列表,但您可以将字符串添加到列表中。 “+”也可以使用但反过来

答案 1 :(得分:1)

问题是由于你想要添加一个包含字符串的列表而引起的,该操作是不可能的,我认为你想做的是连接它们你必须改变:

provideTasks

string_num+=typed_num

连接字符串列表的一种简单方法是加入,为此它会改变:

string_num+=val

为:

string_num=''
for val in typed_num:
    string_num+=typed_num
print string_num