python基礎代碼小練

来源:https://www.cnblogs.com/lilz/archive/2018/08/05/9427387.html
-Advertisement-
Play Games

二: ...


一.創建並輸出菜單, 菜單是不可變的. 所以使用元組
menus = ("1, 錄入", "2, 查詢", "3, 刪除", "4, 修改", "5, 退出")
存儲用戶的信息 id: {'name':'名字', 'weight':體重, 'height':身高}
例如:目前有兩個用戶信息:1. 汪峰, 2. 章子怡
存儲結構:
{
1:{'name':'汪峰', 'weight':80, 'height':1.8, 'BMI':24.7},
2:{'name':'章子怡', 'weight':50, 'height':1.65, 'BMI':18.4}
}
bodies = {}

body_id = 1 # 編號從1開始

體質指數(BMI)= 體重(kg)÷ (身高(m) x 身高(m))
體重的單位: KG
身高的單位: m
需求:首先。列印菜單,然後用戶輸入選擇的菜單項
輸入1:進入錄入環節。用戶需要錄入:名字,身高,體重.
由程式計算出BMI指數. 保存到bodies字典中. 第一個用戶的id是1, 第二個是2, 以此類推
錄入完畢後. 提示用戶是否繼續錄入. 如果選擇是, 則繼續進行錄入, 直到用戶輸入否. 則返回到主菜單
輸入2: 進入查詢環節, 提示用戶輸入要查詢的人的id. 如果不存在,給與提示, 如果存在. 則顯示出該用戶的全部信息(名字,身高,體重,BMI)
然後提示用戶是否繼續查詢. 如果選擇是, 繼續進行查詢, 直到用戶輸入否, 返回主菜單
輸入3: 進入刪除環節, 提示用戶輸入要刪除的人的id, 如果id不存在, 給與提示, 如果存在, 則執行刪除操作. 並提示刪除成功.
然後提示用戶是否繼續刪除, 如果是, 繼續讓用戶選擇要刪除的id, 直到用戶輸入否, 返回主菜單
輸入4: 進入修改環節, 首先讓用戶輸入要修改的人的id, 根據id查找用戶信息, 如果不存在, 給與提示, 如果存在, 將用戶原信息進行列印,
然後提示用戶輸入新的名字, 身高, 體重. 由程式重新計算BMI指數. 並將新的信息保存在bodies中. 同時給用戶展示新的用戶信息
然後提示用戶是否繼續修改, 如果是, 則繼續要求用戶輸入id信息. 直到用戶輸入否, 返回主菜單.
輸入5: 程式退出.
輸入其他任何內容. 都予以提示不合法. 讓用戶重新進行輸入

 1 bodies = {}  # 存儲用戶的信息
 2 body_id = 1  # 編號從1開始
 3 while 1:
 4     menus = ("1, 錄入", "2, 查詢", "3, 刪除", "4, 修改", "5, 退出")
 5     print("主菜單", menus)
 6     content = int(input('請根據需求輸入菜單選項:'))
 7     if content == 1:
 8         while 1:
 9             name1 = input("請您輸入您的名字:")
10             height1 = input("請您輸入您的身高:")
11             weight1 = input("請您輸入您的體重:")
12             B = int(weight1) / (int(height1) ** 2)
13             if body_id in bodies.keys():
14                 print("您輸入的id已經存在")
15             else:
16                 bodies[body_id] = {'name': name1, 'weight': weight1, 'height': height1, 'BMI': B}
17                 print("您的id是:", body_id)
18                 print(bodies)
19             body_id += 1
20             con = input("您是否繼續錄入,按q/Q退出到主菜單,任意鍵繼續:")
21             if con.upper() == 'Q' :
22                 break
23     elif content == 2:
24         while 1:
25             body_id = int(input("請您輸入要查詢的id:"))
26             if body_id in bodies.keys() :
27                 print(bodies[body_id])
28             else:
29                 print("您輸入的id不存在")
30             con = input("是否繼續查詢. 如果選擇是,按任意鍵。  返回主菜單,按q/Q")
31             if con.upper() == 'Q':
32                 break
33     elif content == 3:
34         while 1:
35             body_id = int(input("請您輸入要刪除的id:"))
36             if body_id in bodies.keys():
37                 bodies.pop(body_id)
38             else:
39                 print("您輸入的id不存在")
40             con = input("是否繼續刪除. 如果選擇是,按任意鍵。  返回主菜單,按q/Q")
41             if con.upper() == 'Q':
42                 break
43     elif content == 4 :
44         while 1:
45             body_id = int(input("請您輸入要修改的id"))
46             if body_id in bodies.keys():
47                 name1 = input("請您輸入您的名字:")
48                 height1 = input("請您輸入您的身高:")
49                 weight1 = input("請您輸入您的體重:")
50                 B = int(weight1) / (int(height1) ** 2)
51                 bodies[body_id] = {'name': name1, 'weight': weight1, 'height': height1, 'BMI': B}
52             else:
53                 print("您輸入的id不存在")
54             con = input("是否繼續修改. 如果選擇是,按任意鍵。返回主菜單,按q/Q")
55             if con.upper() == 'Q':
56                 break
57     elif content == 5:
58         break
59     else:
60         print("滾犢子,按上面菜單來")

二:

功能要求:
要求用戶輸入自己擁有總資產,例如:2000
顯示商品列表,讓用戶根據序號選擇商品,加入購物車
購買,如果商品總額大於總資產,提示賬戶餘額不足,否則,購買成功。
goods = [
{"name": "電腦", "price": 1999},
{"name": "滑鼠", "price": 10},
{"name": "游艇", "price": 20},
{"name": "美女", "price": 998},
]
 1 goods = [
 2     {"name": "電腦", "price": 1999},
 3     {"name": "滑鼠", "price": 10},
 4     {"name": "游艇", "price": 20},
 5     {"name": "美女", "price": 998},
 6 ]
 7 content = int(input("請您輸入您的總資產:"))
 8 count = 1   #商品序號
 9 buy=[]#加入購物車的商品序號
10 sum = 0
11 a=''
12 while 1:
13     for i in goods:
14         print("商品序號:",count,i)
15         count += 1
16 
17     while a.upper() != 'Q':
18         buy.append(int(input("請輸入你要購買的商品序號")))
19         for i in buy:
20             sum = sum + goods[i-1]["price"]
21         if sum <= content:
22             print("購買成功")
23         else:
24             print("賬戶餘額不足")
25         a = input("繼續按任意鍵,退出請按q/Q")
26     else:
27         break

 三:用函數完成登錄註冊以及購物車的功能. 

要求:    1, 啟動程式, 用戶可選擇四個選項: 登錄, 註冊, 購物, 退出.
      2, 用戶註冊, 用戶名不能重覆, 註冊成功之後, 用戶名密碼記錄到文件中.
      3, 用戶登錄, 用戶名密碼從文件中讀取,進行三次驗證, 驗證不成功則退出整個程式.
      4, 用戶登錄成功之後才能選擇購物功能進行購物, 購物功能( 就是將購物車封裝到購物的函數中).
      5, 退出則是退出整個程式.


 1 def shopping():
 2     '''
 3     shop:存放選購的商品序號
 4     :return: 返回購物商品的序號
 5     '''
 6     shop = []
 7     with open('goods','r',encoding='utf-8') as f1:
 8         for i in f1:
 9             print(i)
10         while 1:
11             content=int(input("請選擇您要購買的商品的序號:"))
12             shop.append(count)
13             go=input("繼續購買按任意鍵,不購買按q/Q:")
14             if go.upper() == 'Q':
15                 break
16     return  shop
17 
18 
19 a = 0   #登陸成功則為1,未登陸則為0
20 while 1:
21 
22     print("歡迎進入老男孩購物系統:登錄, 註冊, 購物, 退出")
23     content = input("請輸入選項:")
24     if content == '登陸':
25         print("您共有3次機會")
26         count = 3
27         while   count > 0:
28             name = input("請輸入用戶名:")
29             password = input("請輸入密碼:")
30             with open('user','r',encoding='utf-8') as f1:
31                 for line in f1:
32                     de = line.strip().split(',')
33                     if de[0] == name and de[1] == password:
34                         print("恭喜您,登陸成功")
35                         a = 1
36                         break
37                 else:
38                     print("您輸入的用戶名或密碼錯誤")
39                 count -= 1
40                 if a == 1:
41                     break
42 
43     elif content == '註冊':
44         while 1:
45             name = input("請輸入用戶名:")
46             password = input("請輸入密碼:")
47             with open('user','r+',encoding='utf-8') as f1:
48                 for line in f1:
49                     ls=line.strip().split(',')
50                     if ls[0] == name:
51                         print("您輸入的賬戶已經被註冊,請重新輸入")
52                         break
53                 else:
54                     f1.write(name+',')
55                     f1.write(password)
56                     f1.write('\n')
57                     f1.flush()
58                     f1.close()
59                     print("註冊成功")
60                     break
61 
62     elif content == '購物':
63         if a == 1:
64             shopping()
65         else:
66             print("您必須先登陸才能購買")
67 
68     elif content == '退出':
69         break
70     else:
71         print("請正確輸入")

 




您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 面向對象: ...
  • C++知識庫總結(用來記錄日常接觸到的C++知識點),將會持續更新 ...
  • 1. 分析 構建詞雲需要具備: 原料即文章等內容 將內容進行分詞 將分詞後的內容利用構建詞雲的工具進行構建 保存成圖片 2. 需要的主要模塊 jieba 中文分詞 wordcloud 構建詞雲 3. 模塊原理 wordcloud的實現原理 文本預處理 詞頻統計 將高頻詞以圖片形式進行彩色渲染 jie ...
  • python2.7和python3.6中的tkinter是兩個包,不會自動升級,假如在fedora28做開發的話, 錯誤:用import Tkinter /import tkinter /import _tkinter 都會失敗, 網上的解決辦法: 1.yum install python-tk / ...
  • 程式和進程的區別 進程是動態的,程式是靜態的 進程是暫時的,程式是永久的, 進程是通過程式運行時得到的 程式是一個數據文件,進程是記憶體中動態的運行實體,用來存儲數據段,代碼段,指針等 程式和進程的關係 一個程式可能對應多個進程 一個進程可能包含多個程式,比如一個程式依賴多個其它動態庫時 進程和線程的 ...
  • 在java中,Object類是所有類的超類,所有的類都繼承Object類中的方法。 Object類中有12個成員方法,並沒有顯示聲明任何構造方法,而是存在著預設的無參的構造函數。 Object類源代碼分析: 通過Object類源碼可以看到一些方法用native修飾,使用native修飾符修飾的方法需 ...
  • 羅馬數字包含以下七種字元:I, V, X, L,C,D 和 M。 字元 數值 I 1 V 5 X 10 L 50 C 100 D 500 M 1000 例如, 羅馬數字 2 寫做 II ,即為兩個併列的 1。12 寫做 XII ,即為 X + II 。 27 寫做 XXVII, 即為 XX + V  ...
  • 一、hashcode是什麼 要理解hashcode首先要理解hash表這個概念 1. 哈希表 hash表也稱散列表(Hash table),是根據關鍵碼值(Key value)而直接進行訪問的數據結構。也就是說,它通過把關鍵碼值映射到表中一個位置來訪問記錄,以加快查找的速度。這個映射函數叫做散列函數 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...