python程式整理(1)
阿新 • • 發佈:2018-11-10
''' 使用者登入驗證 要求: 1. 系統⾃動⽣成4位隨機數. 作為登入驗證碼. 直接用就好. 這里不用糾結 提示. 生成隨機數的辦法. from random import randint num = 0 verify_code = "" while num < 4: verify_code += chr(randint(65, 90)) num += 1 print(verify_code) # 四位隨機驗證碼 2. 使用者輸入⽤使用者名稱和密碼還有驗證碼. 3. 使用者可以有三次登入的機會. 但是驗證碼如果輸入錯誤. 不計算在內 '''
from random import randint
#正確的使用者名稱和密碼
username = "alex"
password = "123"
count = 3
while count > 0:
#使用者輸入使用者名稱和密碼
uname = input("請輸入使用者名稱:")
pwd = input("請輸入密碼:")
#生成驗證碼,每次生成的都是隨機的(此處是題上提供的程式碼)
num=0
verify_code""
while num < 4:
verify_code += chr(randint(65, 90))
num += 1
# 使用者輸入驗證碼
yzm = input("請輸入驗證碼(%s)" % verify_code)
#判斷驗證碼是否正確
if yzm.upper()!=verify_code:
print("驗證碼錯誤!") #驗證碼錯誤,重新輸入,並沒有改變迴圈的次數限制,這樣驗證碼錯誤就不會計算一次登入錯誤
else:
if uname == username and pwd == password:
print("登陸成功!")
break #退出程式
else:
print("對不起,使用者名稱或密碼錯誤")
count -= 1 #使用者登入失敗,次數減一
print("還有%s次機會" % count)
''' 資料結構: goods = [ {"name": "電腦", "price": 1999}, {"name": "滑鼠", "price": 10}, {"name": "遊艇", "price": 20}, {"name": "美女", "price": 998}, ...... ] 功能要求: 基礎要求: 1、啟動程式後,輸入使用者名稱密碼後,讓使用者輸入工資,然後列印商品列表 2、允許使用者根據商品編號購買商品 3、使用者選擇商品後,檢測餘額是否夠,夠就直接扣款,不夠就提醒 4、可隨時退出,退出時,列印已購買商品和餘額 5、在使用者使用過程中, 關鍵輸出,如餘額,商品已加入購物車等訊息,需高亮顯示 擴充套件需求: 1、使用者下一次登入後,輸入使用者名稱密碼,直接回到上次的狀態,即上次消費的餘額什麼的還是那些,再次登入可繼續購買 2、允許查詢之前的消費記錄
goods = [
{"name": "電腦", "price": 1999},
{"name": "滑鼠", "price": 10},
{"name": "遊艇", "price": 20},
{"name": "美女", "price": 998}
]
#使用者名稱密碼
username = "alex"
password = "123"
f = open("shopping_cart.txt",mode="r",encoding="utf-8")
#從檔案中讀取到上次的餘額,建立了一個檔案"shopping_cart.txt"
money = int(f.readline().strip().split(":")[1])
#賬戶內的錢
# 購物車
# [{'id': 0, 'name':'電腦', 'price': 1999, 'totle': 10}]
# [{'id': 編號, 'name':'商品', 'price': 價格, 'totle': 數量}]
# 從檔案中讀取到購物車內的資料
shoppingcart = eval(f.readline().strip())
f.close()
# 登入.
while 1:
uname = input("請輸入你的使用者名稱, 輸入Q退出系統:")
if uname.upper() == 'Q':
print("系統退出")
break
pwd = input("請輸入你的密碼:")
if uname == username and pwd == password:
print("恭喜你. 登入成功")
_money = int(input("您當前的餘額是:%s, 輸入任意數字進行充值, 輸入0不充值: " % money))
money += _money
while 1:
# 商品列表
for i in range(len(goods)):
print("%s, 商品: %s, 價格: %s" % (i+1, goods[i]['name'], goods[i]['price']))
# 使用者輸入要購買的商品編號
num = int(input("請輸入您想要購買的商品編號:"))
# 獲取到使用者購買的商品
good = goods[num - 1]
# 校驗是否可以購買
if money < good['price']: # 商品價格
print("對不起, 餘額不足! 您當前的餘額是%s 請購買其他商品!" % money)
continue # 重新顯示商品列表
else:
for g in shoppingcart:
if g['id'] == num - 1: # 檢視購物車中是否已經擁有已經夠買了的商品
g['totle'] += 1 # 已經有了. 數量加1就可以了
break # 結束購物車的新增
else: # 購物車裡沒有該商品.
# 將第一次購買的商品新增到購物車
shoppingcart.append({'id': num-1, 'name': good['name'], 'price': good['price'], 'totle': 1})
money = money - good['price'] # 扣款
# 提示使用者購買成功
print("購買%s商品成功, 花費%s元, 您的餘額是: %s" % (good['name'], good['price'], money))
# 判斷是否繼續購物
isContinue = input("請問是否繼續購物. 輸入任意內容繼續, 輸入N結束購物(N)")
if isContinue.upper() == 'N':
print("結束購物")
# 購物流程結束. 列印購物已經購買的商品和餘額. 此處可以寫在"結束購物"位置
print("您的餘額是%s" % money)
print("商品編號\t商品名稱\t商品單價\t購買數量\t花費金額")
for good in shoppingcart:
print("%s\t%s\t%s\t%s\t%s" % (
good['id'], good['name'], good['price'], good['totle'], (good['price'] * good['totle'])))
# 將購物車中的內容和餘額寫入到檔案中
f = open("shopping_cart.txt", mode="w", encoding="utf-8")
f.write("money:%s\n" % money)
f.write(str(shoppingcart))
f.flush()
f.close()
print("程式退出. 歡迎下次光臨!")
exit() # 結束購物
else:
print("對不起, 登入失敗")