python學習筆記一之,python入門筆記

本文目錄一覽:

python自學筆記13:元組和字典的操作

定義元組(tuple):

t1=(1,2,3,4)#多個數據元組

t2=(1,)#如果元組內只有一個數據,也需要手逗號隔開,否則這個數據將是他本身的類型。

元組的操作:

元組類型數據不支持修改,可查找

查找:

按下標查找:

print(t1[1])

函數查找:

print(t1.index(1))返回對應下標,如果數據不存在,程序將報錯

print(t1.count(1))統計數據在元組當中出現的次數

print(len(t1))統計元組當中的數據個數

注意:當元組內嵌套列表數據,可以通過下標的方法對列表數據進行修改如:

t3=(1,2,[“a”,”b”])

t3[2][0]=c #t3的值將變為(1,2,[“c”,”b”])

——————————————————

——————————————————

定義字典(dict)

字典的特點

1:符號為{}

2:數據為鍵(key)值(value)對形式,每個鍵值對之間用逗號隔開如:

dict1={“name”:”小明”,”age”:18,”gender:男”}

字典的操作:

dict1[“name”]=”小紅”

dict1[“id”]=3

如果key存在,將修改其所對應的值。如果不存在,將在字典最後添加該鍵值對

2.刪除數據

del():刪除字典或刪除字典內的鍵值對

del dict1[“name”] 刪除字典內的鍵值對,如果刪除的key不存在,程序將會報錯

del(del)刪除字典

clear(dict1) 清空字典

3.查找數據

一.按照key進行查找,最後返回相對應的值

二.按函數進行查找:

(1) get(key,默認值):

如果查找的key不存在則返回所寫的默認值,如果不寫默認值則返回None

dict1={“name”:”小明”,”age”:18,”gender:男”}

print(dict1.get(“name”)) #小明

print(dict1.get(“id”,110)) # 110

——————————————————

(2) keys():返回字典內的所有key 可用for遍歷

print(dict1.keys())

返回 [“name”,”age”,”gender”]

for key in dict1.keys():

..print(key)

逐行輸出name age gender

——————————————————

(3) values(): 返回字典內的值 可用for遍歷

print(dict1.values())

返回[“小明”,18,”男”]

for value dict1.values():

..print(value)

逐行輸出小明 18 男

——————————————————

(4) items():將字典內的數據以元組的形式返回

print(dict1.items()) 可用for遍歷

返回[(“name”,”小明”),(“age”,18),(“gender”,”男”)]

for item in dict1.items():

..print(item)

逐行輸出 (“name”,”小明”) (“age”,18)(“gender”,”男”)

——————————————————

遍歷字典鍵值對(拆包) 可在for內使用兩個臨時變數

dict1={“name”:”小明”,”age”:18,”gender:男”}

for key,value in dict1.items():

..print(f”{key}=value”)

逐行輸出:

name=小明 age=18 gender=男

Python數據分析筆記#7.3.1 字元串對象方法

「目錄」

數據清洗和準備

Data Cleaning and Prepration

——– 字元串對象方法

字元串對象方法

Python能夠成為流行的數據處理語言的部分原因是其易於處理字元串和文本。大部分文本運算都直接做成了字元串對象的內置方法。

split方法可以 通過指定分隔符對字元串進行切片 。

例如,以逗號分割的字元串可以用split拆分成數段:

strip可以 去除字元串頭尾指定的字元 ,默認是空白符或換行符。

strip常常與split一起使用:

利用 加法可以將字元串連接起來 :

但這種方式並不實用,畢竟字元串多了就很麻煩。一種更快 更符合Python風格的方式是是使用join方法 ,我們向join方法中傳入一個列表或元組:

檢測子串的最佳方法是利用Python的in關鍵字,還可以使用index和find。

index和find會 查找指定值的首次出現的位置 。

find和index的區別是:若找不到字元串,index將會引發一個 異常 ,find則會返回 -1 :

count可以 返回指定字串的出現次數

replace用於將 指定模式替換為另一個模式 (replace will substitute occurrences of one pattern for another)

再記錄幾個Python內置的字元串方法吧。

startswith和endswith: 若字元串以某個前綴(後綴)開頭,則返回True :

lower和uppe: 分別將字母字元轉換為小寫或大寫 。

ljust和rjust: 用空格(或其他字元)填充字元串的空白側以返回符合最低寬度的字元串 。

這章終於還剩兩節就結束了。

-END-

學Python編程要做筆記嗎

因為python 學習時一些知識點不可能都能記得住,還有會同時看多本書。做筆記便於今後複習、查詢、消化吸收。

Python學習筆記:如何將字典快速插入資料庫

在我們工作中,手頭不一定都有VISIO等資料庫設計軟體,往往是我們直接在SQL企業管理器中直接設計資料庫,再添加資料庫字典,以方便以後的工作及管理。有時我很苦惱,因為我們不得不打兩次相現的數據欄位的說明,麻煩。不過,也不盡然,不久前我發現了一個更好的方法:(以我建一個表為例) 1、打開企業管理器。 2、在關係中「右擊」,「新建關係」,在讓你選擇表時選擇取消。 3、在關係在,「右鍵」,選「新建表」,輸入我們想要的名字。(方法是不是和傳統不一樣了) 4、在我們剛新建的表上「右擊」,然後「表視圖」,「修改自定義」。 5、在彈出的對話框中選擇我們想要的列。 6、確定就OK了。 7、當然是輸入我們腦子裡的數據表結構及說明,當我們要生成這個數據表的字典的時候,就選中這些列,CTRL+C,然後到Excel在CTRL+V,如果想到導出WORD中,再在Excel中選中想要的單元格,CTRL+C 到WORD中CTRL+V 8、當然是OK了!看一下我們的成果吧!

python解決csv文件用excel打開亂碼問題

【問題】

python輸出的csv文件用excel打開,裡面的中文會變成亂碼,但用window下的記事本或mac下的numbers打開就正常顯示。

原因是python輸出的文件是utf-8編碼寫入的,excel默認以gbk方式讀取,導致亂碼發生。

【解決方法1】文件產出時encoding設置為utf-8-sig    

用excel打開csv時,excel會先檢查文件的第一個字元,來了解這個文件是什麼編碼方式,如果這個字元是BOM,excel就知道用utf-8的方式打開這個文件。python自帶了處理BOM的編碼方式uft-8-sig,因此只需要在文件產出時將encoding設置為utf-8-sig。

如果文件不是由python產出的,只需要以utf-8方式讀入再以utf-8-sig方式存儲即可

【解決方法2】懶人法,適用只含簡體中文的文件

用記事本打開,點擊另存為,右下角編碼方式選擇「ANSI」,這個過程是把這個文件改成gbk編碼格式,excel就是默認用gbk方式打開的。

參考: Python寫的csv文件,如何讓 Excel 雙擊打開不亂碼? – 雲+社區 – 騰訊雲

對編碼格式一竅不通的可以閱讀以下網頁

python筆記——二進位和文件編碼_砍柴姑娘Jourosy的博客-CSDN博客

編碼方式之ASCII、ANSI、Unicode概述 – 藍海人 – 博客園

【簡單總結】:

1. 首先需要了解 字符集 和 字元編碼 兩個概念,字符集定義了字元和二進位的一一對應關係,字元編碼規定了如何將字元的編號存儲到計算機中。

2. Unicode是字符集,包含了全球文字的唯一編碼,utf-8是編碼方式,將unicode以某種方式存儲到計算機中。

3. 有些字符集和編碼是結合在一起的,稱作字符集還是編碼都無所謂,比如ASCII,GBK

4. ANSI是各個國家地區不同擴展編碼方式的總稱,互不兼容(可以看出來通用性沒有utf好)

5. 不同編碼方式在轉換時,通常需要以unicode作為中間編碼,即先將其他編碼的字元串解碼(decode)成unicode,再從unicode編碼(encode)成另一種編碼。

python3.4學習筆記 3.x和2.x的區別,持續更新

python3.4學習筆記(四) 3.x和2.x的區別

在2.x中:print html,3.x中必須改成:print(html)

import urllib2

ImportError: No module named ‘urllib2’

在python3.x裡面,用urllib.request代替urllib2

import thread

ImportError: No module named ‘thread’

在python3.x裡面,用_thread(在前面加一個下劃線)代替thread

在2.x中except Exception,e : 3.x中改為except (Exception):

=================================

print函數

雖然print語法是Python 3中一個很小的改動,且應該已經廣為人知,但依然值得提一下:Python 2中的print語句被Python 3中的print()函數取代,這意味著在Python 3中必須用括弧將需要輸出的對象括起來。

在Python 2中使用額外的括弧也是可以的。但反過來在Python 3中想以Python2的形式不帶括弧調用print函數時,會觸發SyntaxError。

Python 2.7.6

print ‘Python’, python_version()

print ‘Hello, World!’

print(‘Hello, World!’)

print “text”, ; print ‘print more text on the same line’

輸出:

Hello, World!

Hello, World!

text print more text on the same line

—————————

Python 3.4.1

print(‘Python’, python_version())

print(‘Hello, World!’)

print(“some text,”, end=””)

print(‘ print more text on the same line’)

輸出:

Hello, World!

some text, print more text on the same line

print ‘Hello, World!’

File “ipython-input-3-139a7c5835bd”, line 1

print ‘Hello, World!’

^

SyntaxError: invalid syntax

注意:在Python中,帶不帶括弧輸出」Hello World」都很正常。

但如果在圓括弧中同時輸出多個對象時,就會創建一個元組,這是因為在Python 2中,print是一個語句,而不是函數調用。

print ‘Python’, python_version()

print(‘a’, ‘b’)

print ‘a’, ‘b’

Python 2.7.7

(‘a’, ‘b’)

a b

———————————

整數除法

由於人們常常會忽視Python 3在整數除法上的改動(寫錯了也不會觸發Syntax Error),所以在移植代碼或在Python 2中執行Python 3的代碼時,需要特別注意這個改動。

所以,我還是會在Python 3的腳本中嘗試用float(3)/2或 3/2.0代替3/2,以此來避免代碼在Python

2環境下可能導致的錯誤(或與之相反,在Python 2腳本中用from __future__ import division來使用Python

3的除法)。

Python 2.7.6

3 / 2 = 1

3 // 2 = 1

3 / 2.0 = 1.5

3 // 2.0 = 1.0

Python 3.4.1

3 / 2 = 1.5

3 // 2 = 1

3 / 2.0 = 1.5

3 // 2.0 = 1.0

———————————

Unicode

Python 2有基於ASCII的str()類型,其可通過單獨的unicode()函數轉成unicode類型,但沒有byte類型。

而在Python 3中,終於有了Unicode(utf-8)字元串,以及兩個位元組類:bytes和bytearrays。

Python 2.7.6

print type(unicode(‘this is like a python3 str type’))

type ‘unicode’

print type(b’byte type does not exist’)

type ‘str’

print ‘they are really’ + b’ the same’

they are really the same

print type(bytearray(b’bytearray oddly does exist though’))

type ‘bytearray’

Python 3.4.1 has class ‘bytes’

print(‘and Python’, python_version(), end=””)

print(‘ also has’, type(bytearray(b’bytearrays’)))

and Python 3.4.1 also has class ‘bytearray’

1

‘note that we cannot add a string’ + b’bytes for data’

—————————————————————————

TypeError Traceback (most recent call last)

ipython-input-13-d3e8942ccf81 in module()

—- 1 ‘note that we cannot add a string’ + b’bytes for data’

TypeError: Can’t convert ‘bytes’ object to str implicitly

=================================

python 2.4 與 python 3.0 的比較

一、 print 從語句變為函數

原: print 1,2+3

改為: print ( 1,2+3 )

二、range 與 xrange

原 : range( 0, 4 ) 結果 是 列表 [0,1,2,3 ]

改為:list( range(0,4) )

原 : xrange( 0, 4 ) 適用於 for 循環的變數控制

改為:range(0,4)

三、字元串

原: 字元串以 8-bit 字元串存儲

改為: 字元串以 16-bit Unicode 字元串存儲

四、try except 語句的變化

在2.x中except Exception,e : 3.x中改為except (Exception):

五、打開文件

原: file( ….. )

或 open(…..)

改為:

只能用 open(…..)

六、從鍵盤錄入一個字元串

原: raw_input( “提示信息” )

改為: input( “提示信息” )

七、bytes 數據類型

A bytes object is an immutable array. The items are 8-bit bytes, represented by integers in the range 0 = x 256.

bytes 可以看成是「位元組數組」對象,每個元素是 8-bit 的位元組,取值範圍 0~255。

由於在 python 3.0中字元串以 unicode 編碼存儲,當寫入二進位文件時,字元串無法直接寫入(或讀取),必須以某種方式的編碼為位元組序列後,方可寫入。

(一)字元串編碼(encode) 為 bytes

例: s = “張三abc12”

b = s.encode( 編碼方式)

# b 就是 bytes 類型的數據

# 常用的編碼方式為 : “uft-16” , “utf-8”, “gbk”, “gb2312”, “ascii” , “latin1” 等

# 注 : 當字元串不能編碼為指定的「編碼方式」時,會引發異常

(二) bytes 解碼(decode)為字元串

s = “張三abc12”

b = s.encode( “gbk”) # 字元串 s 編碼為 gbk 格式的位元組序列

s1 = b.decode(“gbk”) # 將位元組序列 b以gbk格式 解碼為字元串

# 說明,當位元組序列不能以指定的編碼格式解碼時會引發異常

(三)使用方法舉例

#coding=gbk

f = open(“c:\\1234.txt”, “wb”)

s = “張三李四abcd1234”

# ——————————-

# 在 python2.4 中我們可以這樣寫:

# f.write( s )

# 但在 python 3.0中會引發異常

# ——————————-

b = s.encode(“gbk”)

f.write( b )

f.close()

input(“?”)

讀取該文件的例子:

#coding=gbk

f = open(“c:\\1234.txt”, “rb”)

f.seek(0,2) #定位至文件尾

n = f.tell() #讀取文件的位元組數

f.seek(0,0) #重新定位至文件開始處

b = f.read( n )

# ——————————

# 在 python 2.4 中 b 是字元串類型

# 要 python 3.0 中 b 是 bytes 類型

# 因此需要按指定的編碼方式確碼

# ——————————

s = b.decode(“gbk”)

print ( s )

# ——————————

# 在 python 2.4 中 可以寫作 print s 或 print ( s )

# 要 python 3.0 中 必須寫作 print ( s )

# ——————————

f.close()

input(“?”)

運行後應顯示:

張三李四abcd1234

(四) bytes序列,一但形成,其內容是不可變的,例:

s=”ABCD”

b=s.encode(“gbk”)

print b[0] # 顯示 65

b[0] = 66

# 執行該句,出現異常: ‘bytes’ object does not support item assignment

八、 chr( K ) 與 ord( c )

python 2.4.2以前

chr( K ) 將編碼K 轉為字元,K的範圍是 0 ~ 255

ord( c ) 取單個字元的編碼, 返回值的範圍: 0 ~ 255

python 3.0

chr( K ) 將編碼K 轉為字元,K的範圍是 0 ~ 65535

ord( c ) 取單個字元的編碼, 返回值的範圍: 0 ~ 65535

九、 除法運算符

python 2.4.2以前

10/3 結果為 3

python 3.0

10 / 3 結果為 3.3333333333333335

10 // 3 結果為 3

十、位元組數組對象 — 新增

(一) 初始化

a = bytearray( 10 )

# a 是一個由十個位元組組成的數組,其每個元素是一個位元組,類型借用 int

# 此時,每個元素初始值為 0

(二) 位元組數組 是可變的

a = bytearray( 10 )

a[0] = 25

# 可以用賦值語句更改其元素,但所賦的值必須在 0 ~ 255 之間

(三) 位元組數組的切片仍是位元組數組

(四) 字元串轉化為位元組數組

#coding=gbk

s =”你好”

b = s.encode( “gbk”) # 先將字元串按某種「GBK」編碼方式轉化為 bytes

c = bytearray( b ) #再將 bytes 轉化為 位元組數組

也可以寫作

c = bytearray( “你好”, “gbk”)

(五) 位元組數組轉化為字元串

c = bytearray( 4 )

c[0] = 65 ; c[1]=66; c[2]= 67; c[3]= 68

s = c.decode( “gbk” )

print ( s )

# 應顯示: ABCD

(六) 位元組數組可用於寫入文本文件

#coding=gbk

f = open(“c:\\1234.txt”, “wb”)

s = “張三李四abcd1234”

# ——————————-

# 在 python2.4 中我們可以這樣寫:

# f.write( s )

# 但在 python 3.0中會引發異常

# ——————————-

b = s.encode(“gbk”)

f.write( b )

c=bytearray( “王五”,”gbk”)

f.write( c )

f.close()

input(“?”)

原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/251002.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2024-12-13 13:31
下一篇 2024-12-13 13:31

相關推薦

  • Python列表中負數的個數

    Python列表是一個有序的集合,可以存儲多個不同類型的元素。而負數是指小於0的整數。在Python列表中,我們想要找到負數的個數,可以通過以下幾個方面進行實現。 一、使用循環遍歷…

    編程 2025-04-29
  • Python周杰倫代碼用法介紹

    本文將從多個方面對Python周杰倫代碼進行詳細的闡述。 一、代碼介紹 from urllib.request import urlopen from bs4 import Bea…

    編程 2025-04-29
  • Python計算陽曆日期對應周幾

    本文介紹如何通過Python計算任意陽曆日期對應周幾。 一、獲取日期 獲取日期可以通過Python內置的模塊datetime實現,示例代碼如下: from datetime imp…

    編程 2025-04-29
  • 如何查看Anaconda中Python路徑

    對Anaconda中Python路徑即conda環境的查看進行詳細的闡述。 一、使用命令行查看 1、在Windows系統中,可以使用命令提示符(cmd)或者Anaconda Pro…

    編程 2025-04-29
  • Python中引入上一級目錄中函數

    Python中經常需要調用其他文件夾中的模塊或函數,其中一個常見的操作是引入上一級目錄中的函數。在此,我們將從多個角度詳細解釋如何在Python中引入上一級目錄的函數。 一、加入環…

    編程 2025-04-29
  • Python字典去重複工具

    使用Python語言編寫字典去重複工具,可幫助用戶快速去重複。 一、字典去重複工具的需求 在使用Python編寫程序時,我們經常需要處理數據文件,其中包含了大量的重複數據。為了方便…

    編程 2025-04-29
  • 蝴蝶優化演算法Python版

    蝴蝶優化演算法是一種基於仿生學的優化演算法,模仿自然界中的蝴蝶進行搜索。它可以應用於多個領域的優化問題,包括數學優化、工程問題、機器學習等。本文將從多個方面對蝴蝶優化演算法Python版…

    編程 2025-04-29
  • Python程序需要編譯才能執行

    Python 被廣泛應用於數據分析、人工智慧、科學計算等領域,它的靈活性和簡單易學的性質使得越來越多的人喜歡使用 Python 進行編程。然而,在 Python 中程序執行的方式不…

    編程 2025-04-29
  • Python清華鏡像下載

    Python清華鏡像是一個高質量的Python開發資源鏡像站,提供了Python及其相關的開發工具、框架和文檔的下載服務。本文將從以下幾個方面對Python清華鏡像下載進行詳細的闡…

    編程 2025-04-29
  • python強行終止程序快捷鍵

    本文將從多個方面對python強行終止程序快捷鍵進行詳細闡述,並提供相應代碼示例。 一、Ctrl+C快捷鍵 Ctrl+C快捷鍵是在終端中經常用來強行終止運行的程序。當你在終端中運行…

    編程 2025-04-29

發表回復

登錄後才能評論