版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、Python程序设计 Programming in Python 主讲:庞胜利 2 第二章 Python语言数据类型、 运算符和表达式 Python程序基本概念 Python运算符 Python表达式 Python程序基本概念 仅仅打印“Hello World”就足够了吗?我们 应该想要做更多的事想要得到一些输 入,然后做操作,再从中得到一些输出。 在Python中,我们可以使用常量和变量来 完成这些工作。 常量 一个字面意义上的常量的例子是如同5、 1.23、9.25e-3这样的 数,或者如同This is a string、“Its a string!”这样的字符串。 它们被称作字面意义上
2、的,因为它们具备 字面 的意义按照它们的字面意义使用 它们的值。数2总是代表它自己,而不会是 别的什么东西它是一个常量,因为不 能改变它的值。因此,所有这些都被称为 字面意义上的常量。 数数 在Python中有4种类型的数整数、长整 数、浮点数和复数。 2是一个整数的例子。 长整数不过是大一些的整数。 3.23和52.3E-4是浮点数的例子。E标记表示10 的幂。在这里,52.3E-4表 示52.3 * 10-4。 (-5+4j)和(2.3-4.6j)是复数的例子 字符串字符串 字符串是 字符的序列 。 C语言中用字符数 组表示,如char str20 = “hello”. Python中的字
3、符串可以如下表示: 使用单引号(使用单引号():):可以用单引号指示字符串, 就如同Quote me on this这样。所有的空白, 即空格和制表符都照原样保留。 使用双引号(使用双引号(“):在双引号中的字符串与单引 号中的字符串的使用完全相同,例如”Whats your name?“。 字符串字符串 使用三引号(使用三引号(或或“”“):利用三引号,可以指):利用三引号,可以指 示一个示一个多行多行的字符串,可以在三引号中自由的的字符串,可以在三引号中自由的 使用单引号和双引号使用单引号和双引号,如: 这是一个多行的 字符串,你可以写入 任意字符,甚至是 单引号和双引号 字符串字符串 转
4、义符转义符 假设想要在一个字符串中包含一个单引号(),那么该怎么指示这 个字符串?例如,这个字符串是Whats your name?。 肯定不能用Whats your name?来指示它,因为Python会弄不明白 这个字符串从何处开始,何处结束。 所以,需要指明单引号而不是 字符串的结尾。可以通过 转义符 来完成这个任务。用来指示单引 号 注意这个反斜杠。现在可以把字符串表示为Whats your name?。 另一个表示这个特别的字符串的方法是“Whats your name?”,即用 双引号。类似地,要在双引号字符串中 使用双引号本身的时候,也 可以借助于转义符。另外,可以用转义符来指示
5、反斜杠本身。 值得注意的一件事是,在一个字符串中,行末的单独一个反斜杠表 示字符串在下一行继续,而不是开始一个新的行 This is the first sentence. This is the second sentence. This is the first sentence. This is the second sentence. 字符串字符串 自然字符串自然字符串 如果你想要指示某些不需要如转义符那样的特 别处理的字符串,那么你需要指定一个自然字 符串。自然字符串通过给字符串加上前缀r或R 来指定。例如rNewlines are indicated by n“ 比较下面两句话的区
6、别: print Newlines are indicated by nhello print rNewlines are indicated by nhello 字符串字符串 Unicode字符串字符串 Unicode是书写国际文本的标准方法。如果想 要用中文、日文、韩文等写文本,那么需要有 一个支持Unicode的编辑器。类似地,Python 允许处理Unicode文本只需要在字符串前 加上前缀u或U。例如,uThis is a Unicode string.。 在处理文本文件的时候尽量使用Unicode编码 ,特别是文件中含有用非英语的语言写的文本 。 字符串字符串 字符串是不可变的字符
7、串是不可变的 这意味着一旦创造了一个字符串,就不能再改 变它了。虽然这看起来像是一件坏事,但实际 上它不是。我们将会在后面的程序中看到为什 么说它不是一个缺点。 级连字符串级连字符串 如果把两个字符串按字面意义相邻放着,他们 会被Python自动级连。例如,Whats your name?会 被自动转为Whats your name?。 Whats your name? Whats your name? Whats + your name? 变量变量 仅仅使用字面意义上的常量很快就会不能 满足我们的需求我们需要一种既可以 储存信息又可以对它们进行操作(改变它 的内容)的方法。这是为什么要引入
8、变量 。 变量的值可以变化,即可以使用变量存储 任何东西。变量只是计算机中存储信息的 一部分内存。与字面意义上的常量不同, 需要一些能够访问这些变量的方法,因此 要给变量命名。 标识符的命名标识符的命名 变量是标识符的例子。 标识符 是用来标识 某样东 西 的名字。在命名标识符的时候,要遵循这些规 则: 标识符的第一个字符必须是字母表中的字母(大写或小 写)或者一个下划线( _ )。 标识符名称的其他部分可以由字母(大写或小写)、下 划线( _ )或数字(0-9)组成。 标识符名称是对大小写敏感的。例如,myname和 myName不是不是一个标识符。注意前者中的小写n和后者中 的大写N。 有
9、效 标识符名称的例子有i、_my_name、name_23和 a1b2_c3。 无效 标识符名称的例子有2things、this is spaced out和 my-name。 anddelfromnotwhile aselifglobalorwith assertelseifpassyield breakexceptimportprint classexecinraise continuefinallyisreturn defforlambdatry 标识符的命名标识符的命名-关键字关键字 标识符的命名标识符的命名-类保留类保留 _*:from module import *将不被导出。交
10、互环境最后表达式的值。 _*_:系统定义的名字 _*:类的私有变量或方法 数据类型数据类型 每个变量都有自己的类型,可以处理不同 类型的值,称为数据类型数据类型。 基本的类型是数和字符串,我们已经讨论 过它们了。在后面的章节里面,我们会研 究怎么用类创造我们自己的类型。 Python中一切都是对象,包括字符串和数 。 对象对象 Python把在程序中用到的任何东西都称为 对象。Python是完全面向对象的语言,任 何变量都是对象,甚至包括执行的代码: 函数。 # Filename : var.py i = 5 print i i = i + 1 print i s = This is a mu
11、lti-line string. This is the second line. print s 逻辑行与物理行逻辑行与物理行 物理行是在编写程序时所 看见 的。逻辑行 是Python 看见 的单个语句。Python假定每 个 物 理行 对应一个 逻辑行 Python希望每行都只使用一个语句,这样 使得代码更加易读 如果想要在一个物理行中使用多于一个逻 辑行,那么需要使用分号(;)来特别地标 明这种用法。分号表示一个逻辑行/语句的 结束。例如: i=5 print i i=5; print i; i=5;print i 逻辑行与物理行逻辑行与物理行 强烈建议强烈建议坚持在每个物理行只写一句逻
12、辑在每个物理行只写一句逻辑 行行。 仅仅当逻辑行太长的时候,在多于一个物 理行写一个逻辑行。这些都是为了尽可能 避免使用分号,从而让代码更加易读。 下面是一个在多个物理行中写一个逻辑行 的例子。它被称为明确的行连接明确的行连接。 s = This is a string. This continues the string. print s This is a string. This continues the string. 逻辑行与物理行逻辑行与物理行 有一种暗示的假设,可以不需要使用反斜 杠。这种情况出现在逻辑行中使用了圆括 号、方括号或波形括号的时候。这被称为 暗示的行连接暗示的行连
13、接。 a = 100, 200 print a 缩进缩进 空白在Python中是重要的。事实上行首的行首的 空白是重要的空白是重要的。它称为缩进缩进。在逻辑行 首 的空白(空格和制表符)用来决定逻辑行 的缩进层次,从而用来决定语句的分组。 这意味着同一层次的语句必须必须有相同的缩 进。每一组这样的语句称为一个块块。错误 的缩进会引发错误 不同于C/C+、Java用的是 i = 5 print Value is, i # Error! Notice a single space at the start of the line print I repeat, the value is, i 缩进
14、缩进 如何缩进 不要不要混合使用制表符和空格来缩进,因为这在跨 越不同的平台的时候,无法正常工作。强烈建议 在每个缩进层次使用 单个制表符 或 两个或四个 空格 。 选择这三种缩进风格之一。更加重要的是,选择 一种风格,然后一贯地一贯地使用它,即 只 使用这一种 风格。 Python迫使程序员写成统一、整齐并且具有可读 性程序的主要方式之一,这就意味着必须根据程 序的逻辑结构,以垂直对齐的方式来组织程序代 码,结果就是让程序更一致,并具有可读性,因 而具备了重用性和可维护性,对自己和他人都是 如此。 缩进缩进 if (x) if (y) statements; else statements;
15、 if x: if y: statements else: statements Python程序结构 程序由模块构成 模块包含语句 语句包含表达式 表达式建立并处理对象 Python语法实质上是有语句和表达式组成的。 表达式处理对象并嵌套在语句中。语句编程实 现程序操作中更大的逻辑关系。此外,语句还 是对象生成的地方,有些语句会生成新的对象 类型(函数、类等)。语句总是存在于模块中 ,而模块本身则又是由语句来管理的。 Python语法 Python增加了什么 新的语法成分冒号(:)。所有的复合语句(语句中嵌 套了语句)都有相同的一般形式,就是首行以冒号结 尾,首行下一行嵌套的代码往往按缩进的
16、格式书写。 Python删除了什么 括号是可选的 终止行就是终止语句(分号) 缩进的结束就是代码块的结束() if (x y) x = 1; y = 2; if x y: x = 1 y = 2 运算符与表达式运算符与表达式 编写的大多数语句(逻辑行)都包含表达式表达式。一 个简单的表达式例子如2 + 3。一 个表达式可以分 解为运算符和操作数。 运算符 的功能是完成某件事,它们由如+这样的 符号或者其他特定的关键字表示。运算符需要数 据来进行运算,这样的数据被称为 操作数 。在这 个例子中,2和3是操作数。 在Python中,表达式可以作为语句,但表达式结 果不会存储。 运算符及其用法 运算
17、符运算符名称名称说明说明例子例子 +加两个对象相加3 + 5得到8。a + b得到ab。 -减得到负数或是一个数减去另一个数-5.2得到一个负数。50 - 24得到26。 *乘 两个数相乘或是返回一个被重复若干次的字符 串 2 * 3得到6。la * 3得到lalala。 *幂返回x的y次幂3 * 4得到81(即3 * 3 * 3 * 3) /除x除以y 4/3得到1(整数的除法得到整数结果)。4.0/3 或4/3.0得到1.3333333333333333 /取整除返回商的整数部分4 / 3.0得到1.0 %取模返回除法的余数8%3得到2。-25.5%2.25得到1.5 左移 把一个数的比特
18、向左移一定数目(每个数在内 存中都表示为比特或二进制数字,即0和1) 2 右移把一个数的比特向右移一定数目 11 1得到5。11按比特表示为1011,向 右移动1比特后得到101,即十进制的5。 运算符及其用法 运算符运算符名称名称说明说明例子例子 y = 6; x =大于等于返回x是否大于等于y x = 4; y = 3; x = y返回True 。 =等于比较对象是否相等 x = 2; y = 2; x = y返回True 。x = str; y = stR; x = y返 回False。x = str; y = str; x = y返回True。 !=不等于比较两个对象是否不相等 x =
19、 2; y = 3; x != y返回True 。 运算符及其用法 运算符运算符名称名称说明说明例子例子 not布尔“非” 如果x为True,返回False 。如果x为False,它 返回True。 x = True; not y返回False 。 and布尔“与” 如果x为False,x and y 返回False,否则它 返回y的计算值。 x = False; y = True; x and y,由于x是False, 返回False。在这里 ,Python不会计算y ,因为它知道这个 表达式的值肯定是 False(因为x是 False)。这个现象 称为短路计算。 or布尔“或” 如果x是True,它返回 True,否则它返回y 的计算值。 x = True; y = False; x or y 返回True。 运算符优先级运算符优先级 如果有一个如2 + 3 * 4那样的表达式,是先 做加法呢,还是先做乘法? 应当先做乘法这意味着乘法运算符的 优先级高于加法运算符 下面给出Python运算符优先级 运算符运算符描述描述 lambdaLambda表达式 or布尔“或” and布尔“与
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025-2026学年福建省莆田市第二十四中学初三3月测试(线上)数学试题含解析
- 2026年大学大一(康复工程技术)假肢适配调整阶段测试题及答案
- 护理技能竞赛与授课展示
- 急诊科护理人员的创新能力培养
- 培训安全风险防控指南
- 护理核心制度与护理服务评估
- 护理引导式教学的课程设计与开发
- 护理应急调配改进措施
- 护理不良事件患者安全指标
- 心理评估服务规范考核试题及答案
- 向下管理高尔夫20131115
- 美世-宝钢国际职位评估系统
- 青啤Siebel CRM项目月度促销方案操作手册V10
- 《新媒体营销实务》课件项目一新媒体营销概述
- 哈罗线DK92+600处12.0m箱形桥计算书
- 新教材教科版六年级下册科学2-2《制作校园生物分布图》教学课件
- JJG 150-2005 金属布氏硬度计检定规程-(高清现行)
- GB∕T 17766-2020 固体矿产资源储量分类
- 《圆的面积》说课.ppt课件
- 小学语文教师培训:《制定双向细目表提高命题科学性》优质课件
- (高清版)GB_T 40916-2021液化气储运用高强度聚氨酯泡沫塑料
评论
0/150
提交评论