第一阶段:Python开发基础 day10 文件的使用--课后作业

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 # 退出登陆程序

博客地址

筱久的学习园地

大佬关注我一下,大家共同学习,共同进步呀。

转载于:https://www.cnblogs.com/foreversun92/p/11317149.html

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值