zoukankan      html  css  js  c++  java
  • 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()

    如果读到两行之间的空行,但那不是尾行,就返回尾行符 。

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

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

  • 相关阅读:
    解决“在多字节的目标代码页中,没有此Unicode字符可以映射到的字符”
    实际遭遇并解决:类型“ASP.global_asax”同时存在的问题
    ASP.NET最误导人的错误提示:“未预编译文件,因此不能请求该文件”
    用AutoHotKey彻底解决“Ctrl键+鼠标滚动”时的缩放问题
    .NET Core与.NET Framework、Mono之间的关系
    初识IStructuralEquatable接口
    SQL Server中DateTime与DateTime2的区别
    用word-break: break-all解决不正确换行问题
    Helios与Katana的区别
    简单理解在Mac OS X上运行ASP.NET程序
  • 原文地址:https://www.cnblogs.com/hqutcy/p/6080689.html
Copyright © 2011-2022 走看看