week3_自學python_set_file

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

[TOC]#30、第三周-第02章節-Python3.5-上節內容回顧1.列表,元組操作2.字元串操作3.字典操作#31、第三周-第03章節-Python3.5-集合及其運算##集合運算list_1 = [1,2,3,2]print("list_1:",list_1)set_1 = set(list ...


[TOC]
#30、第三周-第02章節-Python3.5-上節內容回顧
1.列表,元組操作
2.字元串操作
3.字典操作
#31、第三周-第03章節-Python3.5-集合及其運算
##集合運算
list_1 = [1,2,3,2]
print("list_1:",list_1)
set_1 = set(list_1)
print("set_1:",set_1)
set_2 = {2,3,4}
print("set_2",set_2)

\#交集
print("交集:",set_1.intersection(set_2))
print(set_1 & set_2)

\#並集
print("並集:",set_1.union(set_2))
print(set_1 | set_2)

\#差集
print("差集",set_1.difference(set_2)) #從set_1中去掉set_2中也有的元素
print(set_1 - set_2)

\#子集
print("子集",set_1.issubset(set_2))
set_3 = {2,3}
print("set_3:",set_3)
print("子集",set_3.issubset(set_2))

\#父集
print("父集",set_1.issuperset(set_3))

\#對稱差集:把兩個集合中重覆的元素去掉後合併的新集合
print("對稱差集",set_1.symmetric_difference(set_2))
print(set_1 ^ set_2)

\#判斷是否無交集,無有交集返回true,有則返回false
print(set_1.isdisjoint(set_2))

##集合操作
\#增加
set_1.add("") #增加一個元素
set_1.update(['','1','1']) #增加多個元素
print(set_1)

\#刪一項
set_1.remove("1")
print(set_1)

\#set_1.pop() #隨機刪除一個元素,並把刪除的字元返回

\#set_1.discard("1") #刪除指定元素,如果元素不存在,就什麼也不做
\#如果不指定元素,則刪除所有的set_1的元素

\#判斷x是否是a的成員(適用於字典,列表,集合,字元串)
\# x in a
strings = "my name is"
if "name" in strings:
print("name in strings")
\#x not in a

#32、第三周-第04章節-Python3.5-文件讀與寫詳解1

##只讀模式,只寫模式(創建文件),追加模式
f = open("file_test.txt",'w',encoding="utf-8") #文件句柄

f.write("I love python!\n")
f.write("I love python3!\n")
f.close()
f = open("file_test.txt",'r',encoding="utf-8") #文件句柄
date = f.read()
print(date)
f.close()

f = open("file_test.txt",'a',encoding="utf-8") #文件句柄
f.write("I love python4!\n")
f.write("I love python5!\n")
f.close()

#33、第三周-第05章節-Python3.5-文件讀與寫詳解2
##讀取文件每行

小文件:可以將文件整個讀取到記憶體中
```
f = open("file_test.txt",'r',encoding="utf-8")
\# print(f.readlines().strip())
\# print(f.readline().strip())
for line in f.readlines():
print(line.strip())
f.close()
```
大文件:
```
f = open("file_test.txt",'r',encoding="utf-8")
count = 0
for line in f:
if count == 2:
print("---我是分割線---")
count += 1
continue

print(line.strip())
count += 1
f.close()
```
#34、第三周-第06章節-Python3.5-文件讀與寫詳解3

f.fileno() #文件在記憶體中的編號
f.flush() #將記憶體中緩存的未真正寫入文件的數據強制立即寫入文件
f.readable()
f.seekable()
f.writable()
f.seek()
f.tell() #告知句柄指針指向文件的位置

```28:11
```
f = open("file_test.txt",'r+',encoding="utf-8") #讀寫
\#f = open("file_test.txt",'w+',encoding="utf-8") #寫讀,先創建一個文件,再寫入
\#f = open("file_test.txt",'a+',encoding="utf-8") #追加讀寫
\#f = open("file_test.txt",'wb',encoding="utf-8") #二進位編碼處理

#36、第三周-第08章節-Python3.5-文件修改詳解

```
f = open("file_test.txt","r",encoding="utf-8")
f_new = open("file_new_test.txt","w",encoding="utf-8")
for line in f:
if "I love python3" in line:
line = line.replace("I love python3","------alex是分割線---------")
f_new.write(line)
f.close()
f_new.close()

```
#37、第三周-第09章節-Python3.5-字元編碼轉換詳解1
為了避免文件打開後,忘記關閉,可以使用with open() as f:
代替以前的open()賦值給f
example:
```
with open("file_test.txt","r",encoding="utf-8") as f, \
open("file_new_test.txt","w",encoding="utf-8") as f_new:
for line in f:
if "I love python3" in line:
line = line.replace("I love python3","------alex是分割線---------")
f_new.write(line)

```
規範:python建議每行不超過80個字元,如果超過,可使用‘\’來連接

##編碼
![decode_encode](assets/markdown-img-paste-20180725234507594.png)
##列印預設編碼
import sys
print(sys.getdefaultencoding())

#38、第三周-第10章節-Python3.5-字元編碼轉換詳解2
python3中預設以byte存儲
```
#!/usr/bin/env python
#-*-coding:gbk -*-
#author: Mr.Wu
import sys
s = '你好'
print(s.encode("gbk"))
print(s.encode("utf-8"))
print(sys.getdefaultencoding())
print(s.encode("utf-8").decode("utf-8").encode("gbk").decode("gbk"))
```
#39、第三周-第11章節-Python3.5-函數與函數式編程1
#40、第三周-第12章節-Python3.5-函數與函數式編程2
```
import time

def logger():
time_format = '%Y-%m-%d %X'
current_time = time.strftime(time_format)
print(current_time)
```
#41、第三周-第13章節-Python3.5-函數式編程之參數詳解1
##關於return
當返回值的個數為0,則返回None
當返回值的個數為1,則返回object
當返回值的個數為>1,則返回tuple類型,tuple中元素為返回的各個值
##形參和實參
##標準調用和關鍵字調用
```
def test(x,y,z):
print(x)
print(y)
print(z)

test(1,2,3) #標準調用,形式參數的位置必須一一對應
test(y=4,z=5,x=6) #關鍵字調用,形式參數位置無需固定
test(4,z=5,y=6)
特別註意:同時使用位置調用與關鍵字調用,關鍵字參數不能寫在位置參數之前
```
#42、第三周-第14章節-Python3.5-函數式編程之參數詳解2
##函數預設參數
```
def test(x,y=1):
print(x)
print(y)

test(1)
test(1,2)
```
##參數列表
接受位置參數調用,不能接受關鍵字參數調用
```
def test(*args):
print(args)
test(1,2,3)
test({'a':1})
#####
#組合應用
def test(x,*args):
print(x)
print(args)
test(1,2,3)
test({'a':1})
```
##關於**kwargs參數
把關鍵字參數轉為字典的形貌傳入,只能接受關鍵字參數調用
```
def test(**kwargs):
print(kwargs)
test(name='alex',age=100,job='IT')
```
#43、第三周-第15章節-Python3.5-局部變數與全局變數作用域1


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

-Advertisement-
Play Games
更多相關文章
  • guava是google的一個開源java框架,其github地址是 https://github.com/google/guava。guava工程包含了若幹被Google的 Java項目廣泛依賴的核心庫,例如:集合 [collections] 、緩存 [caching] 、原生類型支持 [prim ...
  • 電商支付架構設計交易核心支付編排------------------------------------------------------------------今天先到這兒,希望對您技術領導力, 企業管理,系統架構設計與評估,團隊管理, 項目管理, 產品管理,團隊建設 有參考作用 , 您可能感興... ...
  • 介紹單例模式之前我們先來介紹下什麼是設計模式,所謂設計模式簡單來說就是根據開發者先輩們的經驗而總結出的解決問題的方式,可以說是前人經驗和心血的體現。 有了設計模式之後,我們可以少走很多彎路,利用設計模式來輕鬆解決對應的問題。 話不多說,今天先來介紹最容易入門和掌握的設計模式——單例模式 單例模式:我 ...
  • 在學完volatile和CAS之後,近幾天在擼AbstractQueuedSynchronizer(AQS)的源代碼,很多併發工具都是基於AQS來實現的,這也是併發專家Doug Lea的初衷,通過寫一個這樣的基礎工具來提高j.u.c的靈活性。具體可以看這篇論文的一段原文,我摘錄一下: As is w ...
  • Django模板系統 官方文檔:https://docs.djangoproject.com/en/1.11/ref/templates/builtins/#std:templatetag-for 常用語法 只需要記兩種特殊符號: {{ }}和 {% %} 變數相關的用{{}},邏輯相關的用{%%} ...
  • 主要內容: 1.JVM中分為哪幾個區 2.每個區用來存放什麼,每個分區的作用 3.什麼時候創建的 4.是線程私有的還是多個線程共用的 ...
  • 題目描述 給定一個由 nnn 行數字組成的數字梯形如下圖所示。 梯形的第一行有 mmm 個數字。從梯形的頂部的 mmm 個數字開始,在每個數字處可以沿左下或右下方向移動,形成一條從梯形的頂至底的路徑。 分別遵守以下規則: 從梯形的頂至底的 mmm 條路徑互不相交; 從梯形的頂至底的 mmm 條路徑僅 ...
  • 本文內容: 文件操作 文件過濾器 首發日期:2018-07-23 文件操作: Java中對文件和目錄的操作,通常通過File類來操作。 File類有幾個構造函數,常用的是下麵三個: File(String pathname):根據路徑名創建一個對象 File(String parent, Strin ...
一周排行
    -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.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...