1、让我初步了解基本的语法和 常用函数

2、初步完成了用python编写登录的代码脚本

3、对我帮助说明:

遗留问题:

1、考虑如何用报错退出,提示没有黑白名单,请先创建,或者直接往后执行,都是按黑白名单为空去处理
2、如何把文件的内容以字典的形式保存

思维模式:
1、判断文件是否存在
2、没有则新建(文件或者目录),有则打开文件
3、如何读取文件内容且返回需要的内容
4、如何把返回的内容保存在列表、元组和 字典里
5、执行完后关闭文件

运用的函数:
open() 知识点:参数和用法
close() 关闭文件
read() 读取全部内容,返回字符串形式
readline()只读取第一行内容,返回字符串形式
readlines()读取全部内容返回
len() 返回对象长度
split() 通过指定分隔符对字符串进行切片
strip() 方法用于移除字符串头尾指定的字符(默认为空格或换行符)或字符序列。注意:该方法只能删除开头或是结尾的字符,不能删除中间部分的字符。
append() 把值添加到列表末尾的对象,但不会返回值
index() 方法检测字符串中是否包含子字符串 str ,如果指定 beg(开始) 和 end(结束) 范围,则检查是否包含在指定范围内,该方法与 python find()方法一样,只不过如果str不在 string中会报一个异常。
exit() # exit(0):无错误退出 exit(1):有错误退出

break和continue 区别

pass :占位符

 循环语句:

要判断用while
循环次数用for


登录业务流程图:

zabbix调用python脚本登陆网络设备_字符串

 

业务代码一,通过定义好的列表和字典完成登录代码

#!/usr/bin/env python
# -*- coding: utf-8 -*-
import getpass
import os, sys


Whitelist={"yao":"123456","YAO1":"123456"}
blacklist=["zhangs"]
count = 0

name =input("请输入你的账号:")
if name in blacklist:
    print(name,"您的账号已被锁定")
    sys.exit(0)   # exit(0):无错误退出   exit(1):有错误退出
if name in Whitelist.keys():
    print("账号正常!!")
    while count < 3:
        number = input("请输入你的密码:")
        if number == Whitelist.get(name):  #get() 函数返回指定键的值
            print("welcome",name)
            break
        else:
            print("密码错误!请重新输入:")
            count += 1
        if count == 3:
            blacklist.append(name)
            print("密码连续错误3次,账号锁定")
            break
else:
    print(name, "账号不存在")

业务代码二——通过读取txt文件方式完成业务代码(目前只能存列表形式,后续再学习用字典的形式保存)

#!/usr/bin/env python
# -*- coding: utf-8 -*-
import sys
import os

All_Whitelist_name =[]
All_Whitelist_password =[]
All_blacklist_name=[]

# ----------------如何判断文件是否存在 ,没有则新增------------------
blacklist_file = "E:/pythonProject/30day/blacklist.txt"  # 找绝对路径
Whitelist_file = "E:/pythonProject/30day/Whitelist.txt"

if not os.path.exists(blacklist_file):
    Bt = open("E:/pythonProject/30day/blacklist.txt","a+") #没有,则创建文件
else:
    Bt = open("E:/pythonProject/30day/blacklist.txt", "r")
Black_list = Bt.readlines()
Bt.close()

if not os.path.exists(Whitelist_file):
    Wt = open("E:/pythonProject/30day/Whitelist.txt","a+")
else:
    Wt = open("E:/pythonProject/30day/Whitelist.txt", "r")
White_list = Wt.readlines()
Wt.close()


for W in  range(0,len(White_list)):  #len()返回对象长度,
    print(W)
    Whitelist = White_list[W].split(',') #以,为分隔符,默认为 -1, 即分隔所有
    print(Whitelist)
    Wt_Name = Whitelist[0].strip('\n')  #移除字符串头尾指定的字符 ‘\n’
    Wt_Password  =  Whitelist[1].strip('\n')

    All_Whitelist_name.append(Wt_Name)
    All_Whitelist_password.append(Wt_Password)
    #print(All_Whitelist_name)
    #print(All_Whitelist_password)

for B in range(0,len(Black_list)):
    Blacklist = Black_list[B].split(',')
    Bt_Name = Blacklist[0].strip('\n')

    All_blacklist_name.append(Bt_Name)
    #print(All_blacklist_name)

# 业务代码
count = 0
name = input("请输入账号:")
if name in All_blacklist_name:
    print("账号已冻结")
    exit(0)
if name in All_Whitelist_name:
    while count < 3:
        passwd = input("请输入密码")
        name_index = All_Whitelist_name.index(name) #去列表找对应的元素返回对应的长度位置符
        passwd_index = All_Whitelist_password[name_index]
        print("密码",passwd_index )
        if passwd == passwd_index:
            print("登录成功",name)
            exit()
        else:
            print("密码输入错误,请重新输入")
            count += 1
        if count == 3:
            Bt = open("E:/pythonProject/30day/blacklist.txt", "a+")
            Bt.write((name+'\n'))
            Bt.close()
            print("密码错误三次,已冻结该账户")
            break

else:
    print("用户不存在")