python练习题目1
2017-05-04 17:33
1546 查看
题目1:
alex|123123|3
eric|123123|0
经用户操作后变成了:
alex|123123|3
eric|123123|3,并将最终的结果写到文件当中。
代码:
运行效果:
操作之前:
操作之后:
题目2:
编写基于文件存储功能的用户登录程序(3次登录失败,则锁定用户,此时用户不能再次登录)
alex|123123|1
eric|123123|2
注意事项:
a.如果当前用户登录times的数值为3,则用户不能再次登录,此时用户被锁定;
b.如果当前用户登录成功,times的数值重新设置为0,若用户登录失败,times的数值加1;
c.中间操作基于内存中的字典和列表,最后退出的时候将结果最终写入文件。
代码:
运行结果示例:
1、用户登录之前的文件内容:
2、用户登录之后的文件内容:
练习:
题目1:
a. 元素分类
有如下值集合 v1 = [11,22,33,44,55,66,77,88,99,90],
将所有大于 66 的值保存至字典的第一个key中,将小于 66 的值保存至第二个key的值中。
即: {‘k1’: 大于66的所有值, ‘k2’: 小于66的所有值}
代码:
运行结果:
b. 功能要求:
v = 2000
要求用户输入总资产,例如:2000
显示商品列表,让用户根据序号选择商品,加入购物车
购买,如果商品总额大于总资产,提示账户余额不足,否则,购买成功。
goods = [
{“num”:”01”,”name”: “电脑”, “price”: 1999},
{“num”:”02”,”name”: “鼠标”, “price”: 10},
{“num”:”03”,”name”: “游艇”, “price”: 20},
{“num”:”04”,”name”: “美女”, “price”: 998},
]
代码示例:
运行结果:
c. 用户交互,显示省市县三级联动的选择
dic = {
“河北”: {
“石家庄”: [“鹿泉”, “藁城”, “元氏”],
“邯郸”: [“永年”, “涉县”, “磁县”],
}
“河南”: {
‘郑州’: [‘巩义’, ‘新郑’, ‘登封’],
‘开封’: [‘兰考’, ‘通许’, ‘尉氏’],
}
“山西”: {
‘太原’: [‘清徐’, ‘阳曲’, ‘古交’],
‘大同’: [‘左云’, ‘大同’, ‘广灵’],
}
}
代码示例:
运行结果:
alex|123123|3
eric|123123|0
经用户操作后变成了:
alex|123123|3
eric|123123|3,并将最终的结果写到文件当中。
代码:
#!/usr/bin/python # -*- coding:utf-8 -*- #读取文件 f1 = open("db","r") data = f1.read() f1.close() user_infor = data.split("\n") #利用换行符切分成字符创数组 user_infor_list = [] for item in user_infor: temp = item.split("|") v = {"name":temp[0],"passwd":temp[1],"times":temp[2]} user_infor_list.append(v) #改变相应的次数times user_infor_list[1]["times"] = 3 f2 = open("db","w") #将更改后的数据写到之前的文件当中 for item in user_infor_list: temp = item["name"]+"|"+item["passwd"]+"|"+str(item["times"])+"\n" f2.write(temp) f2.close()
运行效果:
操作之前:
alex|123123|3 eric|123123|0
操作之后:
alex|123123|3 eric|123123|3
题目2:
编写基于文件存储功能的用户登录程序(3次登录失败,则锁定用户,此时用户不能再次登录)
alex|123123|1
eric|123123|2
注意事项:
a.如果当前用户登录times的数值为3,则用户不能再次登录,此时用户被锁定;
b.如果当前用户登录成功,times的数值重新设置为0,若用户登录失败,times的数值加1;
c.中间操作基于内存中的字典和列表,最后退出的时候将结果最终写入文件。
代码:
#!/usr/bin/env python # -*- coding:utf-8 -*- #读取文件的内容 fr1 = open("db", "r") data = fr1.read() fr1.close() user_info = data.split("\n") #将用户的完整信息存储到字典当中 user_info_list = {} for item in user_info: temp = item.split("|") user_info_list[temp[0]] = {"pass_wd": temp[1], "times": temp[2]} print(user_info_list) #将用户名字的相关信息进行存储 user_name_list = [] for key in user_info_list: user_name_list.append(key) #基于列表、字典进行3次验证登录 num = 0 while num < 3: user_name = input("请输入用户名:") user_pass_wd = input("请输入密码:") #先判断用户输入的用户名是否存在 if user_name in user_name_list: #若用户的账户存在,在判断相应的times是否已经达到了3次 if int(user_info_list[user_name]["times"]) < 3: #在账号和time都符合的条件下,在判断用户的密码是否正确 if user_info_list[user_name]["pass_wd"] == user_pass_wd: print("登陆成功") user_info_list[user_name]["times"] = 0 break else: print("对不起,您的密码输入错误.") #密码输入错的时候times对应的数值要加1 user_info_list[user_name]["times"] = str(int(user_info_list[user_name]["times"]) + 1) num += 1 else: print("对不起,您的账户已经锁定,请用其余的账号登陆或者联系管理官进行解禁账号") num += 1 else: print("对不起您输入的用户账户不存在.") num += 1 #最后将用户的文件操作结果更新到文件当中 f2 = open("db", "w") j = 1 for key, item in user_info_list.items(): temp = key + "|" + item["pass_wd"] + "|" + str(item["times"]) if j != len(user_info_list): f2.write(temp+"\n") else: f2.write(temp) j += 1
运行结果示例:
请输入您的用户名:alex 请输入您的密码:zhang 对不起,密码输入错误 请输入您的用户名:alex 请输入您的密码:zhang 对不起,密码输入错误 请输入您的用户名:eric 请输入您的密码:zhang 对不起,密码输入错误
1、用户登录之前的文件内容:
alex|123123|0 eric|123123|0
2、用户登录之后的文件内容:
alex|123123|2 eric|123123|1
练习:
题目1:
a. 元素分类
有如下值集合 v1 = [11,22,33,44,55,66,77,88,99,90],
将所有大于 66 的值保存至字典的第一个key中,将小于 66 的值保存至第二个key的值中。
即: {‘k1’: 大于66的所有值, ‘k2’: 小于66的所有值}
代码:
#!/usr/bin/python # -*- coding:utf-8 -*- v1 = [11,22,33,44,55,66,77,88,99,90] k1_list = [] k2_list = [] for i in v1: if i < 66: k1_list.append(i) else: k2_list.append(i) v2 = {} v2["k1"] = k2_list v2["k2"] = k1_list for item in v2.items(): print item
运行结果:
('k2', [11, 22, 33, 44, 55]) ('k1', [66, 77, 88, 99, 90])
b. 功能要求:
v = 2000
要求用户输入总资产,例如:2000
显示商品列表,让用户根据序号选择商品,加入购物车
购买,如果商品总额大于总资产,提示账户余额不足,否则,购买成功。
goods = [
{“num”:”01”,”name”: “电脑”, “price”: 1999},
{“num”:”02”,”name”: “鼠标”, “price”: 10},
{“num”:”03”,”name”: “游艇”, “price”: 20},
{“num”:”04”,”name”: “美女”, “price”: 998},
]
代码示例:
#!/usr/bin/python # -*- coding:utf-8 -*- goods = [ {"id":"01","name": "computer", "price": 1999}, {"id":"02","name": "mouse", "price": 10}, {"id":"03","name": "yacht", "price": 20}, {"id":"04","name": "girl", "price": 998}, ] print("当前的商品列表清单为:") for item in goods: temp = "id" + ":" + item["id"] +"\t"+ "name" + ":" + item["name"]+"\t"+"price" + ":" + str(item["price"]) print(temp) salary = raw_input("请输入您的账户总资产:") salary = int(salary) salary_sum = salary print("您当前的账户余额为%d"%salary) while True: id = raw_input("请输入购买商品的编号:") num = int(raw_input("请输入相应商品的购买数量:")) for item in goods: if item["id"] == id : salary = salary - item["price"] * num if salary < 0: print("对不起,您当前的账户余额不足,差%d元"%salary) break else: pass if salary < 0: break lable = raw_input("是否继续购买yes or no:") if lable == "yes": continue else: print("您当前消费金额为:%d"%(salary_sum - salary)) print("您当前账户的剩余余额为%d"%salary) break
运行结果:
c. 用户交互,显示省市县三级联动的选择
dic = {
“河北”: {
“石家庄”: [“鹿泉”, “藁城”, “元氏”],
“邯郸”: [“永年”, “涉县”, “磁县”],
}
“河南”: {
‘郑州’: [‘巩义’, ‘新郑’, ‘登封’],
‘开封’: [‘兰考’, ‘通许’, ‘尉氏’],
}
“山西”: {
‘太原’: [‘清徐’, ‘阳曲’, ‘古交’],
‘大同’: [‘左云’, ‘大同’, ‘广灵’],
}
}
代码示例:
#!/usr/bin/python # -*- coding:utf-8 -*- dic = { "河北": { "石家庄": ["鹿泉", "藁城", "元氏"], "邯郸": ["永年", "涉县", "磁县"], }, "河南": { '郑州': ['巩义', '新郑', '登封'], '开封': ['兰考', '通许', '尉氏'], }, "山西": { '太原': ['清徐', '阳曲', '古交'], '大同': ['左云', '大同', '广灵'], } } print("您可以查看的省份为:") for key in dic.keys(): print(key) while True: province=input("请输入你要查看的省份:") if province not in dic.keys(): print("对不起,您输入的省份有误,请重新输入.") else: print("%s省份下面的市包含:"%province) value = dic[province] for key in value.keys(): print(key) while True: city=input("请输入你要查看的市:") if city not in value.keys(): print("对不起,您输入的市有误,请重新输入.") else: print("%s市下面的县包含:"%city) list = value[city] for county in list: print(county) break
运行结果:
相关文章推荐
- python练习题目
- python练习题目
- 数据科学Python基础(附示例代码和练习题目)
- python基础练习题目1
- python基础练习题目2
- python题目练习
- 【好玩】Python练习之PythonChallenge题目5
- 【好玩】Python练习之PythonChallenge题目1-4
- python练习题目
- 古典概型题目 python练习
- python练习实例14,题目:将一个正整数分解质因数。例如:输入90,打印出90=2*3*3*5。
- 数据科学Python基础(附示例代码和练习题目)
- Python练习题目
- python练习题目
- Python之数学题目练习
- 经典python题目练习
- python 笔记 之 练习题目 后面给出结果
- python 正则表达式----练习题目
- 数据科学Python基础(附示例代码和练习题目)
- Python练习题目2