1、用戶登錄、註冊、購買商品等系統,使用函數完成。
users = [] #存儲用戶名
user_passwds = [] #存儲用戶密碼
user_money = []#存儲用戶賬戶餘額
def user_logon(user,passwd):
if users.count(user) != 0:
print("---------該用戶名已存在!")
else:
users.append(user)
dir1 = {user:passwd}
user_passwds.append(dir1)
dir2 = {user:6000}
user_money.append(dir2)
print("--------用戶{}註冊成功!".format(user))
def user_login(user,passwd):
if users.count(user) == 0:
print("-----該用戶名不存在!")
else:
dir = {user:passwd}
if user_passwds.count(dir) == 0:
print("-----抱歉,密碼錯誤!!!")
else:
print("-----登錄成功!!!-----")
print_print()
print("------1:進入商城-----")
print("------其他選擇將退出登錄--")
print_print()
choice2 = int(input("請輸入您的選擇:"))
if choice2 != 1:
print("-----退出登錄成功!")
else:
print_print()
print("----歡迎來到聯盟商城--")
user_buy(user)
def user_buy(user):
while True:
n = users.index(user)
money = user_money[n].get(user)
print("你的餘額是:{}".format(money))
print_print()
print("----商品1:蠻族之王-泰達米爾-3150---")
print("----商品2:寒冰射手-艾希-1350---")
print("----商品3:迅捷斥候-提莫-4800---")
choice3 = int(input("輸入您的選擇:"))
y_n = input("是否購買:y/n:")
if y_n == "y":
if choice3 == 1:
if money > 3150:
money = money - 3150
dir = {user:money}
user_money[n] = dir
print("購買成功,當前餘額:{}".format(money))
else:
print("抱歉,餘額不足!")
elif choice3 == 2:
if money > 1350:
money = money - 1350
dir = {user:money}
user_money[n] = dir
print("購買成功,當前餘額:{}".format(money))
else:
print("抱歉,餘額不足!")
elif choice3 == 3:
if money > 4800:
money = money - 4800
dir = {user:money}
user_money[n] = dir
print("購買成功,當前餘額:{}".format(money))
else:
print("抱歉,餘額不足!")
else:
print("錯誤的輸入")
else:
print("購買取消!")
print_print()
choice4 = int(input("輸入1:退出商城:"))
if choice4 == 1:
print("-----退出成功!!")
break
else:
print("-------留在商城----")
def print_print():
print("----------------------------------")
while True:
print_print()
print("歡迎來到英雄聯盟!!")
print_print()
print("請輸入您的選項:")
print_print()
print("--------1---用戶註冊--------------")
print_print()
print("--------2---用戶登錄--------------")
print_print()
print("--------3---退出------------------")
print_print()
choice1 = int(input("請輸入:"))
if choice1 == 1 :
user = input("請輸入註冊用戶名:")
passwd = input("請輸入密碼:")
user_logon(user,passwd)
elif choice1 == 2:
user = input("請輸入登錄賬號:")
passwd = input("請輸入登錄密碼:")
user_login(user,passwd)
elif choice1 == 3:
break
else:
print("無效輸入!!!")
測試截圖:測試過長,不便截圖,將結果複製至此。
J:\Anaconda3\openlab\第四周>python day7-1.py
----------------------------------
歡迎來到英雄聯盟!!
----------------------------------
請輸入您的選項:
----------------------------------
--------1---用戶註冊--------------
----------------------------------
--------2---用戶登錄--------------
----------------------------------
--------3---退出------------------
----------------------------------
請輸入:1
請輸入註冊用戶名:xuhaobo
請輸入密碼:123321
--------用戶xuhaobo註冊成功!
----------------------------------
歡迎來到英雄聯盟!!
----------------------------------
請輸入您的選項:
----------------------------------
--------1---用戶註冊--------------
----------------------------------
--------2---用戶登錄--------------
----------------------------------
--------3---退出------------------
----------------------------------
請輸入:2
請輸入登錄賬號:xuhaobo
請輸入登錄密碼:123321
-----登錄成功!!!-----
----------------------------------
------1:進入商城-----
------其他選擇將退出登錄--
----------------------------------
請輸入您的選擇:1
----------------------------------
----歡迎來到聯盟商城--
你的餘額是:6000
----------------------------------
----商品1:蠻族之王-泰達米爾-3150---
----商品2:寒冰射手-艾希-1350---
----商品3:迅捷斥候-提莫-4800---
輸入您的選擇:1
是否購買:y/n:y
購買成功,當前餘額:2850
----------------------------------
輸入1:退出商城:1
-----退出成功!!
----------------------------------
歡迎來到英雄聯盟!!
----------------------------------
請輸入您的選項:
----------------------------------
--------1---用戶註冊--------------
----------------------------------
--------2---用戶登錄--------------
----------------------------------
--------3---退出------------------
----------------------------------
請輸入:3
2、撿硬幣問題,有很多堆硬幣,以列表的形式表示,要求按照如下的規則撿硬幣。
|-- 每次撿的數量只能是1個或者2個,求最少多少次撿完。
如:[3, 8, 11],表示有三堆硬幣,第一堆,3個;第二堆,8個…
def yinbi(ls):
"""
遍歷列表對奇偶數進行判斷處理,最後將代碼合併。
"""
sum = 0
for i in ls:
sum += (i//2 + i%2)
return sum
ls = []
n = int(input("請輸入硬幣堆數:"))#將輸入的硬幣數目存入列表,
for i in range(0,n):
n1 = int(input("請輸入第{}堆硬幣數:".format(i)))
ls.append(n1)
print("需要撿硬幣的最少次數:",yinbi(ls))
上述代碼僅供參考,直接copy請給個贊。