我是Python的初学者。我正在创建一种ATM刺激程序,要求用户输入他们的密码,我希望用户输入正好4位数字的长密码。
我该怎么办?感谢您的帮助
答案 0 :(得分:0)
您大概会将用户的PIN存储在某个地方进行验证。每当用户更新其PIN或首次创建PIN时,您都必须验证PIN的长度。当他们只是登录时,输入的长度无关紧要。如果他们输入的PIN码长度为5位数字,则显然与他们的实际PIN码不匹配,登录将失败。
要验证输入的字符是否为4个字母,可以使用正则表达式(import re,re.match(pattern,input_string))。
我建议使用getpass模块中的getpass()来隐藏用户输入(而不是通常的input()函数)。在此示例中,我将PIN打印到屏幕上以显示输入内容:
from getpass import getpass
import re
pin = getpass("Insert PIN: ")
validPIN = re.compile('\d{4}')
print(f"Input PIN is {pin}")
if re.match(validPIN, pin):
print('valid PIN')
else:
print('invalid PIN')