樹莓派知識(shí)隨筆

GPIO


1眶蕉、串口連接

這種方式在我樹莓派的第一篇博客有講,這里我簡(jiǎn)單介紹唧躲。

連接樹莓派造挽,樹莓派GPIO串口的GND,txd弄痹,rxd分別與轉(zhuǎn)接口的GND饭入,rxd,txd相連肛真,用的什么轉(zhuǎn)接模塊我不管谐丢,反正最后得變成一個(gè)USB的接口接在電腦上,并在電腦設(shè)備管理器上的端口選項(xiàng)可以發(fā)現(xiàn)它蚓让,用Serial登錄乾忱。

串口登錄沒有多色高亮,所以用wifi登錄历极,配置文件路徑在路徑為/etc/wpa_supplicant/wpa_supplicant.conf窄瘟。


可以用PUTTY登錄,我用的是新版的secureCRT趟卸。

串口線有4根蹄葱,黑色表示gnd。紅色vcc锄列,另外的綠色和白色表示rxd和txd(順序未知)新蟆。根據(jù)測(cè)試表明為rxd接到板子上的txd.另個(gè)綠色一則相反為txd.使用Serial登錄。選擇對(duì)應(yīng)的COMx,選擇波特率為115200右蕊。

系統(tǒng)默認(rèn)的用戶名為pi琼稻,密碼為raspberry

Serial登錄之后配置ssh。這里我事先配置過了饶囚,查看ip的命令為ifconfig.得到共享熱點(diǎn)為樹莓派分配的ip為192.168.43.67帕翻。。使用putty第一次ssh登錄樹莓派萝风,電腦會(huì)彈窗警告嘀掸。點(diǎn)擊是即可。

使用nano編輯器對(duì)配置文件修改规惰。


啟用或者禁用使用SSH遠(yuǎn)程終端登錄你的樹莓派睬塌。

SSH允許你在另外一臺(tái)計(jì)算機(jī)上使用命令行終端遠(yuǎn)程登錄你的樹莓派。禁用將會(huì)導(dǎo)致SSH服務(wù)不會(huì)在開機(jī)的時(shí)候啟動(dòng)以釋放程序的資源。注意SSH默認(rèn)是啟用的揩晴。如果你的樹莓派直接連接到公共網(wǎng)絡(luò)勋陪,你應(yīng)該禁用SSH,除非你確認(rèn)已經(jīng)為樹莓派上每一個(gè)用戶設(shè)置了密碼硫兰。

/boot放置Linux內(nèi)核以及其他用來啟動(dòng)樹莓派的軟件包

/bin放置與Raspbian有關(guān)(包括運(yùn)行圖形界面所需的)的二進(jìn)制可執(zhí)行文件

/dev這是虛擬文件夾之一诅愚,用來訪問所有連接設(shè)備,包括存儲(chǔ)卡

/etc系統(tǒng)管理和配置文件

/homeLinux上的我的文檔劫映,包含用戶名命名的文件夾

/lib各種應(yīng)用需要的代碼庫

/lost+found一般情況下是空的违孝,當(dāng)系統(tǒng)非法關(guān)機(jī)后,這里就存放了一些文件

/media放置可移動(dòng)存儲(chǔ)驅(qū)動(dòng)器泳赋,比如USB和CD

/mnt用來手動(dòng)掛在外部硬件驅(qū)動(dòng)器或存儲(chǔ)設(shè)備

/opt可選軟件文件夾雌桑,非系統(tǒng)部分的軟件將會(huì)放置在這里

/proc另一個(gè)虛擬文件夾,包含運(yùn)行進(jìn)程(或程序)的信息

/selinux由美國國家安全局開發(fā)的安全工具祖今,用于增強(qiáng)Linux安全性

/sbin放置超級(jí)用戶使用的系統(tǒng)管理命令

/sys放置操作系統(tǒng)文件

/tmp放置臨時(shí)文件

/usr放置用戶使用的程序

/var虛擬文件筹燕,用于程序保存數(shù)據(jù)

***********************************

使用cd /boot實(shí)現(xiàn)文件路徑跳轉(zhuǎn)。在使用ls列出改路徑下的文件夾和文件衅鹿。用綠色的著色表示文件撒踪,藍(lán)色的著色表示文件夾。

cd overlays,直接跳轉(zhuǎn)到該文件夾下大渤。cd /表示跳轉(zhuǎn)到根目錄下制妄。

跳到自己的 home 目錄 :

cd ~

在根目錄下用ls列出所有文件和文件夾。

bin dev home ?lost+found mnt proc run srv tmp varcd ?boot ect lib media opt root sbin sys usr

cd ..表示向高層回跳一級(jí)泵三。

在根目錄下使用

cd /home 之后使用cd pi得到的結(jié)果和cd ~的結(jié)果是完全相同的耕捞。

******************************

Linux cd命令用于切換當(dāng)前工作目錄至 dirName(目錄參數(shù))。

其中 dirName 表示法可為絕對(duì)路徑或相對(duì)路徑烫幕。若目錄名稱省略俺抽,則變換至使用者的 home 目錄 (也就是剛 login 時(shí)所在的目錄)。

另外较曼,"~" 也表示為 home 目錄 的意思磷斧,"." 則是表示目前所在的目錄,".." 則表示目前目錄位置的上一層目錄捷犹。

Linux ls命令用于顯示指定工作目錄下之內(nèi)容(列出目前工作目錄所含之文件及子目錄)弛饭。

ls -R列出文件夾下的路徑及文件。

語法

**********************

Linux mkdir命令用于建立名稱為 dirName 之子目錄萍歉。

mkdir sangshu,在pi下面建立一個(gè)sangshu的文件夾侣颂。該命令用于創(chuàng)建文件夾目錄。

使用nano編輯器枪孩,nano anbao.txt,輸入內(nèi)容退出保存憔晒,提示保存藻肄,按y.再回車確定即可。(原先沒有文件將創(chuàng)建輸入的文件名的文件)

將工作目錄下拒担,名為 AAA 的子目錄刪除 :

rmdir AAA嘹屯;;澎蛛;rmdir shu.vim(這是一個(gè)文件夾目錄);;不能刪除文件抚垄,只能是文件夾目錄蜕窿。

rm可以用來刪除文件谋逻。rm anbao.txty;;;;

使用who命令查看誰登陸過該系統(tǒng)。

***************************************************

find home返回所有home的子路徑文件桐经。這樣只能查詢下一級(jí)的文件毁兆。下下級(jí)將不能查找到。

Linux find命令用來在指定目錄下查找文件阴挣。任何位于參數(shù)之前的字符串都將被視為欲查找的目錄名气堕。如果使用該命令時(shí),不設(shè)置任何參數(shù)畔咧,則find命令將在當(dāng)前目錄下查找子目錄與文件茎芭。并且將查找到的子目錄和文件全部進(jìn)行顯示。

find . -name "*.c"返回當(dāng)前目錄下的.c文件誓沸。find . .-name "*.c"上一級(jí)路徑下的.c文件梅桩。

路徑為/etc/wpa_supplicant/wpa_supplicant.conf

直接使用nano不被允許打開,使用sudo nano wpa_supplicant.conf即可拜隧。

修改密碼之后如果使用ssh登陸仍然不會(huì)斷開宿百,使用wifi重啟命令將會(huì)使其斷開。

在配置文件路徑下使用重啟wifi命令失敗洪添,sudo service network restart垦页。。干奢。

在pi路徑和根目錄下仍然失敗痊焊。那就使用sudo reboot吧

進(jìn)入python之后使用quit()即可退出python重新進(jìn)入home界面。

輸入python2和python3進(jìn)入各自程序忿峻。

******************************************************

sudo vi wpa_supplicant.conf進(jìn)入vi命令模式之后

打開vim使用命令為vi宋光。。使用冒號(hào):加關(guān)鍵字寫入vi命令模式炭菌。

:w //保存文件

:q //退出編輯器罪佳,如果文件已修改請(qǐng)使用下面的命令

:q! ?//退出編輯器,且不保存

:wq ?//退出編輯器黑低,且保存文件

vi有3個(gè)模式:插入模式赘艳、命令模式酌毡、低行模式。

*****************************

a????? //在當(dāng)前光標(biāo)位置的右邊添加文本

i?????? //在當(dāng)前光標(biāo)位置的左邊添加文本

A???? //在當(dāng)前行的末尾位置添加文本

I????? //在當(dāng)前行的開始處添加文本(非空字符的行首)

O???? //在當(dāng)前行的上面新建一行

o???? //在當(dāng)前行的下面新建一行

R??? //替換(覆蓋)當(dāng)前光標(biāo)位置及后面的若干文本

J??? //合并光標(biāo)所在行及下一行為一行(依然在命令模式)

這幾個(gè)鍵將改變命令模式為插入模式蕾管。esc將是插入模式退為命令模式枷踏,再使用:u

撤銷一步。


插入文本或行(vi命令模式下使用掰曾,執(zhí)行下面命令后將進(jìn)入插入模式旭蠕,按ESC鍵可退出插入模式)

命令模式下的上下左右鍵才有意義。插入模式下沒有方向鍵無意義旷坦。

dd????? //刪除當(dāng)前行

***************************

NAS(Network Attached Storage:網(wǎng)絡(luò)附屬存儲(chǔ))按字面簡(jiǎn)單說就是連接在網(wǎng)絡(luò)上掏熬,具備資料存儲(chǔ)功能的裝置通贞,因此也稱為"網(wǎng)絡(luò)存儲(chǔ)器"荔泳。它是一種專用數(shù)據(jù)存儲(chǔ)服務(wù)器奸柬。

直接在根目錄下用mkdir share無法成功续搀,用sudo mkdir share才行旭斥。如果目錄已經(jīng)存在的話將無法再創(chuàng)建一個(gè)同名字的目錄研底。報(bào)錯(cuò)files exist

***********************************

Linux/Unix 的文件調(diào)用權(quán)限分為三級(jí) : 文件擁有者焕数、群組驴党、其他辆它。利用 chmod 可以藉以控制文件如何被他人所調(diào)用誊薄。

使用權(quán)限?: 所有使用者

此外chmod也可以用數(shù)字來表示權(quán)限如 :

chmod 777 file

語法為:

chmod abc file

其中a,b,c各為一個(gè)數(shù)字,分別表示User锰茉、Group呢蔫、及Other的權(quán)限。

r=4洞辣,w=2咐刨,x=1

若要rwx屬性則4+2+1=7;

若要rw-屬性則4+2=6扬霜;

若要r-x屬性則4+1=5定鸟。

********************************

設(shè)置一個(gè)公共目錄

cd /;sudo mkdir share;sudo chmod 777 share

sudo vim /etc/samba/smb.conf

在最后添加:

[share]

comment = pi share

path = /share

browseable = yes

read only = no

writable = yes

public = yes

6.重啟samba服務(wù)使之生效

sudo service smbd restart,重啟失敗。這命令不能實(shí)現(xiàn)著瓶。

sudo shutdown 關(guān)機(jī)联予,sudo shutdown -c關(guān)機(jī)取消。材原。沸久。

****************************************

whereis python查詢命令的方式。

Ctrl+D, ?或?Quit[]退出wolfram的文本界面余蟹,https://reference.wolfram.com/language/tutorial/UsingATextBasedInterface.html卷胯,文本界面的使用命令。

***********************************************

環(huán)境變量威酒,用分號(hào)隔開窑睁。最后一位沒有分號(hào)挺峡,如需添加新的環(huán)境變量,繼續(xù)加上分號(hào)和路徑担钮。橱赠。

D:\Python\Python36-32\Scripts\;

D:\Python\Python36-32\;

%SystemRoot%\system32;

%SystemRoot%;

%SystemRoot%\System32\Wbem;

%SYSTEMROOT%\System32\WindowsPowerShell\v1.0\;

C:\Program Files (x86)\Wolfram Research\WolframScript\;

D:\MATLAB\R2018a\runtime\win64;

D:\MATLAB\R2018a\bin

在dos下的快捷啟動(dòng),python箫津,MATLAB狭姨,wolframscript

**************************************************

添加多個(gè)wifi連接,/etc/wpa_supplicant/wpa_supplicant.conf修改再下面添加一個(gè)新的苏遥。

sudo poweroff關(guān)機(jī)

sudo reboot重啟

sudo raspi-config配置界面饼拍。

whoami輸出用戶,cd,cat,mkdir,ls,pwd..

calendar返回歷史事件暖眼。惕耕。

cd和cd ~的作用相同纺裁。诫肠。

pi賬戶必須用sudo才能執(zhí)行某些命令。欺缘。獲取root賬戶即可栋豫。。

BAD PASSWORD: it is based on a dictionary word”這是因?yàn)槌霈F(xiàn)了字典里的字符串谚殊。

如果你采用英文與數(shù)字組合使用丧鸯,且長(zhǎng)度在6位以上,就不會(huì)報(bào)錯(cuò)嫩絮。

sudo apt-get dist-upgrade更新軟件丛肢。。

sudo apt-get install ****

E:unable to fetch some aechives 可能是網(wǎng)絡(luò)原因剿干。蜂怎。

python -V默認(rèn)python2

Python 2.7.13

pi@raspberrypi:~ $ python3 -V大寫。置尔。

Python 3.5.3

$ nano -V版本返回

sudo apt-get install python nano軟件之間用空格隔開杠步。。

python是解釋型而不是編譯型語言榜轿。幽歼。

ctrl+d或quit()或者exit()退出python3,,help()進(jìn)入help>int,退出函數(shù)查詢按q,退出help谬盐,甸私。ctrl+d或者quit()。

$ cat py3prog/sample.py

print("here is the line dog.")

pi@raspberrypi:~ $ python3 py3prog/sample.py

here is the line dog.

g,x,o,nano編輯器幫助飞傀,退出皇型,寫入泣刹。

\u03c0是pi..unicode

*****************************************

import keyword關(guān)鍵字打出來。犀被。

>>> print("keyword.kwlist")

keyword.kwlist

>>> print(keyword.kwlist)

['False', 'None', 'True', 'and', 'as', 'assert', 'break', 'class', 'continue', 'def', 'del', 'elif', 'else', 'except', 'finally', 'for', 'from', 'global', 'if', 'import', 'in', 'is', 'lambda', 'nonlocal', 'not', 'or', 'pass', 'raise', 'return', 'try', 'while', 'with', 'yield']

print("12","56","89",sep='*')這種用法椅您。。print("1256","89",end='!\n')寡键,掀泳,sep和end的用法。西轩。

type("456")返回?cái)?shù)據(jù)類型员舵。。

a=input("請(qǐng)輸入:")

請(qǐng)輸入:56

>>> type(a)

<class 'str'>類型str..

b=int(a)

>>> type(a)

<class 'str'>

>>> type(b)

<class 'int'>

*****************

0b01001110二進(jìn)制表示藕畔。马僻。

c=a&b

>>> bin(c)

'0b1000101'

>>> oct(c)

'0o105'

>>> hex(c)

'0x45'

chmod +x script0401.py之后變?yōu)榫G色。注服。修改權(quán)限

chmod u+x script0401.py

**************************************

腳本語言的第一行韭邓,目的就是指出,你想要你的這個(gè)文件中的代碼用什么可執(zhí)行程序去運(yùn)行它

#!/usr/bin/python是告訴操作系統(tǒng)執(zhí)行這個(gè)腳本的時(shí)候溶弟,調(diào)用/usr/bin下的python解釋器女淑。

#!/usr/bin/env python這種用法是為了防止操作系統(tǒng)用戶沒有將python裝在默認(rèn)的/usr/bin路徑里。當(dāng)系統(tǒng)看到這一行的時(shí)候辜御,首先會(huì)到env設(shè)置里查找python的安裝路徑鸭你,再調(diào)用對(duì)應(yīng)路徑下的解釋器程序完成操作。這種寫法會(huì)去環(huán)境設(shè)置尋找python目錄

print("12233{}".format(12))

1223312

>>> print("12233{}".format("56"))擒权,袱巨,format的用法。碳抄。

1223356

a=5.2*9;

>>> print("fggg{}".format(a))

fggg46.800000000000004

>>> print("fggg{0:.2f}".format(a))

fggg46.80

分?jǐn)?shù)對(duì)象愉老,,from fractions in Fraction

b=Fraction(1,5)

>>> b

Fraction(1, 5)

>>> print(b)

1/5

*************************

b=Fraction(5.5)

>>> print(b)

11/2

print(complex(1,2))

(1+2j)

math.factorial(5)階乘俺夕。。

ceil,copysign,,fabs,factorial,floor,fmod,frexp,fsum,isfinite,isinf,isnan,ldexp,modf,trunc

from math import *,星號(hào)必須加上贱鄙。劝贸。或者import math 使用math.ceil()

math+點(diǎn)+函數(shù)這種逗宁。映九。

math.fsum([1,2,3])

> x=-2

>>> y=6

z=math.copysign(y,x)

>>> z

-6.0

*********************************

math.fmod(5,3)

2.0

**************************

第一種,瞎颗,pip3 install numpy

第二種采用源碼安裝:步驟如下:

1.下載源碼包:

wget http://jaist.dl.sourceforge.net/project/numpy/NumPy/1.9.0/numpy-1.9.0.zip

2.解壓

unzip numpy-1.9.0.zip

3.進(jìn)入解壓目錄

cd numpy-1.9.0

4.運(yùn)行解壓目錄里的setup.py 文件(root環(huán)境下)

python setup.py install

用nano編寫python程序時(shí)注意if(x>0):空出4個(gè)空格件甥。捌议。tab鍵不對(duì)。引有。

x="35"判斷能否轉(zhuǎn)換為數(shù)字瓣颅。。

>>> x.isdigit()

x="jk"

>>> x.isdigit()

False

for letter in 'Python':print(letter)

for letter in [1,2,3,6,8]:注意格式譬正。宫补。

...? ? print(letter)

**********************

for i in range(1,5):

...? ? print(i)--0***4

for i in range(5):

...? ? print(i)--1***4

******************

for i in range(1,5,2):2為步長(zhǎng)。曾我。

...? ? print(i)

在idle中粉怕,用死循環(huán),while True:print(1),一直刷屏抒巢,怎么退出贫贝,ctrl+c,退出循環(huán)或者ctrl+z蛉谜,直接退出python idle稚晚。。

tuplel=()

>>> print(tuplel)

()悦陋,蜈彼,筑辨,俺驶, type(tuplel)

<class 'tuple'>

tuple([*,*,*,*])元組是不可改變的。棍辕。不能添加和刪除值暮现。〕眩可以訪問栖袋,

tuole6=(1,2,3,4)

>>> print(tuole6[2])

print(tuole6[1:3])

(2, 3)一側(cè)省略表示剩下全部,抚太,print(tuole6[1:])

> print(tuole6[1::2])加上步長(zhǎng)塘幅。。

(2, 4)

*************************************

len(tuole6)獲取元組的長(zhǎng)度尿贫,电媳,if 3 in tuole6:判斷值是否在元組中,庆亡,

4

min,max

(1,2,2)+(5,8,9)元組加法匾乓。。

(1, 2, 2, 5, 8, 9)

**********************

列表是可變的又谋,拼缝,

list1=[],,

tuple11=1,2,3,4,5

list(tuple11)或者tuple(tuple11)創(chuàng)建列表和元組娱局。。

元組和列表都可以使用負(fù)數(shù)作為索引咧七。衰齐。[*:*:*]切片來提取子列表

list1[1]=10,修改列表第二項(xiàng)的值。继阻。

list1[1:3]=1,6

opl=4,0,2,type(opl),tuple類型娇斩。。用元組修改列表穴翩,犬第,

del list1[1]

>>> list1

[1, 0, 9],芒帕,歉嗓,,del list1[1:3]

list6.pop(5),彈出列表值背蟆,原列表該值刪掉鉴分。

list6.pop()默認(rèn)最后一個(gè)數(shù)。带膀。

list1.append(5)

>>> list1

[1, 5]

list1.insert(0,"a")

>>> list1

['a', 1, 5]

append和pop堆棧操作志珍,先入后出,list1=[10,20,30],list1.pop(),list1.pop(),list1.pop(),彈3次分別出來30,20,10

[1,2,3]+[4,5,6]

list5.append([5,6])

>>> list5

[1, 2, 3, [5, 6]]

list5.extend([7,0]),合并列表格式垛叨,去掉嵌套列表伦糯。。

>>> list5

[1, 2, 3, [5, 6], 7, 0]

*******************

list5=[1,2,3,4,1,2,3,5]

>>> list5.count(1)

list5.sort()嗽元,敛纲,,剂癌,sort()和sorted的用法淤翔,list5.sort(),,,sorted(list5),reversed(list5)

>>> list5

[1, 1, 2, 2, 3, 3, 4, 5],佩谷,旁壮,, list5.index(5)

7谐檀,抡谐,,給出索引號(hào)碼稚补。童叠。

list13=[[1,2,3],[4,5,6],[7,8,9]]

reversed(list5)

<list_reverseiterator object at 0xb6a0e710>

>>> sorted(list5)

[1, 1, 2, 2, 3, 3, 4, 5],,,,注意reversed的返回值不是列表。。用遍歷訪問或者換為list5.reverse()

print(reversed(list5))

<list_reverseiterator object at 0xb6a0e770>

[1, 1, 2, 2, 3, 3, 4, 5]

>>> list5.reverse()

>>> list5

[5, 4, 3, 3, 2, 2, 1, 1]厦坛,五垮,,list5.reverse()可以直接返回倒序列表杜秸。放仗。

******************************

創(chuàng)建列表,列表解析法撬碟。诞挨。

list6=[x*2 for x in list5]

>>> list6

[10, 8, 6, 6, 4, 4, 2, 2]

*********************

> list5=["a","g","i","l"]

>>> list6=[x.upper() for x in list5]

>>> list6

['A', 'G', 'I', 'L']

*********************

list7=[x.lower() for x in list6]

>>> list7

['a', 'g', 'i', 'l']

************

range5=range(5)

>>> print(range5)

range(0, 5),呢蛤,range像列表一樣是一種類型惶傻。。只能單個(gè)引用或遍歷顯示其障。银室。

python2中range()屬于list,python3成為一種新的類型励翼。蜈敢。

student={}

>>> type(student)

<class 'dict'>

定義字典是無序排列的。汽抚。

student["8"]=56

>>> student

{'h': '8', 1: 2, 'l': 7, '8': 56}抓狭。。造烁。

student[1]

2

>>> student["8"]

56

>>> student["h"]值通過鍵得獲取否过。。字典是不能使用例如index()這樣的函數(shù)膨蛮,因?yàn)槲恢迷谧值渲胁⒉恢匾啤!jP(guān)聯(lián)才是重要的敞葛。。

student.get("k","not found")与涡。字典get函數(shù)的可選參數(shù)惹谐。。

'not found'

>>> student.get("k")

****************************

lik9=student.keys()

>>> lik9

dict_keys(['h', 1, 'l', '8'])

>>> type(lik9)

<class 'dict_keys'>也不是列表驼卖。氨肌。

for i in lik9:

...? ? print(i,end=" ")

...? ? student[i]

*******************

ron={"1":5,"8":9,"5":"k"}

>>> op0=ron.keys()

>>> sorted(op0)

['1', '5', '8']鍵值必須是同一種數(shù)據(jù)類型,才能用sorted()排序酌畜。怎囚。用op0.sort()是錯(cuò)誤的。。因?yàn)殒I值列表類型不同于列表的新類型恳守。考婴。使用sorted(鍵列表)就成為了真正的列表。催烘。

type(op0);l9=sorted(op0)

<class 'dict_keys'>

>>> l9

['1', '5', '8']沥阱,,

字典的鍵不能更改伊群,值可以考杉,

student

{'h': 'p', 1: 'p', 'l': 'p', '8': 'p'}

>>> student["0"]="p"

>>> student

{'h': 'p', 1: 'p', 'l': 'p', '0': 'p', '8': 'p'},舰始,不存在的鍵崇棠,自動(dòng)添加進(jìn)去。丸卷。


del student["0"]

>>> student

{'h': 'p', 1: 'p', 'l': 'p', '8': 'p'}易茬,刪掉一組關(guān)聯(lián)。及老。

字典組建過程中可能碰巧產(chǎn)生排序抽莱。字典不強(qiáng)調(diào)位置。如果需要按序號(hào)打印骄恶,注意使用sorted()對(duì)鍵表(新的類型)排序產(chǎn)生由鍵值組成的新真正列表食铐。

for i in range(5):

...? ? print(i,end=" ")

...? ? type(i)

...

0 <class 'int'>

1 <class 'int'>

2 <class 'int'>

3 <class 'int'>

4 <class 'int'>

用str(i)強(qiáng)制轉(zhuǎn)換數(shù)據(jù)為字符串類型。

dict3={4:9}

>>> dict2.update(dict3)

>>> dict2

{1: 5, 4: 9, 5: 6}僧鲁,虐呻,注意字典update()的用法,寞秃,

temp_list=may_high_temp.values()斟叼,values()是值。

temp_list

dict_values([1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31])

>>> max_temp=max(temp_list)

5.3 Counter.most_common(n)

使用most_common(n)返回一個(gè)list, list中包含Counter對(duì)象中出現(xiàn)最多前n個(gè)元素春寿。

Counter(temp_list)

Counter({1: 1, 2: 1, 3: 1, 4: 1, 5: 1, 6: 1, 7: 1, 8: 1, 9: 1, 10: 1, 11: 1, 12: 1, 13: 1, 14: 1, 15: 1, 16: 1, 17: 1, 18: 1, 19: 1, 20: 1, 21: 1, 22: 1, 23: 1, 24: 1, 25: 1, 26: 1, 27: 1, 28: 1, 29: 1, 30: 1, 31: 1})轉(zhuǎn)換為counter類


使用most_common(n)返回一個(gè)list, list中包含Counter對(duì)象中出現(xiàn)最多前n個(gè)元素朗涩。

>>> c = Counter('abracadabra')>>> c

Counter({'a': 5,'b': 2,'r': 2,'d': 1,'c': 1})>>> c.most_common(3)

[('a', 5), ('b', 2), ('r', 2)]

mode_list

[(8, 8)]

>>> Counter(temp_list)

Counter({8: 8, 9: 5, 2: 4, 6: 3, 4: 3, 5: 3, 7: 2, 3: 2, 1: 1})

>>> mode_list[0]

(8, 8)

>>> mode_list[0][1]

8

>>> mode_list[0][0]

8

**********************************

c = Counter('abracadabra')

>>> c

Counter({'a': 5, 'b': 2, 'r': 2, 'c': 1, 'd': 1})

c.most_common(1)

[('a', 5)]從中拿出來數(shù)據(jù)

b=c.most_common(1)

>>> b[0]

('a', 5)

>>> b[0][1]

5

>>> b[0][0]

'a'

>>>

集合,绑改,> jihe1=set()

>>> type(jihe1)

<class 'set'>

jihe1.add("4")

******************

jihe2=set([1,5,6,8])

>>> jihe2

{8, 1, 5, 6}

type({1,2,6})

<class 'set'>

*****************************

{1,2,3}.union({8,9,6})

{1, 2, 3, 6, 8, 9}

{1,2,3,2}.union({1,8,6})

{1, 2, 3, 6, 8}谢床,,厘线,并集自動(dòng)將相同變量置為一個(gè)识腿。。

{1,2,3,2}.intersection({1,8,6})交集

{1}

{1,2,3,2}.difference({1,8,6})差集

{2, 3}

******************************

{1,2,3,2}.symmetric_difference({1,8,6})對(duì)稱差集

{8, 2, 3, 6}

sorted會(huì)將集合變?yōu)榱斜碓熳常暗淖值滏I列表中變?yōu)檎嬲斜矶伤稀!?/p>

sorted({1,2,3,6})

[1, 2, 3, 6]。成箫。展箱。

****************************

a={1,2,3,4}

>>> a.update([1,5,6,9])

>>> a

{1, 2, 3, 4, 5, 6, 9}

>>> a.remove(9)

>>> a

{1, 2, 3, 4, 5, 6}

a.discard(4)

>>> a

{1, 2, 3, 5, 6}

discard不拋出異常,而remove會(huì)拋出異常伟众。析藕。

update可以一次多個(gè)元素,update([1,2,3])而remove只能一個(gè)remove(1),,remove([1,2])是錯(cuò)誤的凳厢。账胧。

a={1:2,5:9}

>>> a.pop(1)。先紫。治泥。pop(鍵)關(guān)聯(lián)被刪掉。

2

>>> a

{5: 9}

****************************

{1,2}.issubset({1,2,6,4,8})

True

a={1:5,6:9}

a.clear()清空字典遮精。

a={1:9,8:10,7:6}

>>> a.items()返回鍵值對(duì)

dict_items([(8, 10), (1, 9), (7, 6)])

>>> sorted(a.items())

[(1, 9), (7, 6), (8, 10)]

b=sorted(a.items())

>>> b[0]

(1, 9)

unicode格式使用2個(gè)字節(jié)存儲(chǔ)字符居夹,比ascii格式容納更多的文本,可以支持多種不同的語言本冲。准脂。

binarys1=b'123456'

>>> print(binarys1)

b'123456'

>>> print(binarys1[0])

49

>>> print(binarys1[1])

50

print(chr(binarys1[1]))

2

**********************

print("\'")

'

************************

> a="this is a "

>>> a[3]

's'

>>> a[4]

' '

*******************

a[3]="d"是不能改變字符串的內(nèi)容的。檬洞。

print(a[3:6])

s i

a.replace("i","d")

'thds ds a '

> a.split()以空格分開狸膏。。

['this', 'is', 'a']

''.join(["1","2","3"])

'123'

>>> ' '.join(["1","2","3"])

'1 2 3'

'/'.join(["1","2","3"])添怔。湾戳。。'分割符號(hào)'join([列表])

'1/2/3'

************************************

a=12

>>> a.isdigit()報(bào)錯(cuò)

a="12"

>>> a.isdigit()正確isdigit()是不能直接使用的广料,砾脑,點(diǎn)+digit()才是對(duì)的。艾杏。用來判斷是否為數(shù)字字符串韧衣。

a="this is a girl"

>>> "i" in a

True

"is" in a

True

> a.find("th")

0

>>> a.find("h")

1

a.find("l")

13

>>> a.find("p")沒有改字符的話返回-1

-1

> a.find("i")

2


>>> a.find("i",3,)多處位置存在"i",因?yàn)樗环祷氐谝淮纬霈F(xiàn)的索引。糜颠。

5

a.find("i",6,)

11

a.rfind("i")從右往左查詢"i"..

11

a.index("i")

2

>>> a.index("i",6)

11

a.count("i")

3

"1 2 {}".format(10)

'1 2 10'

"1 2 {} {}".format(10,"j")

'1 2 10 j'

"1 2 3 {dd}".format(dd=89)

'1 2 3 89'

>>> "1 2 3 {dd}".format(78)報(bào)錯(cuò)

"1 2 3 {0}".format(78)正確汹族。。

'1 2 3 78'

"this is pi {}".format(3.1419926)

'this is pi 3.1419926'

"this is pi {0:.2f}".format(3.1419926)

'this is pi 3.14'

"{0:x}".format(56)

'38'

************************************

"{0:b}".format(56)

'111000'

"{0:+}".format(85)負(fù)號(hào)是不行的其兴。。

'+85'

"{0:.2f}".format(12.365)

'12.37'

"{0:+.2f}".format(12.365)

'+12.37'

>>> "{0:.2f}".format(12.364)

'12.36'

*******************************

"this{0:>10d}".format(12)空出10個(gè)空格夸政。元旬。

'this? ? ? ? 12'

"\u0020"為Unicode的Unicode轉(zhuǎn)義編碼。。為空格的編碼匀归。坑资。

' '

> "A".casefold()

'a'

>>> "是".casefold()特殊字符也是可以的,大寫轉(zhuǎn)小寫穆端。袱贮。

'是'

caplitalize,, 'this'.capitalize()

'This'

*******************************

"vd".isalnum()

True

>>> "vd1".isalnum()

True

>>> "vd1*".isalnum()

False?

*******************************************

os函數(shù)允許你使用各種操作系統(tǒng)的功能,如創(chuàng)建目錄体啰,os并不是python的內(nèi)建函數(shù)攒巍,使用需要import os

import os

>>> os.getcwd()

'/home/pi'

os.mkdir('MyNewDir')

>>> os.chdir('MyNewDir')更改為當(dāng)前工作目錄

>>> os.getcwd()提供當(dāng)前目錄的絕對(duì)目錄引用。荒勇。

'/home/pi/MyNewDir'

> os.mkdir('/home/pi/data')創(chuàng)建data文件目錄柒莉,,

os.getcwd()

'/home/pi/data'

temp_file=open('2015.txt','w'),,w打開文件寫入沽翔,不存在就創(chuàng)建兢孝。。

a,r,w,,open的三個(gè)可選參數(shù)仅偎。跨蟹。r+,rb+,wb,,橘沥,窗轩,+號(hào)和文件指針有關(guān)。威恼。?

temp_file=open('2015.txt','w')這里沒有使用絕對(duì)路徑品姓。。

>>>

KeyboardInterrupt

>>> temp_file.closed

False

temp_file.mode

'w'

temp_file.name不會(huì)返回絕對(duì)路徑箫措。腹备。

'2015.txt'

os.getcwd()

'/home/pi/data'

os.getcwd()

'/home/pi'

file2=open("/home/pi/data/2015.txt",'r')這里使用了絕對(duì)路徑

>>> file2.mode

'r'

file2.name

'/home/pi/data/2015.txt'返回完整路徑

********************************

file2=open("2015.txt","r")

>>> file2.name

'2015.txt'

>>> file2.read()

'this is a girl.\nGit is a control system.\n'

*********************

file3=file2.read()

>>> type(file3)

<class 'str'>讀取返回為字符串類型。斤蔓。植酥。

> file3=file2.read(),弦牡,友驮,,file2.read()使用一次就會(huì)不起作用驾锰。卸留。。

>>> file3

'this is a girl.\nGit is a control system.\n'

>>> file3[0]

't'椭豫。耻瑟。旨指。。喳整。 file3[0:7]

'this is'

***********************************

file3=file2.readline()

>>> file3[0]

't'

>>> file3

'this is a girl.\n'

*******************************

file2.readline()

'Git is a control system.\n'

>>> file2.readline()

''

********************************

file2=open('2015.txt','r')

>>> for i in range(1,3):

...? ? kk=file2.readline()

...? ? print(kk,end='')

...

this is a girl.

Git is a control system.

*************************************

kk=file2.readline()

>>> kk

'this is a girl.\n'

>>> kk1=file2.readline()

>>> kk1

'Git is a control system.\n'

read()讀取太慢谆构,一次接收所有字符,readline()逐行讀取框都。搬素。

這里的換行符被end=''干擾就可以避免產(chǎn)生雙倍行距。魏保。熬尺。

rstrip

***********************

for i in range(1,3):

...? ? kk=file2.readline()

...? ? kk=kk.rstrip('\n')是刪除掉換行符與上面end=''抑制是不同的。囱淋。

...? ? print(kk)

...

this is a girl.

Git is a control system.

*****************

for i in range(2):

...? ? print("122",end='')表示不換行

...? ? print("456")

...

122456

122456

*******************************

for i in range(2):

...? ? print("122")換行了

...? ? print("456")

...

122

456

122

456

***************************

"1223\n".rstrip('\n')

'1223'

.tell()表示當(dāng)前文件的指針位置猪杭。。每個(gè)指針表示要讀取的下一個(gè)字符妥衣。皂吮。

file2=open('2015.txt','r')

>>> file2.tell()

0

****************************************

file2.readline();file2.tell()

'this is a girl.\n'

16

最初的文件指針設(shè)置為0,即文件的開頭税手。蜂筹。

file2=open('2015.txt','r')

>>> file3=file2.read(2)

>>> file3

'th'

th'

>>>

KeyboardInterrupt

>>> file2.tell()

2

file2.read(2)

'is'

>>> file2.read(2)

' i'

file2.seek(0)

0

>>> file2.read(2)

'th'

read(文件指針)和seek(文件指針)可以指定不按順序讀取文件。芦倒。

touch 2016.txt艺挪。。兵扬。麻裳。創(chuàng)建一個(gè)空2016.txt文件。器钟。

pi@raspberrypi:~/data $ ls

2015.txt? 2016.txt

******************

echo "sss">>2016.txt直接寫入2016.txt,,單個(gè)>會(huì)刪掉原文本津坑,>>則會(huì)從上往下寫。傲霸。

os.listdir()

['2016.txt', '2015.txt']列出當(dāng)前工作目錄下的文件名疆瑰。

*******************************

file2=open('2015.txt','r')

>>> for i in file2:

...? ? print(i,end='')

...

this is a girl.

Git is a control system.什么read*()都不用,這種做法直接讀取昙啄。穆役。

****************************************************

os.getcwd()

'/home/pi'

>>> os.chdir('/home/pi/data')

>>> os.getcwd()

'/home/pi/data'

os.listdir()

['2016.txt', '2015.txt']

os.chdir('/home/pi/data')

>>> os.listdir()

['2016.txt', '2015.txt']

**********************************************************

文件打開在退出程序之前,一定要關(guān)閉梳凛。

file2=open('2015.txt','r')

>>> file2.closed

False

>>> file2.close()

>>> file2.closed

True

文件關(guān)閉可以使寫緩存寫入文本中耿币,不關(guān)閉直接打開另一個(gè)的文件的話,寫緩存的內(nèi)容就會(huì)丟失韧拒。掰读。秘狞。

file2=open('2014.txt','w')又寫入了一個(gè)2014.txt文件叭莫。蹈集。

>>> os.listdir()

['2016.txt', '2014.txt', '2015.txt']

如果原來存在2015.txt且有內(nèi)容,file2=open('2015.txt','w'),這將導(dǎo)致原文件內(nèi)容被清空雇初。拢肆。寫模式會(huì)移除內(nèi)容。靖诗。

lstrip()和rstrip()

open('2015.txt','a'),,模式a將文件指針指向文件末尾郭怪。。.write方法就會(huì)從文件末尾開始寫入數(shù)據(jù)刊橘。鄙才。文件不會(huì)丟失任何數(shù)據(jù)。促绵。

file2.seek(0),,,,,定位文本的指針。。

w+,,,,,,可讀可寫邓深,指針開頭粤攒,覆蓋原有內(nèi)容,a+可讀可寫尖坤,指針指向尾部稳懒,沒有文件的話會(huì)創(chuàng)建。慢味。

r+可讀可寫场梆,指針開頭,覆蓋原有內(nèi)容纯路,沒有文件的話或油,打開失敗。感昼。不會(huì)創(chuàng)建文件装哆。。定嗓。

.tell()會(huì)告訴文本指針的位置蜕琴。。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末宵溅,一起剝皮案震驚了整個(gè)濱河市凌简,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌恃逻,老刑警劉巖雏搂,帶你破解...
    沈念sama閱讀 218,858評(píng)論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件藕施,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡凸郑,警方通過查閱死者的電腦和手機(jī)裳食,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,372評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來芙沥,“玉大人诲祸,你說我怎么就攤上這事《颍” “怎么了救氯?”我有些...
    開封第一講書人閱讀 165,282評(píng)論 0 356
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)歌憨。 經(jīng)常有香客問我着憨,道長(zhǎng),這世上最難降的妖魔是什么务嫡? 我笑而不...
    開封第一講書人閱讀 58,842評(píng)論 1 295
  • 正文 為了忘掉前任甲抖,我火速辦了婚禮,結(jié)果婚禮上植袍,老公的妹妹穿的比我還像新娘惧眠。我一直安慰自己,他們只是感情好于个,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,857評(píng)論 6 392
  • 文/花漫 我一把揭開白布氛魁。 她就那樣靜靜地躺著,像睡著了一般厅篓。 火紅的嫁衣襯著肌膚如雪秀存。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,679評(píng)論 1 305
  • 那天羽氮,我揣著相機(jī)與錄音或链,去河邊找鬼。 笑死档押,一個(gè)胖子當(dāng)著我的面吹牛澳盐,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播令宿,決...
    沈念sama閱讀 40,406評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼叼耙,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來了粒没?” 一聲冷哼從身側(cè)響起筛婉,我...
    開封第一講書人閱讀 39,311評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎癞松,沒想到半個(gè)月后爽撒,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體入蛆,經(jīng)...
    沈念sama閱讀 45,767評(píng)論 1 315
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,945評(píng)論 3 336
  • 正文 我和宋清朗相戀三年硕勿,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了哨毁。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,090評(píng)論 1 350
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡首尼,死狀恐怖挑庶,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情软能,我是刑警寧澤,帶...
    沈念sama閱讀 35,785評(píng)論 5 346
  • 正文 年R本政府宣布举畸,位于F島的核電站查排,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏抄沮。R本人自食惡果不足惜跋核,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,420評(píng)論 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望叛买。 院中可真熱鬧砂代,春花似錦、人聲如沸率挣。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,988評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽椒功。三九已至捶箱,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間动漾,已是汗流浹背丁屎。 一陣腳步聲響...
    開封第一講書人閱讀 33,101評(píng)論 1 271
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留旱眯,地道東北人晨川。 一個(gè)月前我還...
    沈念sama閱讀 48,298評(píng)論 3 372
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像删豺,于是被迫代替她去往敵國和親共虑。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,033評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容