初学程序结构写的一个简单网站,使用了大量的循环语句,代码重复较多,因此参考度不大。
下面是完整代码:
"""
用户登录的电商网站
"""
#引入模块
import os, sys, time
import random
#定义一个变量,存储多个用户数据
users = [
["admin", "123", "Tom"],
["liuhaoran", "1997", "Jone"]
]
#展示登录菜单
while True:
os.system("cls")
print("*" * 35)
print("\t欢迎来到豪华电商网站")
print("\t1.用户登录")
print("\t2.注册新用户")
print("\t3.修改用户信息")
print("\t4.退出系统")
print("*" * 35)
#用户输入选项
userChoice = input("请输入您的选项:")
#判断用户选项并跳转
if userChoice == "1":
#用户登录
while True:
#请输入账号和密码
username = input("请输入您的账号:")
password = input("请输入您的密码:")
nicheng = input("请输入您的昵称: ")
#判断账号和密码是否正确
for user in users:
if username == user[0] and password == user[1] and nicheng == user[2]:
#登录成功,展示首页菜单
print("登录成功,即将进入首页菜单")
time.sleep(1)
break
#for循环遍历完之后还没有登录成功
else:
print("账号或密码有误,请重新操作")
continue
# 跳出while输入账号的循环
break
# 展示首页菜单
while True:
os.system("cls")
print("%s小仙女,欢迎您" % (nicheng))
print("~" * 44)
print("\t\t系统网站首页")
print("~*" * 22)
print("\t\t1.进入购物超市")
print("\t\t2.休闲小游戏")
print("\t\t3.返回登录菜单")
print("\t\t4.退出系统")
print("~*" * 22)
# 用户输入选项
choice = input("请输入您的选项: ")
if choice == "1":
# 显示购物超市页面
while True:
os.system("cls")
print("*" * 30)
print("\t欢迎来到豪华购物超市")
print("\t商品\t单价\t库存")
print("\t苹果\t5元\t100斤")
print("\t梨子\t4元\t50斤")
print("\t辣条\t1元\t10包")
print("\t牛奶\t3元\t20瓶")
print("\t小心钱包哈哈哈")
print("*" * 30)
listA = [
["苹果", "5", "\t100"],
["梨子", "4", "\t50"],
["辣条", "1", "\t10"],
["牛奶", "3", "\t20"]
]
total = 0
for food in listA:
buyChoice = input("请输入您要购买的商品: ")
if buyChoice == "q":
print("即将退出")
time.sleep(3)
break
elif buyChoice == food[0]:
# 单价
price = int(food[1])
# 总的库存
sumCount = int(food[2])
while True:
count = int(input("请输入您要购买的数量:"))
# 库存不足
if count > sumCount:
input("不好意思,库存不足,我们会尽快补货的")
continue
elif count <= 0:
print("客官,不能再少了")
continue
else:
# 总共花的钱
sumPrice = count * price
print("您购买的商品是%s,数量为%s,总额是%s" % (food[0], count, sumPrice))
break
# 结算总金额
total += sumPrice
# 询问用户是否继续购买
choice = input("是否继续购买(y/n)")
if choice == "y":
continue
else:
print("您需要付钱:", total)
# 买完付钱
while True:
money = float(input("请付钱:"))
# 用户支付的金额不足
if money < total:
input("金额不足,请重新支付...")
continue
# 找零
balance = money - total
print("找您零钱:", balance, "元,欢迎下次再来")
time.sleep(2)
break
break
break
else:
input("商品未上架,请购买其他东西吧...")
time.sleep(2)
continue
break
elif choice == "2":
#展示游戏界面
while True:
os.system("cls")
print("*" * 30)
print("---欢迎光临大富豪游戏---")
print("\t1.石头剪刀布")
print("\t2.老虎棒子鸡")
print("\t3.猜数字")
print("*" * 30)
# 初始积分
score = 10
#用户输入选择
gameChoice = input("请输入您的选择: ")
print("现在的积分为:", score)
if gameChoice == "1":
print("*" * 30)
print("欢迎来到石头剪刀布游戏!")
print("您准备好了吗?")
print("*" * 30)
while True:
# 石头剪刀布游戏
# 电脑每次出拳随机
computerNum = random.randint(0, 2)
if computerNum == 0:
computerEnd = "石头"
elif computerNum == 1:
computerEnd = "剪刀"
else:
computerEnd = "布"
# 玩家出拳
if score >= 0:
userEnd = input("请出拳(石头、剪刀、布):")
else:
print("积分不足,请充值")
print("即将退出")
time.sleep(2)
break
#玩家不想玩了
if userEnd == "q":
print("客官慢走呀")
time.sleep(2)
break
#为了使体验更友好,显示玩家和电脑出拳情况
print("您出拳为:%s,\n电脑出拳为:%s"%(userEnd, computerEnd))
if userEnd == "石头":
if computerEnd == "石头":
print("平局,积分不变,现有积分:%s" % (score))
elif computerEnd == "剪刀":
score += 10
print("恭喜您,获胜,加10分,现有积分:%s"%(score))
else:
score -= 10
print("很遗憾,您输了,扣10分,现有积分:%s"%(score))
elif userEnd == "剪刀":
if computerEnd == "石头":
score -= 10
print("很遗憾,您输了,扣10分,现有积分:%s"%(score))
elif computerEnd == "剪刀":
print("平局,积分不变,现有积分:%s" % (score))
else:
score += 10
print("恭喜您,获胜,加10分,现有积分:%s" % (score))
elif userEnd == "布":
if computerEnd == "石头":
score += 10
print("恭喜您,获胜,加10分现有积分:%s" % (score))
elif computerEnd == "剪刀":
score -= 10
print("很遗憾,您输了,扣10分,现有积分:%s" % (score))
else:
print("平局,积分不变,现有积分:%s" % (score))
else:
print("输入错误,请重新输入")
continue
elif gameChoice == "2":
#展示游戏画面
print("*" * 35)
print("欢迎来到老虎棒子鸡游戏...")
print("\t游戏规则如下")
print("棒打老虎,老虎吃鸡,鸡吃虫,虫吃棒")
print("*" * 35)
while True:
# 老虎棒子鸡游戏
#电脑随机生成一个动物名字
animalNum = random.randint(0,3)
if animalNum == 0:
animalName = "老虎"
elif animalNum == 1:
animalName = "棒子"
elif animalNum == 2:
animalName = "鸡"
else:
animalName = "虫"
#提示用户输入
if score >= 0:
animal = input("请输入您心中的动物(老虎、棒子、鸡、虫): ")
#若积分不足不能继续游戏
else:
print("积分不足,请充值")
print("即将返回首页")
time.sleep(2)
break
#用户输入q退出游戏
if animal == "q":
print("客官慢走...")
time.sleep(2)
break
#显示电脑和用户输入
input("电脑想到的动物是:%s,\n玩家想到的动物是:%s"%(animalName, animal))
if animal == "老虎":
if animalName == "老虎":
input("平局,积分不变,现有积分:%s"%(score))
elif animalName == "棒子":
score -= 10
input("很遗憾,您输了,扣10分,现有积分:%s"%(score))
elif animalName == "鸡":
score += 10
input("恭喜您,获胜,加10分,现有积分:%s"%(score))
else:
input("不分输赢,积分不变,现有积分为:%s"%(score))
elif animal == "棒子":
if animalName == "老虎":
score += 10
input("恭喜您,获胜,加10分,现有积分:%s"%(score))
elif animalName == "棒子":
input("平局,积分不变,现有积分:%s" % (score))
elif animalName == "鸡":
input("不分输赢,积分不变,现有积分为:%s" % (score))
else:
score -= 10
input("很遗憾,您输了,扣10分,现有积分:%s" % (score))
elif animal == "鸡":
if animalName == "老虎":
score -= 10
input("很遗憾,您输了,扣10分,现有积分:%s" % (score))
elif animalName == "棒子":
input("不分输赢,积分不变,现有积分为:%s" % (score))
elif animalName == "鸡":
input("平局,积分不变,现有积分:%s" % (score))
else:
score += 10
input("恭喜您,获胜,加10分,现有积分:%s" % (score))
elif animal == "虫":
if animalName == "老虎":
input("不分输赢,积分不变,现有积分为:%s" % (score))
elif animalName == "棒子":
score += 10
input("恭喜您,获胜,加10分,现有积分:%s" % (score))
elif animalName == "鸡":
score -= 10
input("很遗憾,您输了,扣10分,现有积分:%s" % (score))
else:
print("平局,积分不变,现有积分:%s" % (score))
else:
input("输入有误,请重新输入")
continue
elif gameChoice == "3":
#猜数字游戏
while True:
#定义一个变量,记录每局游戏用户操作的次数
times = 0
#展示游戏画面
print("*" * 30)
print("猜数字游戏")
print("Ready? Go")
print("*" * 30)
# 电脑随机产生数字
comNum = random.randint(0, 100)
print("系统数字已经生成...")
while True:
#提示用户猜数字
if score >= 0:
number =int(input("请输入您的数字: "))
#每猜一次积分减1
score -= 1
#每输入1次次数加1
times += 1
# 根据用户输入的数字判断是偏大/偏小
if number > comNum:
input("猜错了,偏大")
elif number < comNum:
input("猜错了,偏小")
elif number == comNum:
input("恭喜您,答对了!")
input("您只猜了:%s次就猜对了呢!" % (times))
# 根据次数增加积分
if times == 1:
score += 10
elif times == 2:
score += 8
elif times == 3:
score += 5
elif times == 4:
score += 2
elif times == 5:
score += 1
else:
score += 0
print("您的积分为:%s" % (score))
break
else:
input("输入错误,请重新输入...")
continue
else:
input("积分不足,请及时充值,即将返回游戏主页面")
time.sleep(3)
break
response = input("游戏结束,是否继续?")
if response == "y":
continue
else:
print("游戏退出")
break
elif gameChoice == "q":
print("退出游戏,即将回到电商网站首页")
time.sleep(3)
break
elif choice == "3":
print("账号即将退出,返回登录菜单...")
time.sleep(1)
break
elif choice == "4":
print("退出系统")
time.sleep(3)
sys.exit(1)
else:
print("没有这个选项,请重新操作")
time.sleep(1)
continue
elif userChoice == "2":
while True:
os.system("cls")
# 展示注册界面
print("\t\t用户注册")
print("*" * 40)
print("\t您好!欢迎注册新用户^-^")
print("\t请根据提示信息")
print("\t填写您的个人资料")
print("*" * 40)
time.sleep(1)
#提示用户录入信息
username = input("请输入您的账号: ")
#验证用户账号是否可用
is_ok = True #可用
for user in users:
if username == user[0]:
input("您的账号已经存在,请使用其他账号注册")
is_ok = False #表示账号不可用
#如果账号已经被使用
if not is_ok:
continue #回到while循环,重新输入账号
#提示用户输入昵称
nicheng = input("请给自己起一个不一样的昵称吧: ")
#提示用户输入密码
while True:
password = input("请输入您的密码: ")
#提示用户确认密码
confirm = input("请再次确认密码: ")
#判断两次输入的密码是否一致
if password != confirm:
print("两次密码输入不一致,请重新输入..")
time.sleep(2)
continue
break
#注册用户:将用户输入的账号、密码保存成一个列表
user = [username, password, nicheng]
#将新用户的列表添加到系统用户变量中
users.append(user)
print("注册成功,请使用新账号登录")
time.sleep(2)
break #跳出注册页面
elif userChoice == "3":
#修改用户登录密码
while True:
os.system("cls")
print("*" * 30)
print("\t您正在修改个人信息")
print("\t请确认是本人操作")
print("*" * 30)
username = input("请输入您的用户名: ")
if username == "q":
print("放弃修改,即将退出修改界面")
time.sleep(3)
break
for user in users:
while username == user[0]:
oldPassward = input("请输入您的旧密码: ")
if oldPassward == "q":
print("放弃修改,即将退出修改界面")
time.sleep(3)
break
elif oldPassward != user[1]:
print("密码错误,请重新输入")
continue
while oldPassward == user[1]:
newPassward = input("请输入新密码: ")
if newPassward == "q":
print("放弃修改,即将退出修改界面")
time.sleep(3)
break
elif newPassward == oldPassward:
print("两次密码相同,请重新输入")
continue
else:
#将修改过的密码保存
user[1] = newPassward
users.append(user)
input("修改成功,请使用新密码登录")
time.sleep(2)
break
break
break
break
elif userChoice == "4":
print("即将退出系统")
time.sleep(3)
sys.exit(1)
else:
print("没有这个选项,请重新操作")
time.sleep(1)
#返回菜单,重新显示
continue