w2_自學python_模塊_列表_元組_字典_文件

来源:https://www.cnblogs.com/rootid/archive/2018/07/18/9333001.html
-Advertisement-
Play Games

w2 16、第二周-第02章節-Python3.5-模塊初識 sys模塊 sys.path sys.argv os模塊 os.system os.popen os.mkdir 17、第二周-第03章節-Python3.5-模塊初識2 18、第二周-第04章節-Python3.5-pyc是什麼 19、 ...


w2_sys_os_list_tuple_dict

16、第二周-第02章節-Python3.5-模塊初識

sys模塊

import sys

sys.path

print(sys.path)
列印環境變數

sys.argv

print(sys.argv)
返回列表:腳本相對路徑,[以及傳入參數]
print(sys.argv[1]) 表示列印傳入的第一個參數值,依次類推

os模塊

import os

os.system

result = os.system("ls")
print(result)
result可能的值為0或1,代表執行成功與否,不保存命令執行返回數據

os.popen

cmd_res = os.popen("dir").read()
cmd_res可以讀取到命令執行的返回數據

os.mkdir

os.mkdir("new_dir")
創建一個目錄

17、第二周-第03章節-Python3.5-模塊初識2

18、第二周-第04章節-Python3.5-pyc是什麼

檢查源文件與pyc的時間,如果源文件更新,則預編譯一次再執行

19、第二周-第05章節-Python3.5-python數據類型

int float complex(複數)
bool

20、第二周-第06章節-Python3.5-bytes數據類型

數據運算(略)

三元運算:

result = 值1 if 條件 else 值2
if 條件為真,則為值1
if 條件為假,則為值2
a,b,c = 1,3,5
d = a if a>b else c
print(d)

str與bytes

encode_decode

21、第二周-第07章節-Python3.5-列表的使用

列表與元組

列表

list_A = []
list_A.append("string")
list_A.insert(0,"string_A")
list_A[1] = "stringC"
list_A.remove("stringc")
del list_A[1]
list_A.pop()
list_A.pop(index)
list_A.clear() #清空列表
list_A.reverse() #順序反轉
list_A.sort() #排序
註:排序規則按accssic碼規則排列

元組

元組可以看作是只讀的列表。
只有count,index屬性

練習:購物車程式

程式:購物車程式
需求:
1.啟動程式後,讓用戶輸入工資,然後列印商品列表
2.允許用戶根據商品編號購買商品
3.用戶選擇商品後,檢測餘額是否夠,夠就直接扣款,不夠就提醒
4.可隨時退出,退出時,列印已購買商品和餘額

#!/usr/bin/env python
#-*-coding:utf-8-*-
#Author:wu.

products = ['手機','電腦','滑鼠','微波爐']
price = [1000,3000,50,300]
shop_cart = []
total = []
find_minimum_price = price.copy()
find_minimum_price.sort()
while True:
    #提示用戶輸入帳戶中存入的錢的數額
    temp_input = input("please input your balance:")
    #判斷是否輸入的為數字,若是數字,則進入選購流程
    if temp_input.isdigit():
        balance= int(temp_input)
        print("your balance :",balance)
        break
    #如果不為數學,則提示用戶輸入數字,返回輸入框
    else:
        print("Please input digit numbers!")
        continue


while True:
    #展示商品序號,商品名稱,商品價格
    for index in range(len(products)):
        product_info  = '''
        {index}.{product} {price}    
        '''.format(index=index+1,product=products[index],price=price[index])
        print(product_info)
    #用戶輸入菜單選項
    user_input = input("please input product number or press q to quit:").strip()
    #如果用戶輸入的選項為字母q,則列印用戶選購的商品列表,及所選商品總金額,然後退出
    if user_input == "q":
        print(shop_cart)
        print(total)
        print("選擇商品的總額為:",sum(total))
        break
    #如果用戶輸入的選項不是q,則判斷是否輸入的是數字
    elif user_input.isdigit():
        user_input = int(user_input)
        #判斷用戶輸入的數字是否是菜單中的選項
        if user_input in range(1,len(products)+1,1):
             #判斷用戶的帳戶是否大於等於用戶所選購的商品價格,是就將商品放入購物車
            if balance >= price[user_input-1]:
                shop_cart.append(products[user_input - 1])
                total.append(price[user_input-1])
                print(shop_cart)
                print(total)
                balance = balance - price[user_input - 1]
                print("your balance:" ,balance)
                #判斷用戶的帳戶餘額是否小於商品中價格最少的數額,如果小於則退出程式
                if balance < find_minimum_price[0]:
                    print("you are broken!")
                    break
            #如果用戶選購商品的價格大於用戶帳戶,則列印用戶沒有足哆的錢,返回選購菜單
            else:
                print("you don't have enough money!")
                continue
        else:
            print("Please make sure input right number!")
    else:
        print("Invalid input,please check!")

參考alex blog:http://www.cnblogs.com/alex3714/articles/5717620.html

22、第二周-第08章節-Python3.5-列表的使用2

list_A.extend(list_B) #將list_B的元素擴展到list_A

嘗試:列表的深copy,淺copy的區別

import copy
list_B = copy.deepcopy(list_A)

list_copy
列表按步長取元素
print(list_A[0: -1:2]) #按步長為2,從0個元素取值到最後一個
print(list_A[::2]) #其中0和-1可以省略不寫,與上一種等價

23、第二周-第09章節-Python3.5-元組與購物車程式練習

24、第二周-第10章節-Python3.5-購物車程式練習實例

25、第二周-第11章節-Python3.5-字元串常用操作

字元串操作

strings = 'string'
strings = 'Alex li'
strings.capitalize()
print(strings.count("l"))
strings.encode()
print(strings.endswith(' li'))

strings = 'Alex \ li'
print(strings.expandtabs(tabsize=100))
strings.format()
strings = 'Alex name li'
print(strings[strings.find("name"):9])
print(strings[-1])
!# strings.format_map()
strings.isdigit()
print(strings.index('le'))
strings.isalnum() #包含所有的英文字元和阿拉伯數字
strings.isalpha() #包含純英文字元
strings.isdecimal() #16進位
strings.isidentifier() #是否合格的變數名
strings.islower()
strings.isupper()
strings.isnumeric()
strings.isprintable()
strings.isspace()
strings.istitle()
strings = "+"
list_s = ["a","b","c"]
print(strings.join(list_s))
print(strings.ljust(50,"*"))
!# strings.rjust()
strings = 'AAbbCC1ccbb'
print(strings.lower())
strings.upper()
strings.lstrip()

p = str.maketrans('abcdefg','1234567')
print("abcggg".translate(p))
en_string = "abcggg".translate(p)
d = str.maketrans('1234567','abcdefg')
print(en_string.translate(d))

print(strings.replace('bb','ZZ',1))

35:54

字典操作

集合的操作

文件操作


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

-Advertisement-
Play Games
更多相關文章
  • Description Mato同學最近正在研究一種矩陣,這種矩陣有n行n列第i行第j列的數為gcd(i,j)。 例如n=5時,矩陣如下: 1 1 1 1 1 1 2 1 2 1 1 1 3 1 1 1 2 1 4 1 1 1 1 1 5 Mato想知道這個矩陣的行列式的值,你能求出來嗎? Mato ...
  • 上次知識回顧:https://www.cnblogs.com/dotnetcrazy/p/9278573.html 代碼褲子:https://github.com/lotapp/BaseCode 線上編程:https://mybinder.org/v2/gh/lotapp/BaseCode/mast ...
  • 引言 上一篇文章聊到了Java記憶體模型,在其中我們說JMM是建立在happens before(先行發生)原則之上的。 為什麼這麼說呢?因為在Java程式的執行過程中,編譯器和處理器對我們所寫的代碼進行了一系列的優化來提高程式的執行效率。這其中就包括對指令的“重排序”。 重排序導致了我們代碼並不會按 ...
  • goroutine只是由官方實現的超級"線程池"而已,每個實例4 5kb的棧記憶體占用和用於實現機制而大幅減少的創建和銷毀開銷。 併發不是並行(多CPU): 併發主要由切換時間片來實現"同時"運行,並行則是直接利用多核實現多線程的運行,但Go可以設置使用核數,以發揮多核電腦的能力。 通過go關鍵字實 ...
  • MIPS架構下的MCU,指令集包含R-Type、I-Type、J-Type三種,在數電課程設計時為了給MCU編寫指令集,需要將彙編語言轉化成機器代碼,這裡分享一下自己寫的Matlab 的 GUI。 主函數 C2M 函數rig_f 用來尋找名稱對應的寄存器地址 函數rig_n 用來將5位十進位數轉換成 ...
  • 原創 The Suspects Time Limit: 1000MS Memory Limit: 20000K Total Submissions: 48698 Accepted: 23286 Description Severe acute respiratory syndrome (SARS), ...
  • 1. 學習計劃 第二天:商品列表功能實現 1、服務中間件dubbo 2、工程改造為基於soa架構 3、商品列表查詢功能實現。 2. 將工程改造為SOA架構 2.1. 分析 由於宜立方商城是基於soa的架構,表現層和服務層是不同的工程。所以要實現商品列表查詢需要兩個系統之間進行通信。 如何實現遠程通信 ...
  • provider pom 連接註冊器register需要applicationContext需要web.xml載入配置文件監聽器 註冊 介面 實現類 註意這個@Service是dubbo的Service 右擊maven項目run as選maven build.. 輸入tomcat7:run 啟動這個 ...
一周排行
    -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.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...