python函數綜合練習答案

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請給個贊。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章