【解決方法】ヘルプ! ! ! ユーザーの入力で数字ではなく文字のみを入力するエラーを発生させるにはどうすればよいですか?

[ad_1]

私はユーザーの入力名を挨拶する単純な Tk GUI を作成していました…ユーザーが数字を入力するときに入力エラーを発生させる必要があります。 ユーザーは文字のみを入力する必要があります。 私が試したところによると、姓ではなく名の入力のみがチェックされていました。 何を追加または編集すればよいですか?

よろしく..!!

私が試したこと:

import tkinter
from tkinter import *
import tkinter.messagebox

root = Tk()
root.geometry("300x130")
root.resizable(0, 0)
root.title("Greeting User")

def button_enter():
    while True:
        item1 = (input1.get())
        item2 = (input2.get())
        name = (item1 + " " + item2)
        for a in name:
            if (a.isalpha() or a.isspace()) or (a.isalpha() and a.isspace()) and (name.isalpha() and name.isspace()):
                greeting = Label(root, text="Hello, " + name + "!")
                greeting.grid(column=1, row=3)
                return True
            else:
                tkinter.messagebox.showinfo('Input Error', 'Numerical value detected. Try again.')
                return False


label1 = Label(root, text="First Name:").grid(row=0)
label2 = Label(root, text="Last Name:").grid(row=1)

input1 = Entry(root, width=30, justify=CENTER)
input1.grid(column=1, row=0)
input1.get()

input2 = Entry(root, width=30, justify=CENTER)
input2.grid(column=1, row=1)
input2.get()

myButton = Button(root, width=10, text="Enter", command=button_enter)
myButton.grid(column=0, row=3)

root.mainloop()

解決策 1

OR は、2 つのブール入力を結合する条件です。

A = B OR C

両方が false の場合、false と評価されます。 それ以外の場合、true と評価されます。
したがって、B または C のいずれかが true の場合、もう一方の値に関係なく、A は true になります。
したがって、コード内では次のようになります。

        for a in name:
            if (a.isalpha() or a.isspace()) or (a.isalpha() and a.isspace()) and (name.isalpha() and name.isspace()):
...
                return True

入力の最初の文字がアルファベットの場合、関数は True を返します。他の文字はまったく参照されず、ループは終了します。
を移動します。 return True ループの後に移動し、条件を単純化します。ほとんどは無関係です。

[ad_2]

コメント

タイトルとURLをコピーしました