目录
- 1.文件a.txt内容:每一行内容分别为商品名字,价钱,个数,求出本次购物花费的总钱数
- 2.编写注册函数
- 3.编写登陆函数
- 博客地址
1.文件a.txt内容:每一行内容分别为商品名字,价钱,个数,求出本次购物花费的总钱数
apple 10 3
tesla 100000 1
mac 3000 2
lenovo 30000 3
chicken 10 3
答:
# 第一步打开文件
with open('a.txt','r') as f:
data = f.read() # 读取文件中所有的数据赋值给 data 变量
data_list = data.split('\n') # 对读取的数据进行按行切分,放入到data_list列表中
# print(line_data) ['apple 10 3', 'tesla 100000 1', 'mac 3000 2', 'lenovo 30000 3', 'chicken 10 3']
sum = 0 # 定义一个商品总价的变量
# 循环这个列表 然后取出每一个商品的信息
for i in data_list:,
prize_line = i.split(' ') # 对每一行数据进行 切分 获取 每一个商品的信息 ['商品名','数量', '价格']
# print(prize_line) # 通过打印我们可以看出来,列表的 元素 1 和 2 就是代表商品的数量和价格 注意:这是字符类型,在运算的时候要类型转换
sum += int(prize_line[1]) * int(prize_line[2]) # 将取出来的数量和价格相乘后加到总价sum变量中
print(f'所有的商品总价就是:{sum}') # 打印结果
2.编写注册函数
将用户信息保存到文件内,用户信息可保存为nick:123|sean:456|tank:789
答:
正常写法
# 程序主题
target = True # 定义一个布尔型
while target:
username = input('请输入你要注册的用户名:') # 定义一个username变量接收用户输入的用户名
password = input('请输入你要设置的密码:') # 定义一个变量用来接收用户输入的密码
if username == '' or password == '': # 对用户输入的数据进行一个简单的判断 查看用户输入的信息是否为空
print('你输入的账号或密码为空!请重新输入') # 如果为空给提示,然后要求重新输入
continue # 结束本次循环,让用户重新输入注册信息
# 执行存入文件的操作
with open('user.txt', 'a+') as f: # 以只读的方式打开user.txt 文件,如果没有就会在当前文件夹下面创建一个user.txt文件
f.write(username + ':' + password + '|') # 格式化传递过来的用户名和密码
print('注册用户完成!') # 打印注册信息
target = False # 注册成功,退出注册程序
使用函数
# 定义一个注册函数用来完成用户输入的信息存入到文件中
def register(username,password):
with open('user.txt', 'a+') as f: # 以只读的方式打开user.txt 文件,如果没有就会在当前文件夹下面创建一个user.txt文件
f.write(username + ':' + password + '|') # 格式化传递过来的用户名和密码
print('注册用户完成!') # 打印注册信息
# 程序主题
target = True # 定义一个布尔型
while target:
username = input('请输入你要注册的用户名:') # 定义一个username变量接收用户输入的用户名
password = input('请输入你要设置的密码:') # 定义一个变量用来接收用户输入的密码
if username == '' or password == '': # 对用户输入的数据进行一个简单的判断 查看用户输入的信息是否为空
print('你输入的账号或密码为空!请重新输入') # 如果为空给提示,然后要求重新输入
continue # 结束本次循环,让用户重新输入注册信息
# 调用注册函数
register(username, password) # 调用注册函数
target = False # 注册成功,退出注册程序
3.编写登陆函数
题目要求:从文件内读取用户信息进行身份识别
答:
无函数
target = 0 # 定义一个变量用来进行程序控制
while True:
username = input('请输入你的用户名:') # 定义一个username变量接收用户输入的用户名
password = input('请输入你的密码:') # 定义一个变量用来接收用户输入的用户名
if username == '' or password == '': # 对用户输入的数据进行一个简单的判断 查看用户输入的信息是否为空
print('你输入的账号或密码为空!请重新输入') # 如果为空给提示,然后要求重新输入
continue # 结束本次循环,让用户重新输入注册信息
with open('user.txt','r') as f:
data_list = f.read().split('|') # 从文件中读取用户注册的信息,并做处理变成一个列表
# print(data) # 打印一下输出结果查看一下列表中的数据格式 ['forever:1234', 'admin:1234', 'mengmneng :123', '']
# 循环取出列表中的每条数据
for i in data_list :
user_info = i.split(':') # 对每条数据进行切割 变成 ['用户名','密码'] 这种形式的一个列表
if username == user_info[0] and password == user_info[1] : # 做一个判断输入的用户名和密码是否和当前的这条注册信息相同
print('恭喜你,登陆成功')
target = 1 # 将我们定义的控制流程的一个变量改变值
break # 如果输入没有问题那么就退出登陆程序
else:
print('你输入的账号密码有误,请重新输入')
if target == 1: # 当控制变量的值变成我们设定的时候 执行这个判断
break # 退出登陆程序
有函数
# 定义一个登陆的函数
def login(username,password):
global target
with open('user.txt','r') as f:
data_list = f.read().split('|') # 从文件中读取用户注册的信息,并做处理变成一个列表
# print(data) # 打印一下输出结果查看一下列表中的数据格式 ['forever:1234', 'admin:1234', 'mengmneng :123', '']
# 循环取出列表中的每条数据
for i in data_list :
user_info = i.split(':') # 对每条数据进行切割 变成 ['用户名','密码'] 这种形式的一个列表
if username == user_info[0] and password == user_info[1] : # 做一个判断输入的用户名和密码是否和当前的这条注册信息相同
print('恭喜你,登陆成功')
target = 1
break # 如果输入没有问题那么就退出登陆程序
else:
print('你输入的账号密码有误,请重新输入')
return target
# 程序主题
target = 0 # 定义一个变量用来进行程序控制
while True:
username = input('请输入你的用户名:') # 定义一个username变量接收用户输入的用户名
password = input('请输入你的密码:') # 定义一个变量用来接收用户输入的用户名
if username == '' or password == '': # 对用户输入的数据进行一个简单的判断 查看用户输入的信息是否为空
print('你输入的账号或密码为空!请重新输入') # 如果为空给提示,然后要求重新输入
continue # 结束本次循环,让用户重新输入注册信息
# 调用注册函数
login(username, password) # 调用登陆函数
if target == 1:
break # 退出登陆程序
博客地址
筱久的学习园地
大佬关注我一下,大家共同学习,共同进步呀。