第二讲 Python语法串讲

2.1

一、常用指令

  • 桌面点击右键  选择OpenTerminal打开终端
  • pwd  打印当前在哪个目录
  • ls  列出当前路径下的文件和目录
  • mkdir 目录名  新建目录
  • cd 目录名  进到指定目录
  • python  运行Python解释器
  • print “Hello World”

代码验证:

 

补充:

使用pwd命令打印当前在哪个目录,打印的是绝对路径。

绝对路径:是以根目录(“/”)为起点的完整路径,以你所要到的目录为终点。

相对路径:是你当前的目录(“.”)为起点的路径,以你所要到的目录为终点。

 

使用cd 目录名 进入到指定目录,如果指定的“目录名”是:

.      表示当前目录

..     表示当前目录的上一级目录

-     表示上一次所在目录 

~     表示当前用户的home目录(即刚login时所在的目录)

比如:

cd ..   返回上级目录

cd ../..   返回上两级目录

cd ~    进入用户主目录home目录

 

二、常用基础语法点

  • 运算符:+    -   *    /   %
  • 运算顺序:先乘除,再加减,括号最优先

代码验证:

 

  • 变量,就是一个标签,由非数字开头的字母、数字、下划线组成,它的内容可以是数值、字符串、列表、元组和字典。
  • 数值,就是数字。 a = 100
  • 字符串,就是用一对儿双引号、或单引号引起来的内容,只要被引号引起来,就是字符串了。     b = "Hello World"

100是数值   Vs   "100"是字符串

  • 转义字符:\t表示tab    \n表示换行   \"表示"
  • %s  占位,用%后的变量替换

举例:

a = 100

b = "Hello World"

print "point = %s \n \"  %s \" "  % (a, b)

打印出:

point = 100

" Hello World "

 

2.2

一、列表

  • 列表[]

    c = [1,2,3,4,5,6,7]

    d = ["张三","李四","王五"]

    e = [1,2,3,"4","5",d]

  • 用列表名[索引号]索引列表中的元素

     d[0]表示列表d中的第零个元素"张三"

  • 用列表名[起:止]表示切片,从列表中切出相应的元素    前闭后开

c[0:2] 切出[1,2]

c[ : ] 切出[1,2,3,4,5,6,7]

  • 用列表名[起:止:步长]   带步长的切片,步长有方向。

c=[1,2,3,4,5,6,7]

切出 [5,4,3,2] 用c[4:0:-1]   切出[5,4,3,2,1]用c[4: :-1]

切出 [6,4,2] 用c[-2::-2]  从倒数第二个开始一直切到头,步长为-2

  • 修改:表名[索引号] = 新值
  • 删除:del 列表名[索引号]
  • 插入:列表名.insert(插入位置索引号,新元素)

代码验证:

 

二、元组

  • 元组()    誓言,一旦定义就不会被改变

      f=(1,2,3)

 

三、字典

  • 字典 {}
  • 字典里放着  {键:值, 键:值, 键:值}    n个键值对

dic={1:"123","name":"zhangsan","height":180}

  • 用字典名[键]索引字典中的值

dic["name"]表示字典dic中键"name"对应的值"zhangsan"

  • 修改:字典名[键]=新值
  • 删除:del 字典名[键]
  • 插入:字典名[新键] = 新值

代码验证:

 

2.3

一、vim编辑器

  • vim 文件名     打开或新建文本
  • 在vim中 点击i进入插入模式    可往文本里写内容
  • ESC:q    退出vim
  • ESC:wq   保存更改退出vim
  • ESC:q!     不保存更改退出vim

二、条件语句

  • if  条件成立:

            执行任务

  • if   条件1成立:

            执行任务1

       else:

             执行任务2

  • if  条件1成立:

           执行任务1

       elif   条件2成立:

            执行任务2

                 ·

                 ·

                 ·

       elif   条件n成立:

            执行任务n

        else:

             执行任务n+1

代码验证:

 

其中#coding:utf-8以注释的形式加入来兼容中文输入;

age=input("输入你的年龄\n")中的input()是一个函数,表示从屏幕接收内容括号里的字符串是向屏幕打印出的提示内容,可以增加程序和用户的交互。

 

三、python语句代码层次

Python代码是使用四个空格的缩进表示层次关系的,从缩进我们可以看出这段条件语句分了三个层次,第一个层次是黄色的block1,然后是红色的block2,最后是蓝色的block3。

 

 

四、逻辑关系

==等于   !=不等于  >大于   >=大于等于    <小于   <=小于等于   

and与    or或

2.4

循环语句

  • 1、for    变量    in   range(开始值,结束值):

                  执行某些任务

   其中的括号内的开始、结束值也为前闭后开区间

代码验证:

  • 2、for   变量    in    列表名:

                    执行某些任务

代码验证:

在第一个for循环中,先打印出i对应的abcd中的a,然后执行第二个for循环,打印出j对应的abcd;再回到i,然后打印出i对应的abcd中的b,再打印出第二个for循环j对应的abcd...

  • 3、while   条件:

               执行某些任务

代码验证:

 

  • 4、终止循环用break

 

2.5

  • turtle模块

import   turtle     #导入turtle模块

t = turtle.Pen()    #用turtle模块中的Pen类,实例化出一个叫做t的对象

t.forward(像素点) #让t向前走多少个像素

t.backward(像素点)   #让t向前走多少个像素点

t.left(角度)            #让t左转多少角度

t.right(角度)          #让t右转多少角度

t.reset()                #让t复位

 

代码验证:

 

可以把刚才的重复工作用循环表示出来,for循环一般用作循环次数已知的任务

代码验证:

用while循环复现刚才的工作,t.reset()先让海龟复位,为了防止程序死循环我们用i做个计数器,到了指定次数强制退出循环。给i赋初值0,做个计数器让它每运行一遍循环自加一,把i=i+1放到和t.forward和t.left一个层次,如果i=4要执行break操作,也就是停止循环。

代码验证:

 

2.6

一、函数

  • 1、函数(function):组织好的,可重复使用的,用来实现单一或相关联功能的代码段。

比如之前用过的input()就是一个函数,可以直接使用函数,不用每次重新定义如何从控制台接受输入,所以函数是帮助实现代码复用的。

  • 2、定义函数:def   函数名  (参数表):

                                  函数体

括号里的参数如果不需要可以为空

  • 3、使用函数:函数名   (参数表)

如:input("please input your class number:")

定义:def hi_name(yourname):

                print "Hello %s"  %yourname

使用:hi_name(" zhangsan")

会输出:Hello zhangsan

代码验证:

  • 4、函数返回值:return

def add(a,b):

    return a+b

c=add(5,6)

#c被赋值为add的返回值11

代码验证:

  • 内建函数:python解释器自带的函数
  • abs(-10)      返回10

二、模块

  • 模块(module):是一个Python文件,以.py结尾,包含了Python函数等语句。先导入,再使用,用模块.函数名调用。

import time

time.asctime()

输出:'Mon Feb 18 15:13:24 2019'

 

三、包

  • 包:包含有多个模块

from PIL import Image

 

四、变量作用域

局部变量:在函数中定义的变量,只在函数中存在,函数执行结束不可再用。

全局变量,在函数前定义的变量,一般在整个代码最前面定义,全面可用。

 

2.7

类、对象和面向对象的编程

  • 1、类(class):用来描述具有相同的属性和对象的集合。它定义了该集合中每个对象所共有的属性和方法。对象是类的实例。物以类聚人以群分,类是可实例化出对象的模具。
  • 2、实例化:对象=类()         t=turtle.Pen()
  • 3、对象:是类实例化出来的实体,对象实实在在存在,完成具体工作。
  • 4、面向对象:程序员反复修改优化类,类实例化出对象,对象调用类里的函数执行具体的操作。

在上图中,有动物、哺乳动物和猫。动物是一个类,他们具有共同的功能:呼吸、移动和吃东西。哺乳动物也是一个类,他们是动物类里的子类,是在动物类的基础上多了喂奶的功能。猫是哺乳动物类的一个子类,猫类在哺乳动物的基础上多了捉老鼠的功能。

类命名时第一个字母常大写,比如Animals、Mammals和Cats的首字母都大写了。这些类的右侧列出了每个类具有的功能:比如呼吸、移动和吃东西是动物这个类具有的功能,在计算机中使用函数的形式表示。喂奶是哺乳动物的功能,是哺乳动物这个类里的函数。捉老鼠是猫类具有的功能,是猫类的函数。

  • 上面的类是下面类的父类;下面类是上面类的子类
  • 子类实例化出来的对象,可以使用自身和父类的函数与变量
  • 5、类的定义:

class  类名  (父类名):

      pass

如果有父类,写在类名后面的括号里;如果没有父类,可以不写括号了。用关键词pass占个位置,之后再用具体函数把类补充完整。

举例:class Animals:

              pass

       class Mammals(Animals):

              pass

       class Cats(Mammals):

              pass

  • 6、类里定义函数时,语法规定第一个参数必须是self。
  • 7、__init__函数,在新对象实例化时会自动运行,用于给新对象赋初值。

(1)将猫类实例化一个叫做kitty的对象,kitty有自己的特征属性,比如身上有10个斑点:

kitty=Cats(10)         #实例化时运行__init__函数,给spots赋值,告诉kitty有10个斑点

print   "kitty.spots"       #打印出10

(2)kitty可以做具体的工作,比如捉老鼠:

kitty.catch_mouse()    #对象运行函数,必须用对象.函数名,调用类里的函数

                                     #会运行print   "catch mouse"   故打印出catch mouse

  • 8、对象调用类里的函数,用对象.函数名;
  • 9、对象调用类里的变量,用对象.变量名。
  • 10、类内定义函数时,如调用自身或父类的函数与变量,须用self.引导,应写为self.函数名或self.变量名。

代码验证:

 

 

补充:

Python中虽然没有访问控制的关键字,例如private、protected等等。但是,在Python编码中,有一些约定来进行访问控制。

 

单下划线、双下划线、头尾双下划线说明:

_foo:以单下划线开头的表示的是protected类型的变量,即保护类型只能允许其本身与子类进行访问,不能用于from module import *

__foo:双下划线的表示的是私有类型(private)的变量,只能是允许这个类本身进行访问了。

__foo__:头尾双下划线定义的是特列方法,类似__init()__之类的。

 

2.8

一、文件写操作

import pickle

game_data=                                              ①save_file=open("save.dat","wb")

{                                                                 ②pickle.dump(game_data,save_file)

"position":"N2 E3",                                    ③save_file.close()

"pocket":["keys","knife"],

"money":160

}

开:文件变量=open("文件路径文件名","wb")

存:pickle.dump(待写入的变量,文件变量)

关:文件变量.close()

 

代码验证:

 

二、文件读操作

import pickle

①load_file=open("save.dat","rb")                        load_game_data=

②load_game_data=pickle.load(load_file)           {

③load_ file.close()                                                 "position":"N2 E3",

                                                                               "pocket":["keys","knife"],

                                                                               "money":160

                                                                                }

 

开:文件变量=open("文件路径文件名","rb")

取:放内容的变量=pickle.load(文件变量)

关:文件变量.close()

代码验证:

 

 

三、本章小结

  • 1、ubuntu终端的简单使用
  • 2、vim编辑器的基本用法
  • 3、python里的数据类型:数值、字符串、列表、元组和字典
  • 4、python的条件语句和循环语句
  • 5、代码纵向对齐表层次关系
  • 6、函数、对象、类、模块、包还有面向对象的编程思想
  • 7、文件读写操作
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值