我正在制作一个计算器程序,而我目前正试图将用户的输入变成一个字符串。我能够根据他们按下的按钮创建一个列表。因此,如果他们按下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'和'列出'对象
答案 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