Задать вопрос
@berrybtw

TypeError: can only concatenate str (not "bool") to str как решить?

Захотелось сделать интерфейс к моей программе генератору-проверочнику электронных почт, но возникла проблема. Использовал Tkinter.


Exception in Tkinter callback
Traceback (most recent call last):
File "/Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/tkinter/__init__.py", line 1892, in __call__
return self.func(*args)
File "/Users/user/Desktop/code.py", line 45, in test
tr1 = Label(window, text=val + ":" + is_valid, fg="red")
TypeError: can only concatenate str (not "bool") to str

from tkinter import *
from validate_email import validate_email
import DNS

window = Tk()
window.geometry("300x200")
window.title("HI WORLD")

lbl = Label(window, text="Write name:")  
lbl.grid(column=1, row=0)
lbl2 = Label(window, text="Write lastname:")
lbl2.grid(column=1, row=1)
lbl3 = Label(window, text="Write domain:")
lbl3.grid(column=1, row=2)

name = Entry(window, width=10)
name.grid(column=2, row=0)
namee = Entry(window, width=10)
namee.grid(column=2, row=1)
domain = Entry(window, width=10)
domain.grid(column=2, row=2)

name = str(name)
namee = str(namee)
domain = str(domain)

i1 = name + '@' + domain
i2 = name + '.' + namee + '@' + domain 
i3 = name + namee + '@' + domain
i4 = namee + '@' + domain
i5 = namee + '.' + name + '@' + domain
i6 = name[0] + namee + '@' + domain
i7 = name[0] + '.' + namee + '@' + domain
i8 = name + namee[0] + '@' + domain
i9 = name + '.' + namee[0] + '@' + domain
i10 = name[0] + namee[0] + '@' + domain
i11 = name[0] + '@' + domain

def test():
  for val in i1, i2, i3, i4, i5, i6, i7, i8, i9, i10. i11:
    is_valid = validate_email(val, verify=True)
    if is_valid == True:
      t = Label(window, text=val + ":" + is_valid, fg="green")
      t.grid(column=4, row=4)
    else:
      t1 = Label(window, text=val + ":" + is_valid, fg="red")
      t1.grid(column=4, row=4)
btn = Button(window, text="Checking", command=test)
btn.grid(column = 1, row=3)


window.mainloop()

Так-же хотелось бы узнать, как сделать так, чтобы каждый электронный адрес выводился в новую строку, как в консоли просто несколько принтов.
  • Вопрос задан
  • 289 просмотров
Подписаться 1 Средний Комментировать
Решения вопроса 1
@Alexa2007
tr1 = Label(window, text=val + ":" + 'is_valid\n', fg="red")
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы