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()

更新显示信息,这样,就能看到图片了。

上一篇:Oracle 11g trace events


下一篇:Deep learning:四十二(Denoise Autoencoder简单理解)