日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) >

python用字典编写购物程序_Python编写购物小程序

發(fā)布時(shí)間:2025/3/20 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python用字典编写购物程序_Python编写购物小程序 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

購(gòu)物車要求:

用戶名和密碼存放于文件中

啟動(dòng)程序后,先登錄,登錄成功則讓用戶輸入工資,然后打印商品列表,失敗則重新登錄,超過(guò)三次則退出程序

允許用戶根據(jù)商品編號(hào)購(gòu)買商品

用戶選擇商品后,檢測(cè)余額是否夠,夠就直接扣款,不夠就提醒

可隨時(shí)退出,退出時(shí),打印已購(gòu)買商品和余額

#!/usr/bin/env python

# -*- coding: utf-8 -*-

import os

'''

用戶名和密碼存放于文件中

啟動(dòng)程序后,先登錄,登錄成功則讓用戶輸入工資,然后打印商品列表,失敗則重新登錄,超過(guò)三次則退出程序

允許用戶根據(jù)商品編號(hào)購(gòu)買商品

用戶選擇商品后,檢測(cè)余額是否夠,夠就直接扣款,不夠就提醒

可隨時(shí)退出,退出時(shí),打印已購(gòu)買商品和余額

'''

product_dic = { 1:['Iphone7',5800],

2:['Coffee',30],

3:['疙瘩湯',10],

4:['Python Book',99],

5:['Bike',199],

6:['ViVo X9',2499],

}

shop_list=[]

shop_dic={}

def shop():

Tag=True

remain_Balance = Balance

print("開始購(gòu)物".center(30,"="))

for key,value in product_dic.items():

print(key,value)

while Tag:

serial_number=input("輸入你要購(gòu)買商品的編號(hào)>>:").strip()

if serial_number.isdigit():

serial_number = int(serial_number)

if serial_number > 6:

print("請(qǐng)輸入1-6")

continue

elif serial_number == "q":

print("開始結(jié)算".center(20,"="))

for list in shop_list:

product_name = list[0]

product_price = list[1]

shop_dic.setdefault(product_name, {})

shop_dic[product_name].setdefault("number", 0)

shop_dic[product_name].setdefault("total", 0)

shop_dic[product_name]["price"] = product_price

if product_name in shop_dic:

shop_dic[product_name]["number"] += 1

shop_dic[product_name]["total"] = shop_dic[product_name]["price"] * shop_dic[product_name]["number"]

# 總價(jià)

total = 0

for product in shop_dic:

print(product.center(7),str(shop_dic[product]["number"]).center(7),str(shop_dic[product]["total"]).center(5))

total = total + shop_dic[product]["total"]

print("您當(dāng)前余額為{}".format(Balance).center(20))

print("您購(gòu)買總價(jià)格為{}".format(total).center(20))

print("您的剩余價(jià)格為{}".format(Balance-total).center(20))

# with open('user.txt',"r",encoding="utf-8") as read_f,open('.user.txt.swap',"w",encoding="utf-8") as write_f:

# for line in read_f:

# line = line.replace(str(Balnce),str(Balance-total))

# write_f.write(line)

# os.remove('user.txt')

# os.rename('.user.txt.swap', 'user.txt')

with open('user.txt', "r", encoding="utf-8") as read_f, open('.user.txt.swap', "w",

encoding="utf-8") as write_f:

for line in read_f:

line = line.replace(str(Balance), str(Balance - total))

write_f.write(line)

os.remove('user.txt')

os.rename('.user.txt.swap', 'user.txt')

break

elif serial_number == "exit":

print("直接退出")

else:

continue

print("你要購(gòu)買的商品編號(hào){},商品{},價(jià)格{}".format(serial_number,product_dic.get(serial_number)[0],product_dic.get(serial_number)[1]))

yes_no=input("輸入y/n,確定加入購(gòu)物車>>:")

if yes_no == "y" :

if product_dic.get(serial_number)[1] > remain_Balance:

print("您的余額不夠.無(wú)法加入到購(gòu)物車,還差{}".format(product_dic.get(serial_number)[1]-remain_Balance))

else:

shop_list.append(product_dic.get(serial_number))

remain_Balance = remain_Balance - product_dic.get(serial_number)[1]

print(shop_list,remain_Balance)

continue

elif yes_no == "n":

print(shop_list)

pass

continue

elif yes_no == "exit":

break

else:

print("非法輸入,請(qǐng)輸入y或者n")

continue

user_info={}

while True:

print('''購(gòu)物車小程序:

1、購(gòu)物

2、注冊(cè)賬號(hào)

3、充值

輸入q退出

''')

option=input("your option>>:").strip()

if not option.isdigit():

print("input 1 or 2\n")

continue

option=int(option)

if option > 2:

print("input 1 or 2\n")

continue

if option == 1:

Tag=True

count=0

while Tag:

input_user = input("your name>>:").strip()

with open("user.txt", encoding="utf-8", mode="r") as read_f:

for line in read_f:

line=line.strip("\n")

User=line.split(",")[0]

Password=line.split(",")[1]

Balance=line.split(",")[2]

if input_user == User:

user_info.setdefault(User,{})

user_info[User].setdefault("count",0)

user_info[User]["Password"]=Password

user_info[User]["Balance"]=Balance

if user_info[User]["count"] >= 3:

print("%s用戶鎖定" %(input_user))

Tag=False

break

else:

print("{}用戶不存在".format(input_user))

continue

if Tag:

input_password = input("your password>>:").strip()

if input_password == user_info[input_user]["Password"]:

print("{}用戶密碼登陸正確".format(input_user))

print("用戶:{},余額:{}".format(User, user_info[User]["Balance"]))

'''

這時(shí)候才開始購(gòu)物

'''

Balance=int(Balance)

shop()

break

else:

user_info[input_user]["count"]+=1

print("{}用戶密碼登陸錯(cuò)誤,還有{}嘗試機(jī)會(huì)".format(input_user, 3 - user_info[input_user]["count"]))

elif option == 2:

Tag=True

while Tag:

with open('user.txt', "r", encoding="utf-8") as read_f, open('.user.txt.swap', "w",encoding="utf-8") as write_f:

register_user=input("你要注冊(cè)的用戶>>:").strip()

for line in read_f:

line=line.strip("\n")

User = line.split(",")[0]

Balance = line.split(",")[2]

if register_user == User:

print("{}用戶已經(jīng)存在".format(register_user))

yn_pay=input("是否充值y/n>>:")

if yn_pay == "y":

pay_money=input("你要充值多少>>:").strip()

print(Balance,pay_money)

print(line)

line=line.replace(Balance,str(int(Balance)+int(pay_money)))

write_f.write(line)

# os.remove("user.txt")

# os.rename('.user.txt.swap', 'user.txt')

elif yn_pay == "n":

pass

os.remove("user.txt")

os.rename('.user.txt.swap', 'user.txt')

總結(jié)

以上是生活随笔為你收集整理的python用字典编写购物程序_Python编写购物小程序的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。