Hướng dẫn atm pin code validation in python assignment expert - xác thực mã pin atm trong chuyên gia gán python

Xác thực mã pin ATM

Viết một chức năng với tên xác thực mã ATM.PIN lấy một từ làm đối số. ATM PIN chỉ được coi là hợp lệ nếu từ đã cho có chứa chính xác 4 hoặc 6 ký tự - tất cả các ký tự phải là chữ số.

Đầu vào

Đầu vào sẽ là một dòng duy nhất chứa một chuỗi.

Đầu ra

Đầu ra phải là một dòng duy nhất chứa "mã pin hợp lệ hoặc" mã pin không hợp lệ ".

Giải trình

Ví dụ: nếu từ đã cho là "9837". Đầu ra phải là "mã pin hợp lệ", vì nó chứa chính xác bốn ký tự và tất cả các ký tự là các chữ số.

Trong khi đó, nếu từ đã cho là "A289H4", đầu ra phải là "mã pin không hợp lệ, mặc dù từ đã cho chứa chính xác sáu ký tự, tất cả các ký tự không phải là chữ số.

Chúng tôi được cung cấp một chuỗi, chúng tôi cần kiểm tra xem chuỗi có phải là tên người dùng hợp lệ hay không. Để trở thành tên người dùng hợp lệ, chuỗi phải đáp ứng các điều kiện sau:

def check_username[s]:
    alphabets = list['abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ']
    numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 0]
    
    if [type[s[0]] != str]:
        return 'Invalid Username1'
    
    if [len[s]25]:
        return 'Invalid Username3'
    
    if [s[-1] == '_']:
        return 'Invalid Username4'
    
    for i in s:
        if [i in alphabets] or [i == '_'] or [i in numbers]:
            continue
        return 'Invalid Username5'
    return 'Valid Username'

t = int[input['Enter number of test cases: ']]
for i in range[t]:
    s = input['\nEnter username: ']
    s = list[s]
    for i in range[len[s]]:
        try:
            s[i] = int[s[i]]
        except:
            continue
    print[check_username[s], '\n']

Trước hết, bạn đang thay đổi văn bản của các tiện ích Text mỗi khi bạn muốn hiển thị một số thông báo. Hiển thị đầu ra ở cùng một nơi bạn đang thực hiện đầu vào, không phải là một ý tưởng đúng đắn.

Tôi sẽ đề xuất, sử dụng Label để hiển thị các tin nhắn hoặc cũng vậy, bạn có thể sử dụng messagebox để hiển thị các hộp tin nhắn trong ứng dụng của bạn.

Tuy nhiên, với mã hiện tại của bạn, những gì bạn có thể làm là, tạo một biến toàn cầu cho attempts và chỉnh sửa hàm enter_pin theo logic của bạn:

def enter_pin[]:   
    message = textRep.get["1.0","end-1c"]
    if message=="Welcome\nYou are authorized!\n":        #if user already entered the correct pin, no need to check further
        return

    global attempts                            #the number of attempts left
    attempts -=1
    if attempts

Bài Viết Liên Quan

Chủ Đề