用python写一个简单的用户登陆程序(要求写成函数)

本文介绍了一个简易的用户管理系统,该系统采用Python实现,包括用户注册、登录及退出等功能。通过简单的命令行交互,用户可以创建账号并进行登录验证。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

性能要求:

源代码:

dict1={}
def log():
    global dict1
    print("|---新建用户:N/n---|")
    print("|---账户登录:E/e---|")
    print("|---退出程序:Q/q---|")
    what=input("|---请输入指令代码:")
    
    if what=='n' or what=='N' :
        key=input("请输入用户名:")
        while key in dict1 :
            key=input("此用户名已经被使用,请重新输入")
        value=input("请输入密码:")
        dict1[key]=value
        print("注册成功,赶紧试试登陆把^_^")
            
    elif what=='e' or what=='E':
        key=input("请输入用户名:")
        while key not in dict1:
            key=input("您输入的用户名不存在,请重新输入")
        value=input("请输入密码:")
        if(dict1[key]==value):
            print("欢迎进入胯下痛系统,请点击右上角的X结束程序!")
        else:
            print("密码错误")

    elif what=='q' or what=='Q':
        return
    
while(1):
    log()        


转载于:https://www.cnblogs.com/iamjuruo/p/7470893.html

<think>嗯,用户想用Python一个打印购物小票的程序。首先,我得弄清楚他们的需求具体是什么。可能他们需要的是一个简单的命令行程序,用来模拟超市或商店的购物小票输出。可能用户是个刚开始学Python的人,所以需要代码简单易懂,结构清晰。 首先,我应该考虑购物小票的基本要素。通常小票包括商店名称、购物时间、商品列表(名称、单价、数量)、总价、折扣、应付金额,可能还有支付方式和找零。所以程序里需要处理这些信息的输入和格式化输出。 接下来,数据结构方面,可能需要用列表来存储商品,每个商品可能有名称、单价、数量。可以用字典来表示每个商品,然后将所有商品字典放在一个列表里。这样方便遍历和计算总价。 然后是计算部分,总价是所有商品单价乘以数量的总和。如果有折扣的话,比如满减或者打折,需要相应的计算逻辑。用户可能暂时不需要复杂的折扣,但可以简单实现一个示例,比如总价满100减10元。 时间处理方面,需要获取当前时间并格式化成字符串,可以用datetime模块里的now()函数,然后格式化为YYYY-MM-DD HH:MM:SS。 接下来是输出格式,需要美观的表格形式。可以使用字符串的格式化方法,比如f-string或者format(),来对齐各列。例如,商品名称左对齐,单价和数量右对齐,金额右对齐等。 考虑到用户可能在Windows或Mac/Linux环境下运行,打印的时候可能会有编码问题,但如果是命令行输出的话,一般问题不大。不过需要注意中文字符是否正常显示,可能需要确保文件编码是UTF-8,或者在代码开头加上编码声明。 另外,测试一下不同长度的商品名称是否会影响对齐,可能需要固定每列的宽度,或者动态调整。比如,设置商品名称列宽度为20字符,单价、数量、金额列各为10字符,这样表格看起来整齐。 还有,用户可能需要输入功能,比如手动输入商品信息,或者直接预设一些数据。考虑到演示目的,可能先使用预设的数据,方便用户直接运行看到结果。之后再扩展交互输入的部分。 支付和找零部分,假设顾客用现金支付,程序需要计算找零。可以让用户输入实付金额,或者模拟一个固定值。在示例中,可以预设实付金额为200元,然后计算找零。 最后,整个程序的结构大致是: 1. 定义商品列表 2. 计算总金额和折扣 3. 计算应付金额 4. 处理支付和找零 5. 打印小票的各个部分,包括表头、商品列表、总计、支付信息 测试的时候要注意各个数值的计算是否正确,尤其是浮点数精度问题。可能需要用round函数保留两位小数,或者在格式化输出时处理。 可能的错误点:商品名称过长导致格式错乱,数值计算时的类型错误,时间格式不正确。需要确保在输出时所有数据都转换为字符串,并且正确对齐。 然后,代码示例应该包含这些部分,用清晰的变量名,添加注释帮助理解。例如: - 定义商店名称和分隔线 - 使用datetime获取当前时间 - 定义商品列表,每个商品有名称、单价、数量 - 计算总价和折扣后的应付金额 - 处理支付和找零 - 打印小票的各个部分,使用格式化的字符串制作表格 最后,给用户提供一个可修改和扩展的示例,说明可以根据需要调整商品信息、折扣规则等。这样用户可以根据自己的需求进一步开发,比如添加输入功能或更复杂的折扣逻辑。</think>以下是一个简单Python购物小票打印程序示例,包含商品信息、价格计算和格式化输出功能: ```python from datetime import datetime def print_receipt(): # 商店信息 shop_name = "便捷超市" address = "北京市海淀区中关村路123号" tel = "联系电话: 010-87654321" separator = "-" * 40 # 获取当前时间 now = datetime.now().strftime("%Y-%m-%d %H:%M:%S") # 商品列表(名称,单价,数量) items = [ {"name": "可口可乐 500ml", "price": 3.00, "quantity": 2}, {"name": "乐事薯片(原味)", "price": 6.50, "quantity": 1}, {"name": "特仑苏牛奶 250ml", "price": 4.50, "quantity": 3}, {"name": "清风抽纸 3层", "price": 12.00, "quantity": 1}, ] # 计算金额 total = sum(item["price"] * item["quantity"] for item in items) discount = 10 if total >= 100 else 0 # 满100减10优惠 payable = total - discount # 支付信息(模拟现金支付) payment = 200.00 change = payment - payable # 打印小票 print(f"\n{shop_name:^40}") print(f"{address:^40}") print(f"{tel:^40}") print(separator) print(f"时间: {now}") print(separator) # 打印商品列表 print("{:<20}{:>8}{:>8}{:>10}".format("商品名称", "单价", "数量", "金额")) for item in items: amount = item["price"] * item["quantity"] print("{:<20}{:>8.2f}{:>8}{:>10.2f}".format( item["name"], item["price"], item["quantity"], amount)) # 打印总计信息 print(separator) print(f"{'总计:':<30}¥{total:>8.2f}") print(f"{'优惠:':<30}¥{discount:>8.2f}") print(f"{'应付金额:':<30}¥{payable:>8.2f}") print(f"{'实收金额:':<30}¥{payment:>8.2f}") print(f"{'找零:':<30}¥{change:>8.2f}") print(separator) print(f"{'欢迎再次光临!':^40}\n") # 运行打印程序 print_receipt() ``` 程序输出效果: ``` 便捷超市 北京市海淀区中关村路123号 联系电话: 010-87654321 ---------------------------------------- 时间: 2023-07-20 14:30:45 ---------------------------------------- 商品名称 单价 数量 金额 可口可乐 500ml 3.00 2 6.00 乐事薯片(原味) 6.50 1 6.50 特仑苏牛奶 250ml 4.50 3 13.50 清风抽纸 3层 12.00 1 12.00 ---------------------------------------- 总计: ¥ 38.00 优惠: ¥ 10.00 应付金额: ¥ 28.00 实收金额: ¥ 200.00 找零: ¥ 172.00 ---------------------------------------- 欢迎再次光临! ``` 程序特点: 1. 使用字典和列表存储商品信息 2. 自动计算总金额、优惠和找零 3. 规范化的表格格式输出 4. 包含完整的商店信息、时间戳 5. 支持中文显示和货币符号 6. 数值对齐精确到小数点后两位 可以根据需要扩展以下功能: - 添加商品条码扫描功能 - 连接真实打印机打印 - 增加会员折扣系统 - 保存销售记录到数据库 - 添加支付方式选择(微信/支付宝/现金等)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值