Python第一周 基础语法和概念

执行Python命令的两种方式

1. 交互式模式下执行

安装好了Python程序以后,在windows的命令行或linux、mac的终端界面输入python命令即可进入python的交互模式,在这个模式里输入python语句,按回车即可返回执行结果。一般用于调试。

2. 脚本执行

在.py文件中写好python语句,然后使用python script.py这样的格式来执行python脚本,或者在linux平台上给脚本添加可执行权限,使用绝对路径或相对路径的方式来执行脚本。

Python程序的执行流程

我们编写的.py文件称为python脚本,在我们使用python命令执行python脚本的时候,python解释器首先将python脚本中的语句翻译成一组字节码命令,保存在脚本相同目录下的__pycache__目录下,以.pyc结尾的文件中,然后再将python字节码发送到PVM(Python virtual machine,python虚拟机)中,由PVM执行并返回最终的结果。PVM是Python程序的一部分。

Python程序的基本概念:

1. 程序由模块构成

2. 模块包含语句

3. 语句包含表达式

4. 表达式建立并处理对象

一. 内置对象

数字、字符串、列表、字典、元组、文件、集合、其他类型(type,None、bool)、编程单元类型(函数、模块、类)、与实现相关的类型(编译的代码堆栈跟踪traceback)。

内置对象的特点:

  • 内置对象使程序更容易编写,对于简单的任务,使用内置类型就可以完成工作。
  • 内置对象是扩展的组件,可以使用内置数据类型来组合出更复杂的数据类型。
  • 内置对象比自定义的数据结构更有效率,内置对象一般用C语言实现,效率更高。
  • 内置对象是语言标准的一部分,因此对不同平台的兼容性更好。

常见的内置对象:

1. 数字

Python支持的数字类型有整数、浮点数、复数、八进制数、固定精度的十进制数、十六进制数、带分子和分母的有理分数等。某些特定的数字可能需要特定的模块或第三方库的支持。

数字里的常用模块math、random,前者用来提供数字里常见的常量例如pi、e等,后者用于提供随机数生成器和随机数选择器。

2. 字符串

用来记录文本信息,再Python中作为序列的一个子集,支持序列的常见操作,例如len()函数、索引、分片等。

字符串的一个重要特性——不可变性,创建后就不能就地改变。

字符串自带的一些常见方法:find()、replace()、split()、rstrip()、格式化操作等。

r开头的字符串表示字符串自身,没有特殊含义,转义字符在这样的字符串中不起作用。

u开头的字符串表示unicode字符串,Python3.x默认支持Unicode字符串,不需要加u。

re模块用于处理字符串的模式匹配。

3. 列表

列表是这个语言提供的最通用的序列,是一个任意类型的对象的位置相关的有序集合,没用固定大小,大小可变,可根据索引对元素复制,支持各种列表的方法进行调用。

支持常见序列操作,例如索引、分片等。

列表自带方法append()、sort()、reverse()、pop()等。

4. 字典

字典不是序列,而是一种映射,通过键来进行存储,将键映射到值。字典的键具有唯一性,而键对应的值可以是多种的对象,例如字符串、数字、列表、集合,甚至是字典本身。

5. 元组

相当于不可变列表,也是一种序列,但是具有不可变性。也支持混合和嵌套多种元素。

6. 文件

在Python中,文件被当作对象来处理。文件对象是Python代码对电脑上外部文件的主要接口。没有特定的常量语法创建文件。要创建一个文件对象,需要调用处理文件对象的open函数并传给它一个文件名和文件处理模式字符串。

文件对象支持的方法read、readline、readlines、write、writelines、seek、close等。

额外的类文件工具:管道(PIPE)、先进先出队列(FIFO)、套接字(socket)、通过键访问文件、对象持久、基于描述符的文件、关系数据库和面向对象数据库接口。

7. 集合

不是映射也不是序列,是唯一的不可变的对象的无序集合。通过调用内置函数set函数创建,或者使用Python3.0中新的集合常量和表达式创建,支持一般的数学集合操作,集合更像是一个无值的字典的键。

X = set(‘spam‘)

Y = {‘h‘, ‘a‘, ‘m‘}

上面是两种创建集合的方式。

这些对象很多都支持对象特有的方法,具体内容会在单独介绍对象时讲解。在python命令行界面中,有几个命令可以用来查看对象的帮助信息,分别时:

  • dir(obj) 方法可以看到对象的所有属性
  • ord(obj)方法查看对象的ASCII编码
  • help(obj)或 help(obj.fn) 查看对象的帮助信息或者对象方法的帮助信息。

上面介绍的都是Python核心对象类型,以及可以对它们进行的一些简单操作。

二、动态类型

1. 常量/变量

  • 字面常量
  • 变量,是一个指针,指向一块分配好的内存。
    • 变量的创建,给变量赋值时即创建了该对象
    • 变量的类型(type),变量没有类型,类型是和变量相关联的对象的属性。变量的指针指向不同的对象时,就关联到不同类型的对象上。
    • 变量的命名规则
    1. 只能包含字母、数字和下划线
    2. 只能以字母或者下划线开头
    3. 不能是Python解释器的保留字

对象的垃圾收集:当没有指针指向一个对象时,对象的引用计数器就会置零,此时对象所占用的内存空间就会放入到自由内存空间,等待后面的对象使用。这个机制的好处是不用考虑释放内存空间。

对象的引用:将一个不可变对象,如数字、字符串赋值给一个变量时,改变对象,比如说将数字+1,或者将字符串加上一个新的字符串,此时实际执行的是生成一个新的数字对象或字符串对象,然后将变量的指针重新指向新的对象。

共享引用:将一个可变对象赋值给变量时,改变可变对象时,并不会改变这个变量的指针指向。因此当两个相同的变量指向同一个可变对象时,其中一个变量进行了修改对象的操作,另一个变量的值也会发生改变。例如:

>>>L1=[1,2,3]

>>>L2=L1

>>>L2[0]=24

>>>L2

[24,2,3]

>>>L1

[24,2,3]

此时如果不想因为L2改变了列表的值而导致L1也发生改变,应该使用拷贝(copy和deepcopy方法)。在列表中讲到该知识点。

is和 ‘==‘,只有两个变量的指针指向同一块内存时,两个变量才是is关系,没有指向同一块内存,但是两个变量指向的对象完全相同,此时两个变量才是 ‘==‘ 关系。

补充内容:变量与对象之间的关系

  • 变量是一个系统表元素,拥有指向对象的连接的空间,即保存指针的空间。
  • 对象是系统分配的一块内存,有足够的空间去表示它们所代表的值,一个对象都有两个标准的头部信息,一个类型标识符去标识这个对象的类型,一个引用计数器,来决定是不是可以回收这个对象
  • 引用是自动形成的从变量到对象的指针s

2. 运算符/表达式

算术运算符:+、-、*、/(py2和py3中意义不一样)、//、%、**;

比较运算符:>,<,=,!=,>=,<=,==;

逻辑运算符:and、or、not

  • 参与运算的成员只能是bool类型,或者可以隐式转换为bool类型的类型(0,1);
  • and两正得正,两负得负,一正一负均为负
  • or 两正得正,两负得负,一正一负均为负
  • not 正得负,负得正
  • 短路操作:总是从左到右的计算,一旦能够决定表达式最终的值,将立刻停止计算并返回。即当使用and操作符时,左边的值为负则立即结束运算,使用or操作符时,当左边为正时,立即结束运算。当这种情况下需要运算操作符两边的表达式时,可以将运算符两边的表达式用临时变量代替。

位运算符:

  • bin(num) 返回num的二进制表示
  • &(按位与)、|(按位或)、^(按位异或,同为1或同为0时为0,不同时为1)、~(按位取反~x=-(x+1))
  • >>,<<(左移和右移操作符)

其他运算符:

  • 赋值运算符=
  • 成员运算符in(内置数据结构的内容)
  • 身份运算符is、is not(面向对象的内容)

运算符的优先级:运算符根据优先级来计算。

  • 算术运算符高于比较运算符
  • 比较运算符高于逻辑运算符

表示式是由常量/变量和运算符组成的公式。

3. 程序控制结构

顺序结构:自上而下执行的表达式组合;

分支结构:

  • 单分支:if condition: block
  • 双分支:if....else....
  • 多分支:if...elif...else

分支结构里永远只有一个分支会被执行

循环结构:

  • for element in iterator: block
  • while condition: block
  • break、continue,break用于提前结束循环,continue用于跳过当前循环剩下的部分。

* 循环体中绝对不要修改可迭代对象。

for _ in range(0,3)  #表示不使用 _ 这个变量,只是进行三次循环。

嵌套结构:if、for、while等多种结构结合的结构。

0、空的内置结构、None bool的结构都是False,非0、非空的内置结构都是True

本节知识点:

1. 知道Python中常见的内置类型和这些内置类型常用的方法(len、索引、分片等)。

2. 掌握Python中创建变量的规则,变量引用不同对象时,变量和对象之间的关系。包括以下几点:

  • 变量命名规则
  • 变量引用不可变对象时,更改对象之后,变量指针的变化
  • 变量引用可变对象时,更改对象之后,变量和对象的关系。

3. 熟悉简单的运算符操作。

4. 熟悉Python中基本的控制结构。

时间: 2024-10-07 05:41:58

Python第一周 基础语法和概念的相关文章

Python第一周基础篇

<感言:首先感谢alex老师精彩课程,第一周的第一天,随着金角大王的豪言壮语般的心灵鸡汤完美收场.此刻坐在电脑前的我仍是热血澎湃,下定决心好好跟着大王一起学好python> ----祝老师教师节快乐                                      Python第一周基础篇 博文结构: --1--python2.*与python3.*主要区别 --2--python安装与配置 --3--PyCharm开发工具的安装与配置 --4--变量的定义 --5--注释的使用 --

python第一周 - 基础一

本文转自:https://www.cnblogs.com/alex3714/articles/5465198.html 本节内容 Python介绍 发展史 Python 2 or 3? 安装 Hello World程序 变量 用户输入 模块初识 .pyc是个什么鬼? 数据类型初识 数据运算 表达式if ...else语句 表达式for 循环 break and continue 表达式while 循环 作业需求 一. Python介绍 目前Python主要应用领域: 云计算: 云计算最火的语言,

Python第一周Round1记录

为啥要说是Python第一周呢? 一直都有心思想好好学习下编程,但是因为自身的懒惰和工作中的不需要,一直搁浅,现在重新开始学习,以天为单位做记录的话,可能会产生很多电子垃圾,虽然占不了多少字符,但是也是浪费大自然不是,哈哈~ 如果能坚持记录下去的话,那更好,如果有一天突然发现自己没有在更新此博客,那对不起,可能是我die了,或者我又放弃了~如果是第一种情况还好,如果是第二种情况,怕是以后就再也没有机会了. 今天,2018年12月14日,距离我28周岁的生日,还有2天,a good day! 第一

python 速成笔记 [基础语法 一]

0x01 理解机器码,字节码的基本概念: 低级语言: 汇编 C => 机器码 [直接可以丢给cpu去执行] 高级语言: Java ruby python c# php[应用场景非常局限,只限于web开发] C++ => 字节码 [通常是个二进制文件(python中是.pyc文件),也叫中间代码,还需要对应的各类语言的解释器进一步转换成机器码才能直接被cpu执行] 0x02 了解 python 的一些常见种类: C python c语言版 python 默认大家所说的python一般都是指C p

从零开始学Python第一周:Python基础(上)

Python语法基础(上) 一,Python的变量 (1)创建变量 变量的含义:存储信息的地方 创建变量并赋值 x = 1 print x x = 123 #再次赋值 print x (2)使用变量 x = 1 y = 2 z = 3 print x,y,x*y,z (3)变量的命名规则 由字母,数字,下划线组成 不能以数字开头 不能使用Python关键字 错误的变量命名举例: #name = 1 3k = 1 print = 1 英文字母大小写敏感,例如:m与M不同 m = 1 print M

python第一周语言基础

控制语句 if语句,当条件成立时运行语句块.经常与else, elif(相当于else if) 配合使用. for语句,遍历列表.字符串.字典.集合等迭代器,依次处理迭代器中的每个元素. while语句,当条件为真时,循环运行语句块. try语句,与except,finally配合使用处理在程序运行中出现的异常情况. class语句,用于定义类型. def语句,用于定义函数和类型的方法. pass语句,表示此行为空,不运行任何操作. assert语句,用于程序调试阶段时测试运行条件是否满足. w

Python第一周Round2记录—基础内容

今天算是正式开始学习Python的内容,下面为基础内容的记录. 一.变量 Python中,可以使用字母.数字.下划线三种字符及及组合构成,但有下面三种例外: (一)变量的开头不能是数字: 2b="小果果" #如果这样定义变量,软件会报错. (二)Python的关键字不能作为变量: 'and', 'as', 'assert', 'break', 'class', 'continue', 'def', 'del', 'elif', 'else', 'except', 'exec', 'fi

python第一周

目前Python主要应用领域        云计算.科学运算.WEB开发.图形GUI一.Python是什么语音.        编译语言和解释语言的区别.                1.编译语言:需要程序员每一条语言编译成机器语言,编译后保存成二进制,编译语言运行快.                2. 解释语言:需要一条一条的编译,执行时才进行编译,相比编译语言效率略低. Python解释器我们编写好的程序后缀名为.py文件,需要python来执行该文件.py. 二.Python发展史  

Python第一周的复习

开始使用Pyhton 安装 第一个Python程序 首先我们打开python 交互式解释器, 执行如下命令: Python 3.5.1+ (default, Mar 30 2016, 22:46:26) [GCC 5.3.1 20160330] on linux Type "help", "copyright", "credits" or "license" for more information. >>>