Python入門之樹莓派


Linux命令行$+命令

 

pwd顯示當前目錄

ls列表

cd改變當前目錄,/

sudo超級用戶輸入,特權來操作系統相關設置或刪除文件

sudo apt-get  install  安裝程序

sudo apt-get remove --auto-remove --purge packagename卸載程序

 

Python編程入門

IDLE開發環境

shell提供使用者使用界面的軟件,殼,接受用戶命令然后調用相應的應用程序,相當於cmd。

Python shell 里輸入字符,就會使用

>>>這個符號,結果會出現在下一行。

編寫的程序存放在文件里,IDLE編輯器。

程序應該保存到附件目錄下,新建Folder文件夾,保存hello.py到改文件夾。

Run菜單,Run Module,運行程序。

 

變量,以小寫且必須是字母開頭,使用下划線代替空格。

 

循環,以冒號結尾表示還有代碼要寫。

>>>for x in range(1,10)

print(x)

range這個命令是排除結尾的最后一個數字的。

for in命令,for后必須跟一個變量,in之后,python會計算出一整套循環。

>>>list(range(1,10))

 

>>>import random引入一個庫文件。

# 表示注釋

if命令后面必須直接跟隨一個條件,用冒號,表示接下來要執行的語句。

and表示與運算

or表示或運算

not true=false

elif=else if,變成三條邏輯線。

while true:用來進去循環,break用來跳出循環

 

字符串:

1.字符串可以通過=,賦值給變量。

字符串需要用單引號括起來然后賦值

2.len(變量名),求字符串的長度

3.用【數組】知道指定位置的字符

4.用【0:10】截取一部分字符串,第一個數字表示字符串開始的位置,第二個數字表示最后的一個字符串的位置順延一位。

6.可以用+,把字符串加起來。

 

列表:

1.列表可以讓變量包含一組數字和字符串,甚至包含一系列小的列表。

2. 例如,numbers=[....]

3.列表可以用+,組合起來。

4.列表可以用=,給表用元素賦新值。

5.numbers.sort(),表示排序

6.numbers.pop(移除哪個?),表示移除

7.numbers.insert(插入的位置,插入什么),在特定位置增加元素。

8.包含其他列表,[...[....]]。

9.樁函數stub,一些什么也不做的函數,只為實際函數占一個位置。

10.global定義全局變量。

 

函數:

1.關鍵詞def開頭,加函數名,加冒號

2.return 返回值

3.內置str函數轉化為字符串

4.內建函數input會把參數作為提示符,並輸出顯示,然后返回用戶輸入的值。

5.內建函數find用來檢測是否存在。

 

字典:

1.用字符串作為關鍵字,數作為數值。

2.關鍵字還是字符串,數值或元組。

3.但是數值可以是任何數據,甚至包括列表和另一個字典。

 

元組:

1.tuple=1,2,3。很像列表。但是不包括方括號。

2.元組是不可以改的。

 

多重賦值

 a,b,c=1,2,3

多重返回值

return(number[0],number[-1]),number[-1]返回的是最后一個數。

異常處理

函數:

1.數值函數

2.字符串函數

3.列表函數

4.字典函數

5.類型轉化

 

模塊:

模塊不僅可以在當前項中使用,也可以用在其他項目里。

1.import引入模塊

2.import.  random. as r

這樣就給模塊取了一個名字,r.randint就是調用模塊里面的一個函數。

3.from random import randint

導入任意函數而不用擔心名字錯誤。

4.from random import *

導入所有函數

5.Python庫中有許多模塊

string 字符串工具

datetime用來操作時間和日期

math數學函數

pickle用來存儲和恢復文件的數據結構

urllib.request用來讀取網頁

tkinter用來創建圖形用戶界面

 

6.安裝新模塊pygame

sudo apt-get install python-pygame

 

1.打開LXTerminal

2.cd訪問python目錄

3.tar -xzf 解壓文件

4.cd進去新建文件夾,執行install命令

5.用more INSTALL.txt看有沒有其他需要說明的

6.用sudo apt-get install  python3-dev安裝

7.sudo  python3 setup.py  install

 

面向對象:

1.'abc'.upper()告訴'abc'需要它大寫

'abc'是內建類str的實例

2.'abc'._class_  獲取一個對象的類型

 

定義類:

class 類名:

def定義函數

1.屬於類的函數叫做方法

2.self參數指的是對象本身。

3.類中的函數只有實例化后才能用。

4.一個類必須有初始化的函數,而且self必須作為改函數的第一個參數。

5.所有的類中封裝的方法,都必須有第一個self參數。

 

繼承:

1.繼承在類里的用法,就是給已經存在的類再創建一個版本。

2.class 子類(父類):  這種格式定義繼承關系

3.對於子類來說,初始化函數,首先要請求父類的初始化函數,之后才可以定義新變量。

4.方法可以實現覆蓋。

 

模塊:

把子類和父類放到同一個模塊。

后綴.py就可以

import  一個模塊。

 

文件和互聯網:

1.python程序運行結束后,變量里存儲的任何值都會丟失,而文件就是讓數據能夠永久的存在的一種方式。

2.讀取文件,f=open('文件路徑')

word=f.read().splitlines()   f.close() 

3.讀取文件的代碼需要加一個try命令,防止出錯。

4.文件名應該放在一個變量里。

5.讀取大文件,一次讀取太占用內存。所以可以每次只讀取文件中的一行,f=open(word_file) 

line=f.readline()

如果讀到兩行之間的空行,但那不是尾行,就返回尾行符\n。

6.f.read(20)  每次讀取20個字符。

7.在打開文件時,除了可以指定要打開的文件名,也可以指定打開的文件模式。r模式,就是read讀取模式。

w,寫入,替換已經存在的文件內容。

 a,附加,在已經存在的文件結尾處附加內容。

r+,以讀取和寫入模式打開文件。

8.一般在打開文件時,以r,w,a作為第二參數來寫入文件。f=opten('文件名','w')   f.write(.......)  f.close()

 

9.文件系統:移動,復制文件

shutil包里包含許多操作文件的函數

import  shutil

shutil.copy('test.txy','text_copy.txt')復制文件

shutil.move(),移動文件。

copytree()函數,復制整個文件夾。

rmtree()函數,刪除路徑和所有內容。

glob庫,找到路徑下的程序。

import  glob

glob.glob('*.txt')

想要文件夾中的所有內容,glob.glob('*')

 

10.序列化(pickle):包括將變量內容保存在文件中,這樣文件就可以在讀取時得到最初的值。這樣做的原因是在運行程序的過程中能夠存儲數據。

import  pickle

f.open('mylist.pickle','w')

pickle.dump(mylist,f)

f.close()

序列化文件中的數據以文本的方式保存,但是不可讀。

用以下方法可以把序列化文件重新讀入內存構造出原始的對象:

f=open('mylist.pickle')

array=pickle.load(f)

f.close()

 

11.互聯網:

import urllib.request

u='http://網頁地址'

f=urllib.request.urlopen(u)

contents=str(f.read())

返回HTML文本

f.close()

要在打開URL之后盡快執行讀取行。

 

12.Python的正則表達式,常用來處理復雜的字符串匹配或文本合法性驗證。

13.更好的方法是尋找這個網站的官網服務接口,而不是返回HTML數據。這些服務一般都返回很多經過簡單處理的數據,通常都是XML或者JSON。

 

14.Python下的Web服務。

15.圖形用戶界面:

Tkinter是python創建GUI的最常用工具。

from tkinter  import  *

root=Tk()

Label(root,text='Hello  World').pack()

root.mainloop()

 

1.必須給Tk對象設置一個變量

2.給Label類創建一個實例,這是root的第一個參數,第二個參數就是要指定文本在Label里顯示。

3.最后,pack方法會訪問Label,這樣Label就知道它自己該去的地方了

4.pack方法控制了窗口里顯示的內容,簡單來說,對網格中的組件使用了布局里的選擇模式。

5.第一步就是要給程序建立框架,建立一個類App,定義一個初始化的方法,def _init_(self,master):

6.當創建一個app實例時,_init_方法會被自動調用,app=App(root)。

7.把Tk根對象轉給創建用戶界面的_init_()。

8.Frame類的對象可以包含其他對象和其他一些能把程序窗口美化的命令,frame=Frame(master)       frame.pack()。

9.grid方法,網格布局,grid(row=0,column=0) 區域從(0.0)開始。

10.button=Button(frame,text='conver',command=self.convert)創建button對象。

11.root.wm_title('')  函數給窗口設置了標題。

12.當需要獲取或設置文本框,標簽等控件內容時,可以創建一些特殊的對象。最常用的是String Var,Double Var。

例如:

self.c_var=DoubleVar()

Entry(frame,textvariable=self.c_var).grid(row=0,column=0)

這個Double 與文本框關聯在一起,通過創建Entry對象時的textvariable參數來指定。這就意味着文本框中會顯示這個Double變量中的值。

 

13.其他GUI小部件

文本框類:Entry。

標簽類:Lable。

復選按鈕:Checkbox。

Checkbutton(frame,text='Checkbutton')

創建了一個旁邊有標簽的復選按鈕。

Check_var=StringVar()

check=Checkbutton(frame,text='Checkbutton',variable=check_var,onvalue='Y',offvalue='N')

check.grid(row=0,column=0)

 

列表框:

1.listbox=Listbox(frame,height=3,selectmode=BROWSE)

for item in['red','green','blue']

    listbox.insert(END,item)

listbox.grid(row=1,column=1)

2.可以用selectmode屬性控制列表框里的選項:

3.SINGLE一次只選一個

BROWSE與SINGLE類似,但是允許用鼠標選擇

MULTIPLE按住Shift,然后可以點鼠標左鍵可以選擇多行

EXTENDED與MULTIPLE類似,但是可以使用Ctrl-Shift-單擊選擇范圍。

4.該屬性設置必須使用curselection方法找出列表框里選擇的項。

5.Spinbox提供了另一種從列表中單選的方法:

Spinbox(frame,values=('a','b','c')).grid(row=3)

 

布局:

1.sticky屬性來決定小單元格的位置。

2.frame.pack(fill=BOTH,expand=1)確保框架會被閉合的根窗口填滿。如果根窗口調整尺寸,框架也會隨之改變。

3.sticky屬性需要列表框的上下左右都與閉合的網格連起來。

sticky=W+E+N+S

W,E,N,S 是數字常量,因此它們可以以任意順序添加進去。

4.frame.columnconfigure(1,weight=1)列

frame.rowconfigure(0,weight=1)行

第一列擴展到右邊

第0行單獨一行向下擴展

 

滾動條:

1.為了把這個滾動條關聯到文本部件,可以設置文本部件的yscroll-command屬性來設置滾動條。

2.滾動條的command屬性也可以被設置到text.yview

3.def  _init_(self,master):

scrollbar=Scrollbar(master)

scrollbar.pack(side=RIGHT,fill=Y)

text=Text(master,yscrollcommand=scrollbar.set)

text.pack(side=LEFT,fill=BOTH)

text.insert(END,'word'*1000)

scrollbar.config(command=text.yview)

4.pack布局,fill屬性用來指定文本區域可以使用x軸和y軸的所有空閑區域。

 

對話框:

1.import tkinter.messagebox as mb

   mb.showinfo('標題','內容')

2.showwarning函數和showerror函數功能類似,只是有不同的窗口符號罷了。

3.其他的對話框可以在tkinter.colorchooser和tkinter.filedialog包里找到。

4.def _init_(self,master):

   b=Button(master,text='Press Me',command=self.info).pack()

def  info(self)

mb.showinfo('Information','......')

root=Tk()

app=App(root)

root.mainloop()

 

顏色選擇器:

1.顏色選擇器會返回獨立的RGB組件的顏色。

2.import tkinter.colorchooser as cc

class App:

def _init_(self,master):

 b=Button(master,text='Color..',command=self.ask_color).pack()

def ask_color(self):

 (rgb,hx)=cc.askcolor()

print("rgb="+str(rgb)+"hx="+hx)

 

root=Tk()

app=App(root)

root.mainloop()

 

文件選擇器:tkinter.filedialog

 

菜單:

1.第一步就是創建根菜單,這是一個包含了所以菜單的獨立對象。

menubar=Menu(root)

2.需要先創建Menu實例,然后把一個命令加進去(這里是退出命令),最后把文件菜單添加到根菜單里:

filemenu=Menu(menubar,tearoff=0)

filemenu.add_command(label='Quit',command=exit)

menubar.add_cascade(label='File',menu=filemenu)

 

3.為了使菜單能共同出現在窗口上,需要:master.config(menu=menubar)

 

畫布:

1.畫布與窗口控件一樣,可以直接添加到窗口中。

2.from tkinter import  *

class App:

def  _init_(self,master):

 canvas=Canvas(master,width=400,height=200)

 canvas.pack()

canvas.create_rectangle(20,20,300,100,fill='blue')

canvas.creat_oval(30,50,290,190,fill='#ff2277')

 

root=Tk()

app=App(root)

root.mainloop()

3.坐標的起始處是窗口的左上角,而且坐標的單位是像素。

 

!!!pygame庫!!!

1.pygame庫是python中一個很有用庫。輕松地畫圖。可以在相同的速度下控制畫圖。可以用鼠標和鍵盤來控制游戲。

2.Python2安裝包里才有pygame.

3.小游戲:

import pygame

pygame.init()

 

screen=pygame.display.set_mode((200,200))

創建新窗口,

screen.fill((255,255,255))白色填充

pygame.display.set_caption('Hello Pygame')

 

ball=pygame.image.load('raspberry.jpg').convert()

函數convert()提高圖片繪制的速度

screen.blit(ball,(100,100))

blit命令畫一張圖

pygame.display.update()

更新顯示信息,這樣,就能看到圖片了。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM