python作业习题集锦
1. 登录作业:
写一个登录程序,登录成功之后,提示XXX欢迎登录,登录失败次数是3次,要校验一下输入为空的情况
for i in range(3):
username=input('username:').strip()
passwd=input('passwd:').strip()
if username and passwd:
if username=='weixiaocui' and passwd=='':
print('%s欢迎登录'%username)
break
else:
print('账号/密码错误')
else:
print('账号/密码不能为空')
else:
print('错误失败次数太多!')
2.登录,注册,账号密码 存在文件里面,登录用注册时候的账号和密码
f=open('user.txt','a+',encoding='utf-8')
f.seek(0)
all_users={}
for line in f:
if line:
line=line.strip()
line_list=line.split(',')
all_users[line_list[0]]=line_list[1]
while True:
username=input('用户名:').strip()
passwd=input('密码:').strip()
cpasswd=input('确认密码:').strip()
if username and passwd and cpasswd:
if username in all_users:
print('用户名已经存在,请重新输入!')
else:
if passwd==cpasswd:
all_users[username]=passwd
f.write(username+','+passwd+'\n')
f.flush()#立即写到文件里面
print('注册成功!')
break
else:
print('两次输入密码不一致,请重新输入!')
else:
print('用户名/密码/确认密码不能为空!')
f.close()
#登录作业代码
f=open('user.txt',encoding='utf-8')
all_users={}#存放所有用户
for line in f:
if line:
line=line.strip()
line_list=line.split(',')
all_users[line_list[0]]=line_list[1]
while True:
username=input('用户名:').strip()
passwd=input('密码:').strip()
if username and passwd:
if username in all_user:
if passwd == all_users.get(username):
print('欢迎光临 %s'%username)
break
else:
print('密码输入错误!')
else:
print('用户不存在!')
else:
print('用户名/密码不能为空!')
f.close()
3.生成8位密码,输入一个生成的条数,然后生成包含大写,小写字母,数字的密码,写到文件里面
import random,string
count=int(input('请输入你要生成密码的条数:'))
all_passwds=[]
while True:
lower=random.sample(string.ascii_lowercase,1)#随机取一个小写字母
upper=random.sample(string.ascii_uppercase,1)#随机取一个大写字母
num=random.sample(string.digits,1)#随机取一个数字
other=random.sample(string.ascii_letters+string.digits,5)
res=lower+upper+num+other#把这4个list合并到一起
random.shuffle(res)#打乱顺序
new_res=''.join(res)+'\n'#因为res是list,所以转成字符串
if new_res not in all_passwds:#这里是为了判断是否重复
all_passwds.append(new_res)
if len(all_passwds)==count:#判断循环什么时候结束
break
with open('passwds.txt','w') as fw:
fw.writelines(all_passwds)
4.判断字典里面不一样的key,字典可能有多层嵌套
循环字典,从一个字典里面取到key,然后再从第二个字典里面取k,判断value是否一样
ok_req={
"version": "9.0.0",
"is_test": True,
"store": "",
"urs": "",
"device": {
"os": "android",
"imei": "",
"device_id": "CQliMWEyYTEzNTYyYzk5MzJmCTJlNmY3Zjkx",
"mac": "02:00:00:00:00:00",
"galaxy_tag": "CQliMWEyYTEzNTYyYzk5MzJmCTJlNmY3Zjkx",
"udid": "a34b1f67dd5797df93fdd8b072f1fb8110fd0db6",
"network_status": "wifi"
},
"adunit": {
"category": "VIDEO",
"location": "",
"app": "7A16FBB6",
"blacklist": ""
},
"ext_param":{
"is_start" : 0,
"vId":"VW0BRMTEV"
}
}
not_ok={
"version": "9.0.0",
"is_test": True,
"urs": "",
"store": "",
"device": {
"os": "android",
"imei": "",
"device_id": "CQliMWEyYTEzNTYyYzk5MzJmCTJlNmY3Zjkx",
"mac": "02:00:00:00:00:00",
"galaxy_tag": "CQliMWEyYTEzNTYyYzk5MzJmCTJlNmY3Zjkx",
"udid": "a34b1f67dd5797da93fdd8b072f1fb8110fd0db6",
"network_status": "wifi"
},
"adunit": {
"category": "VIDEO",
"location": "",
"app": "7A16FBB6",
"blacklist": ""
},"ext_param": {
"is_start": 0,
"vid": "VW0BRMTEV"
}
}
def compare(d1,d2):
for k in d1:
v1=d1.get(k)
v2=d2.get(k)
if type(v1)==dict:
compare(v1,v2)
else:
if v1!=v2:
print('不一样的k是【%s】,v1是【%s】 v2是【%s】'%(k,v1,v2))
#对称差集,两个集合里面都没有的元素,在a里有,在b里没有,在b里有,在a里没有的
res=set(d1.keys()).symmetric_difference(set(d2.keys()))
if res:
print('不一样的k',res)
compare(ok_req,not_ok)
5.商品管理的程序
1.添加商品
2.查看商品
3.删除商品
4.商品都存在文件里面
5.存商品的样式:{'car':{'color':'red','count':5,'price':100},'car2':{'color':'red','count':5,'price':100}}
PRODUCTS_FILE='products'
def op_file(filename,content=None):
f=open(filename,'a+',encoding='utf-8')
f.seek(0)
if content!=None:
f.truncate()
f.write(str(content))
f.flush()
else:
res=f.read()
if res:
products=eval(res)
else:
products={}
return products
f.close()
def check_price(s):
s = str(s)
if s.count('.')==1:
left=s.split('.')[0]
right=s.split('.')[1]
if left.isdigit() and right.isdigit():
return True
elif s.isdigit() and int(s)>0:
return True
return False
def check_count(count):
if count.isdigit():
if int(count)>0:
return True
return False
def add_product():
while True:
name=input('name:').strip()
price=input('price:').strip()
count=input('count:').strip()
color=input('color:').strip()
if name and price and count and color:
products=op_file(PRODUCTS_FILE)
if name in products:
print('商品已经存在')
elif not check_price(price):
print('价格不合法')
elif not check_count(count):
print('商品数量不合法')
else:
product={'color':color,'price':'%.2f'%float(price),'count':count}
products[name]=product
op_file(PRODUCTS_FILE,products)
print('商品添加成功')
break
else:
print('必填参数未填')
def view_products():
products=op_file(PRODUCTS_FILE)
if products:
for k in products:
print('商品名称【%s】,商品信息【%s】'%(k,products.get(k)))
else:
print('当前没有商品')
def del_products():
while True:
name=input('name:').strip()
if name:
products=op_file(PRODUCTS_FILE)
if products:
if name in products:
products.pop(name)
op_file(PRODUCTS_FILE,products)
print('删除成功!')
break
else:
print('你输入的商品名称不存在,请重新输入!')
else:
print('当前没有商品')
else:
print('必填参数未填')
def start():
choice=input('请输入你的选择:1、添加商品2、查看商品3、删除商品,q、退出:').strip()
if choice=='':
add_product()
elif choice=='':
view_products()
elif choice=='':
del_products()
elif choice=='q':
quit('谢谢光临')
else:
print('输入错误!')
return start()
start()
6.写清理日志的一个脚本,要求转入一个路径,只保留3天以内的日志,剩下的全部删掉。
import os,datetime
def clean_log(path):
if os.path.exists(path) and os.path.isdir(path):
today = datetime.date.today() #2017-01-02
yesterday = datetime.date.today()+ datetime.timedelta(-1)
before_yesterday = datetime.date.today()+ datetime.timedelta(-2)
file_name_list = [today,yesterday,before_yesterday]
for file in os.listdir(path):
file_name_sp = file.split('.')
if len(file_name_sp)>2:
file_date = file_name_sp[1] #取文件名里面的日期
if file_date not in file_name_list:
abs_path = os.path.join(path,file)
print('删除的文件是%s,'%abs_path)
os.remove(abs_path)
else:
print('没有删除的文件是%s'%file)
else:
print('路径不存在/不是目录')
clean_log(r'')
python作业习题集锦的更多相关文章
- Python作业第一课
零基础开始学习,最近周边的同学们都在学习,我也来试试,嘿嘿,都写下来,下次不记得了还能来看看~~ Python作业第一课1)登陆,三次输入锁定,下次不允许登陆2)设计一个三级菜单,菜单内容可自行定义, ...
- Python作业-选课系统
目录 Python作业-选课系统 days6作业-选课系统: 1. 程序说明 2. 思路和程序限制 3. 选课系统程序目录结构 4. 测试帐户说明 5. 程序测试过程 title: Python作业- ...
- python作业ATM(第五周)
作业需求: 额度 15000或自定义. 实现购物商城,买东西加入 购物车,调用信用卡接口结账. 可以提现,手续费5%. 支持多账户登录. 支持账户间转账. 记录每月日常消费流水. 提供还款接口. AT ...
- (转)Python作业day2购物车
Python作业day2购物车 原文:https://www.cnblogs.com/spykids/p/5163108.html 流程图: 实现情况: 可自主注册, 登陆系统可购物,充值(暂未实现) ...
- Python开发面试集锦
我正在编写一套python面试开发集锦,可以帮忙star一下,谢谢! 地址:GitHub专栏
- Python作业之三次登陆锁定用户
作业之三次登陆锁定用户 作业要求如下: 1. 输入用户名和密码 2. 认证成功提示欢迎信息 3. 认证失败三次锁定用户 具体代码如下: 方法1: import os#导入os模块 if os.path ...
- python作业高级FTP
转载自:https://www.cnblogs.com/sean-yao/p/7882638.html 作业需求: 1. 用户加密认证 2. 多用户同时登陆 3. 每个用户有自己的家目录且只能访问自己 ...
- Python作业
1使用while 循环输入1,2,3,4,5,6,,8,9,10 count = 0 while count<10: count+=1 if count ==7: continue print( ...
- python作业简单FTP(第七周)
作业需求: 1. 用户登陆 2. 上传/下载文件 3. 不同用户家目录不同 4. 查看当前目录下文件 5. 充分使用面向对象知识 思路分析: 1.用户登陆保存文件对比用户名密码. 2.上传用json序 ...
随机推荐
- unity项目警告之 LF CRLF问题
unity中创建的脚本,以LF结尾. Visual studio中创建的脚本,以 CRLF结尾. 当我们创建一个unity脚本后,再用VS打开编辑保存后,这个文件既有LF结尾符,也有CRLF结尾符. ...
- vue2.0 之 douban (六)axios的简单使用
由于项目中用到了豆瓣api,涉及到跨域访问,就需要在config的index.js添加代理,例如 proxyTable: { // 设置代理,解决跨域问题 '/api': { target: 'htt ...
- Jsoup代码示例、解析网页+提取文本
使用Jsoup解析HTML 那么我们就必须用到HttpClient先获取到html 同样我们引入HttpClient相关jar包 以及commonIO的jar包 我们把httpClient的基本代码写 ...
- ST表——————一失足成千古恨系列2
在此先祝自己这个系列写的越少越好qwq(保证不超过4篇(flag已立)) 考试原题:(绝壁是看完复联出的) 第一反应:线段树??不对,是st表.嗯,没错.哎,st表咋写来着??完了凉了. 结果:写暴搜 ...
- ruby的next if boolean
next相当于continue
- day46----JavaScript的函数及对象小结
一:函数 01:普通函数 function f1(){ console.log("Helleo world") } f1(); //调用函数 -->Helleo world ...
- anki2.1中使用latex,使用 MathJax 渲染latex格式的数学公式,化学公式
说说mathJax的优点: 不在anki媒体库生成图片,有利于节约手机空间. 再说说它的缺点:需要学习latex,需要一些时间去掌握latex语法. 1.去MathJax的github下载源码包 2. ...
- C. Roads in Berland
题目链接: http://codeforces.com/problemset/problem/25/C 题意: 给一个最初的所有点与点之间的最短距离的矩阵.然后向图里加边,原有的边不变,问加边后的各个 ...
- MySQL 查询语句--------------进阶5:分组查询
#进阶5:分组查询 /* select 分组函数,列(要求出现在group by的后面) from 表 [where 筛选条件] group by 分组的列表 [order by 子句] 注意: 查询 ...
- opencv部署服务器报错
报错内容: ImportError: libSM.so.6: cannot open shared object file: No such file or directory 解决办法: sudo ...