老男孩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自动化运维:技术与最佳实践>一书在中国运维领域将有"划时代"的重要意义:一方面,这是国内第一本从纵.深和实践角度探 ...
随机推荐
- es6 Class的继承extends & super
Class之间可以通过extends关键字,实现继承. 子类会继承父类的属性和方法. class Point { constructor(x, y) { this.x = x; this.y = y; ...
- Linux第三周——跟踪分析内核的启动过程
跟踪分析内核的启动过程实验 张潇月<Linux内核分析>MOOC课程http://mooc.study.163.com/course/USTC-1000029000 这周主要学习的是对内核 ...
- [转]逻辑斯蒂回归 via python
# -*- coding:UTF-8 -*-import numpydef loadDataSet(): return dataMat,labelMat def sigmoid(inX): retur ...
- (转)R空间数据处理与可视化
前言 很多朋友说在R里没法使用高德地图,这里给出一个基于leaflet包的解决方法. library(leaflet) # 添加高德地图 m <- leaflet() %>% addTil ...
- mysql的多实例安装
单机多实例据说可以最大程度提高硬件使用,谁知道呢,但是以前的公司喜欢这样搞,我最近也在学习复制什么的,电脑搞不起两台虚拟机,刚好单机多实例可以解救我.下面就说说步骤. 承上文http://www.cn ...
- Spring里PropertyPlaceholderConfigurer类的使用
1. PropertyPlaceholderConfigurer是个bean工厂后置处理器的实现,也就是 BeanFactoryPostProcessor接口的一个实现.PropertyPlaceho ...
- 修改server 2008远程桌面端口
在“开始”-"运行"菜单里,输入regedit HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Terminal Serve ...
- Java学习基础2
运算符: ++: int a = 4; int b = a++; ++在后:先运算在递增1 输出:a=5 b=4; int b = ++a; ++在前:先递增1,再运算 输 ...
- ajax回调打开新窗体防止浏览器拦截有效方法
ajax回调打开新窗体防止浏览器拦截,就这么做! 问题剖析: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 function click_fun(){ window ...
- beautifulsoup小节
在beautifulsoup中,一个tag可能有很多个属性. tag <b class="boldest"> 有一个 “class” 的属性,值为 “boldest” ...