老男孩python自动化运维作业1
#!/usr/bin/env pthon
#字典操作三级菜单 “b”返回上一级菜单,“q”退出。 menu={"BJ":{"cp":{1:1,2:2,3:3},
"ft":{1:4,2:5,3:6}},
"SH":{"lz":{1:1,2:2,3:3}
},
"HK":{"tz":{1:1,2:2,3:3},
"fs":{1:4,2:5,3:6}}}
def one_menu():
for i in range(0,len(menu.keys())):
print(str(i+1) +"."+ menu.keys()[i])
i+=1
one_menu() def tow_menu(city):
menu_list=menu.get(city).keys()
for i in range(0,len(menu_list)):
print (str(i+1) + "." + menu_list[i])
i+=1 def three_menu(city,area): area_menu=menu.get(city).get(area)
for i in range(0,len(area_menu)):
print(area_menu.items()[i]) chose_num="b"
while chose_num !="q":
chose_num=raw_input("please chose menu:") if chose_num =="":
tow_menu("HK") while chose_num !="q":
chose_num=raw_input("please chose menu:") if chose_num=="":
three_menu("HK","fs")
elif chose_num=="":
three_menu("HK","tz")
elif chose_num=="b":
tow_menu("HK")
break
elif chose_num=="q":
exit()
else:
print("input error!") elif chose_num =="":
tow_menu("SH")
while chose_num !="q":
chose_num=raw_input("please chose menu:") if chose_num=="":
three_menu("SH","lz") elif chose_num=="b":
tow_menu("SH")
break
elif chose_num=="q":
exit()
else:
print("input error!")
elif chose_num =="":
tow_menu("BJ")
while chose_num !="q":
chose_num=raw_input("please chose menu:") if chose_num=="":
three_menu("BJ","ft")
elif chose_num=="":
three_menu("BJ","cp")
elif chose_num=="b":
tow_menu("BJ")
break
elif chose_num=="q":
exit()
else:
print("input error!") elif chose_num =="b":
one_menu()
elif chose_num =="q":
exit()
else:
print("input error!")
#文件操作用户登录,提示用户名不存在 和 密码错误,密码错误超过3次则锁定用户登录。
#!/usr/bin/env python
# -*-coding:UTF-8-*-
3
4 def login(): f=open("user",'r') #读取user配置文件。
cont=f.readlines() #readlines把读取的行当作元素返回一个列表
f.close()
allname=[] #初始化一个用户列表
allpasswd=[]
for i in range(0,len(cont)-1): #len获取cont列表的元素数量
onecont=cont[i].split() #循环取一行内容并分割成列表,split()以空格为分隔符分割字符串并返回一个列表。
onename=onecont[0] #循环取一行中的帐号
onepasswd=onecont[1] #
allname.append(onename) #循环把每一行取到的帐号追加到用户列表中
allpasswd.append(onepasswd)
lf=open("user.lock",'r')
lcont=lf.readlines()
lf.close()
# print(lcont) #打印用户锁文件内容
# print(allname)
# print(allpasswd) cont=0
while cont < 3:
username=raw_input("login user:").strip()
passwd=raw_input("password:")
if username not in allname:
print("No this accont!") elif (username +"\n") in lcont:
print("your account has been locked!Please contact admin!")
break
else:
rel_passwd_index=allname.index(username) #取该帐号在用户列表中的索引,此时用户列表的索引和密码列表的索引是对应的,因此我们同样>取到了该帐号的密码在密码列表的索引
rel_passwd=allpasswd[rel_passwd_index] #取该帐号的真实密码
if passwd==rel_passwd:
print("Login success!")
break
else:
print("password is error!")
cont+=1
if cont >= 3:
print("Excessive password error,your account has been locked!Please contact admin!")
nf=open("user.lock",'wb')
nf.write(username+"\n")
nf.close() login()
老男孩python自动化运维作业1的更多相关文章
- 老男孩python自动化运维作业2
拿到要求真不知道怎么写,不能还要写个商城页面吧: 最后还是用了input()模拟用户操作吧- -!不就操作个字典吗(字典模拟商品数据). python版本: >>>import sy ...
- Day1 老男孩python自动化运维课程学习笔记
2017年1月7日老男孩python自动化运维课程正式开课 第一天学习内容: 上午 1.python语言的基本介绍 python语言是一门解释型的语言,与1989年的圣诞节期间,吉多·范罗苏姆为了在阿 ...
- 老男孩Python自动化运维视频
链接:https://pan.baidu.com/s/1VLXJ0RZr39kpSGthkLkgmA 密码私聊我
- python自动化运维学习第一天--day1
学习python自动化运维第一天自己总结的作业 所使用到知识:json模块,用于数据转化sys.exit 用于中断循环退出程序字符串格式化.format字典.文件打开读写with open(file, ...
- Python自动化运维:技术与最佳实践 PDF高清完整版|网盘下载内附地址提取码|
内容简介: <Python自动化运维:技术与最佳实践>一书在中国运维领域将有“划时代”的重要意义:一方面,这是国内第一本从纵.深和实践角度探讨Python在运维领域应用的著作:一方面本书的 ...
- 【目录】Python自动化运维
目录:Python自动化运维笔记 Python自动化运维 - day2 - 数据类型 Python自动化运维 - day3 - 函数part1 Python自动化运维 - day4 - 函数Part2 ...
- python自动化运维篇
1-1 Python运维-课程简介及基础 1-2 Python运维-自动化运维脚本编写 2-1 Python自动化运维-Ansible教程-Ansible介绍 2-2 Python自动化运维-Ansi ...
- Python自动化运维的职业发展道路(暂定)
Python职业发展之路 Python自动化运维工程 Python基础 Linux Shell Fabric Ansible Playbook Zabbix Saltstack Puppet Dock ...
- Python自动化运维 技术与最佳实践PDF高清完整版免费下载|百度云盘|Python基础教程免费电子书
点击获取提取码:7bl4 一.内容简介 <python自动化运维:技术与最佳实践>一书在中国运维领域将有"划时代"的重要意义:一方面,这是国内第一本从纵.深和实践角度探 ...
随机推荐
- web----test-----selenium
selenium ide 安装就自行百度吧. 对百度进行一个简单的录制. 1. 在Firefox浏览器打开百度页面. 2.在Firefox浏览器菜单栏中,选择“工具” ,选择selenium IDE ...
- Windows Azure初体验
目前在IT界,云这个概念的第一意思不再是词典里的解释了.不过它们还是有相同点的——也许确实会酝酿出一块大蛋糕,可也是飘在天上,众神分食之,与我等P民无关.所谓云,不过是网络时代发展到一定阶段的必然产物 ...
- zend studio中ctrl+鼠标左键无法转到类或函数定义文件的解决方法
转载自:http://blog.csdn.net/wide288/article/details/21622183 zend studio中ctrl+鼠标左键无法转到类或函数定义文件的解决方法: ze ...
- springMVC和mybatis整合,jsp对时间进行格式化
发现jsp显示的时间,是java Date类型的默认格式,一串鸡肠.... 可在jsp对输出进行格式化: 1.加入taglib <%@ taglib prefix="fmt" ...
- 关于mvc ajax (post提交)——页面传值以及后台接收
// 前段页面,点击按钮触发Success事件 function success() { var BusiName =“公司名称”; var UserName = “用户”; var UserPhon ...
- 珍惜每一滴水(kbmmw 中的内存调试)
作为一个服务器端的应用,最基本的要求就是稳定,当然要做一个稳定的服务器端,需要涉及到很多方面, 内存泄露就是稳定的一个致命杀手,因为服务器的物理内存是有限的,即使一个功能有很小的内存泄露,经过 长时间 ...
- C# 异常处理 <-> 连接远程数据库遇到的问题
PS : 移植类库需要重新生成解决方案:(要不然不能将类库添加进项目)
- SCN
SCN 一.SCN的引入 众所周知,当oracle实例崩溃时,oracle通过检查点队列使用CKPT进程,周期性的将LRBA记入控制文件,以记录读取REDO LOG的范围.确定范围之后,oracle首 ...
- 去掉IE下input的叉号
IE10下的Input Text和谷歌下面的 input search 一旦输入内容,会在最右端出现一个叉号,点击后,内容就会自动清空,看似方便,其实有些场景并不需要,需要写代码清除掉. 代码如下: ...
- vim 使用2 转载 为了打开方便
http://coolshell.cn/articles/5426.html vim的学习曲线相当的大(参看各种文本编辑器的学习曲线),所以,如果你一开始看到的是一大堆VIM的命令分类,你一定会对这个 ...