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()
更新顯示信息,這樣,就能看到圖片了。