python学习06-简易登录接口测试,使用元组和字典实现三级菜单

 示例:登录接口
       1、输入用户名密码
       2、验证成功后显示欢迎信息
       3、输错三次后锁定


# 示例一:登录接口
#  输入用户名密码
#     验证成功后显示欢迎信息
#     输错三次后锁定
#     

# 导入getpass包,用于密码的密文输入
import getpass

# 定义变量,模拟用户名
userName = "xm"

# 定义变量,模拟密码
userPass = "xm"

# 打开用户锁文件
userLock = open( "E:\\vsCode_workspace\\day_03\\userLock.txt" , "w+" )

# 读取文件内容
fileInfo = userLock.readline()


# 循环验证用户输入的用户名和密码是否匹配,如果匹配则反馈给用户登录成功,如果三次不匹配则反馈给用户该账户已被锁定,并终止程序
for i in range( 3 ) :

    # 打印输出提示用户,如果三次输入的用户名或密码错误,则该用户将被锁定
    print( "警告!如果您输入的用户名或密码错误超过三次,则您的账户将被锁定" )

    # 定义变量,用于保存用户输入的用户名
    newUserName = input( "请输入您的用户名:" ) 

    # 定义变量,用于保存用户输入的密码
    newUserPass = getpass.getpass( "请输入您的密码:")

    # 判断文件锁中是否有该账户
    if fileInfo == newUserName :

        # 用户账户被锁定,打印输出提示,您输入的账户已被锁定,请联系管理员
        print( "您输入的账户已被锁定,请联系管理员." )

        # 结束程序
        break

    if userName == newUserName and userPass == newUserPass :

        # 用户名和密码输入正确,打印输出登录成功
        print( "登录成功" )

        #结束循环
        break

    # 判断变量i的值是否等于2,如果等于二则说明用户三次输入用户名或密码错xm误
    if i == 2 :

        # 打印输出提示用户,您的账户已被锁定,请联系管理员
        print( "您的账户已被锁定,请联系管理员" )

        # 在文件锁中存入该账户
        userLock.write( newUserName )

示例:三级菜单<省/市/县>

   1、可依此选择进入各子菜单

    2、任意级都可以退出程序

    3、所需新知识:列表、字典

# 多级菜单

# 三级菜单<省/市/县>
#     可依此选择进入各子菜单
#     任意级都可以退出程序
#     所需新知识:列表、字典

# 导入sys包
import sys

# 定义一级菜单名
proviceList = [ "天津市" , "北京市" ]

# 定义二级菜单名
tupleTwoList = { "1":["和平区","河东区","河西区","南开区"] , "2":["东城区","西城区"] }

# 定义三级菜单名
tupleThreeList = { "11":[["青镇"]] , "12":["青镇"] , "13":["青镇"] , "14":["青镇"] , "21":["青镇"] , "22":["青镇"] }

# 定义元组,用于保存用户选择的地址
selectAddress = []

# for循环打印输出一级菜单列表
for i in range( len(proviceList) ) :

    # 打印输出一级菜单
    print( i+1 , "、" , proviceList[ i ] )

1
# 取得用户输入一级菜单信息
inputCode = input( "请选择您喜欢的省份:" )

if inputCode == "q" :

    # 打印提示信息,结束程序
    print( "退出程序。")

    #退出程序
    sys.exit()

else :
    # 取得元组中天津市的列表
    twoList = tupleTwoList.get( inputCode )

    # 保存天津市
    selectAddress.append( proviceList[ int( inputCode ) -1 ] )

    # 循环打印输出二级菜单
    for j in range( len( twoList ) ) :

        # 打印输出二级菜单
        print(  j + 1  , "、" , twoList[ j ] )
    
    # 取得用户输入二级菜单信息
    twoInpuCode = input( "请选择您喜欢的区域:")

    if twoInpuCode == "q" :

        # 提示用户退出程序
        print( "退出程序" )

        # 退出程序
        sys.exit()
    else :

        # 取得选项中的县/镇
        threeList = tupleThreeList.get( "{oneCode}{twoCode}".format( oneCode = inputCode , twoCode = twoInpuCode ) )

        # 保存区域
        selectAddress.append( twoList[ int( twoInpuCode ) - 1 ] )

        # for循环打印输出三级菜单
        for k in range( len( threeList ) ) :

            # 打印输出菜单
            print(  k + 1  , "、" , threeList[ k ] )
        
        # 取得用户输入的三级菜单信息
        threeInputCode = input( "请选择您喜欢的小镇或县城:" )

        if threeInputCode == "q" :

            # 提示用户退出程序
            print( "退出程序。" )

            # 退出程序
            sys.exit()
        
        else :

            # 保存小镇信息
            selectAddress.append( threeList[ int( threeInputCode ) - 1 ])

            # 打印输出选择的结果
            print( "您喜欢的地址是:{p}{q}{z}".format( p = selectAddress[0] , q = selectAddress[1] , z = selectAddress[2] ) )

猜你喜欢

转载自blog.csdn.net/qq_40790831/article/details/86186117