《Python语言程序设计》学习笔记
笔记选自《Python语言程序设计》[美]梁勇 著
本篇笔记没有记录用python绘画的turtle库
第三章 数学函数、字符串和对象
- 简单的Python内置函数
| 函数 | 描述 | 举例 |
|---|---|---|
abs(x) | 返回x的绝对值 | abs(-2)=2 |
max(x1, x2, ...) | 返回x1, x2, …的最大值 | max(1,5,2)=5 |
min(x1, x2, ...) | 返回x1, x2, …的最小值 | min(1,5,2)=1 |
pow(a,b) | 返回aba^bab的值,类似a**b | pow(2,3)=8 |
round(x) | 返回与x最接近的整数,如果x与两个整数接近程度相同,则返回偶数值 | round(5.4)=5round(5.5)=6round(4.5)=4 |
round(x,n) | 保留小数点后n位小数的浮点值(四舍五入) | round(5.466,2)=5.47round(5.463,2)=5.46 |
- Python的math模块提供了许多数学函数
| 函数 | 描述 | 举例 |
|---|---|---|
fabs(x) | 将x看作一个浮点数,返回它的绝对值 | fabs(-2)=2.0 |
ceil(x) | x向上取最近的整数,然后返回这个整数 | ceil(2.1)=3ceil(-2.1)=-2 |
floor(x) | x向下取最近的整数,然后返回这个整数 | floor(2.1)=2floor(-2.1)=-3 |
exp(x) | 返回幂函数exe^xex的值 | exp(1)=2.71828 |
log(x) | 返回x的自然对数值 | log(2.71828=1) |
log(x,base) | 返回以某个特殊值为底的x的对数值 | log(100,10)=2.0 |
sqrt(x) | 返回x的平方根 | sqrt(4.0)=2 |
sin(x) | 返回x的正弦值,x是角度的弧度值 | sin(3.14159/2)=1 |
asin(x) | 返回x的反正弦弧度值 | asin(1.0)=1.57 |
cos(x) | 返回x的余弦值,x是角度的弧度值 | cos(3.14159)=-1 |
acos(x) | 返回x的反余弦弧度值 | acos(1.0)=0 |
tan(x) | 返回x的正切值,x是角度的弧度值 | tan(0.0)=0 |
degrees(x) | 将x从弧度转换为角度 | degrees(1.57)=90 |
radians(x) | 将x从角度转换为弧度 | radians(90)=1.57 |
两个数学常量pi和e也定义在math模块中。可以通过使用math.pi和math.e来访问它们。math模块应该在第一行被导入import math
- 字符和字符串
Python处理字符和字符串的方式是一样的。字符串必须被括在一对单引号(')或者双引号(")里。Python没有字符数据类型。一个字符的字符串代表一个字符。
-
ASCII码
计算机在内部是使用二进制数的。把一个字符映射成它对应的二进制被称为字符编码。对字符的编码标准有很多,编码表定义编码字符的方式。流行的编码标准是ASCII(美国信息交换标准代码),它是一个比特的编码表,足以表示所有的大小写字母、数字、标点符号以及控制字符。ASCII码使用0到127来表示字符。 -
统一码
Python也支持统一码。统一码是一种编码表,它能表示国际字符,支持世界上各种语言所写的文本进行交换、处理和展示。ASCII码表是统一码的子集。一个统一码以“\u”开始,后面紧跟四个十六进制数字,它们从\u0000到\uFFFF -
函数
ord和chr
python提供ord(ch)函数来返回字符ch的ASCII码,用chr(code)函数返回code所代表的字符。
任何小写字母的ASCII码与它对应的大写字母的ASCII码的差值都一样:32。这是一个很有用的处理字符的特性。 -
转义序列
| 字符转义序列 | 名称 | 含义 | 数值 |
|---|---|---|---|
\b | 退格符 | 8 | |
\t | 制表符 | 9 | |
\n | 换行符 | 也被称为行结束(EOL)字符,表示一行的结束 | 10 |
\f | 换页符 | 让打印机从下一页打印 | 12 |
\r | 回车符 | 把光标移动到同一行的第一个位置。 | 13 |
\\ | 反斜线 | 92 | |
\' | 单引号 | 39 | |
\" | 双引号 | 34 |
- 不换行打印
当使用print函数时,它会自动打印一个换行符,这会导致输出提前进入下一行。如果你并不想在使用print函数后换行,可以使用下面的语法print(item, end="anyendingstring"),例如:
print("AAA", end = ' ')
print("BBB", end = '') # 表示一个空字符串,不会打印任何内容
print("CCC", end = '***')
# 输出:AAA BBBCCC***
- 函数
str可以将一个数字转换成一个字符串
s = str(3.4)
s
# 输出:'3.4'
-
字符串连接操作:可以使用
+运算符来连接两个字符串。增强型赋值运算符+=也能用来连接字符串。 -
对象和方法简介:在Python中,所有的数据(包括数字和字符串)实际都是对象。可以使用
id函数和type函数来获取关于对象的一些信息。 -
当执行程序的时候,Python会自动为对象的id赋一个独特的整数。在程序的执行过程中,对象的id不会改变。在Python中类(class)和类型(type)是一样的意思。
-
Python中的变量实际上是一个对象的引用。
n=3,n是一个引用了int对象的变量,而这个int对象的值为3。 -
Python中对象所用的函数被称为方法。方法只能从一个特定的对象里调用。例如:字符串类型里有像
lower()和upper()这样的方法,它们返回大写字母或小写字母写成的新字符串。一个对象调用方法的语法就是object.method()
s = "Welcom"
s1 = s.lower()
s1
# 输出:'welcome'
- 另一个有用的字符串方法是
strip(),它能被用来移除一个字符串两端的空格符。字符串' '、\t、\f、\r和\n都是空格符 - 注意:如果你在Eclipse上使用Python,Eclipse会自动在input函数输入的字符串后追加
\r。因此,你应该用strip()方法移除字符\r:
s = input("Enter a string").strip()
-
格式化数字和字符串:你可以使用
format函数返回格式化的字符串,调用这个函数的语法是format(item, format-specifier),item是数字或者字符串,而格式说明符(format-specifier)指定条目item的格式。此函数返回一个字符串。 -
格式化浮点数:如果条目item是一个浮点值,可以用标识符以"width.precisonf"的形式给出格式的宽度和精确度。width指定得到的字符串的宽度,精确度precision指定小数点后数字的个数,而f被称为转换码,它为浮点数设定格式。
-
函数
format(57.467657, "10.2f")将数字格式化为宽度为10,包括小数点以及小数点后两位小数的字符串。这个数字被四舍五入到两个小数位。这样,在小数点前分配7个数字。如果在小数点前的数字小于7个,则在数字前插入空格。如果小数点前的数字个数大于7,则数字的宽度将会自动增加。也可以省略宽度符,这样它被默认是0。这样,宽度就会根据格式化这个数所需的宽度自动设置。 -
用科学计数法格式化

-
格式化成百分数

-
调整格式:默认情况下,一个数的格式是向右对齐的

-
格式化字符串:默认情况下,字符串是向左对齐的

-
常用的说明符
| 说明符 | 格式 |
|---|---|
"10.2f" | 格式化浮点数,宽度为10精度为2 |
"10.2e" | 格式化浮点数(以科学计数法表示),宽度为10精度为2 |
"5d" | 将整数格式化为宽度为5的十进制数 |
"5x" | 将整数格式化为宽度为5的十六进制数 |
"5o" | 将整数格式化为宽度为5的八进制数 |
"5b" | 将整数格式化为宽度为5的二进制数 |
"10.2%" | 将数格式化为百分数 |
"50s" | 将字符串格式化为宽度为50的字符串 |
"<10.2f" | 向左对齐格式化项目 |
>10.2f | 向右对齐格式化项目 |
本章总结
- Python提供数学函数:解释器里有
fabs、max、min、pow和round;math模块里的abs、ceil、floor、exp、log、sqrt、sin、cos、acos、asin、tan、degree和radians - 一个字符串是一个字符序列。字符串的值可以用一对单引号或双引号括起来。Python里没有字符数据类型:单一字符的字符串代表一个字符。
- 转义序列是一种特殊的语法,它以“\”开始,再紧跟一个字母或者数字组合,以此来代表一个特殊的字符。例如
\'、\"、\t和\n。 - 字符
、\t、\f、\r和\n被称为空白字符。 - Python里所有的数据,包括数字和字符串都是对象。你可以调用方法实现对象上的操作。
- 你可以使用
format函数格式化一个数字或字符串,然后返回一个字符串的结果。
关键术语
| 英文 | 中文 |
|---|---|
backslash(\) | 反斜杠(\) |
| character encoding | 字符编码 |
| end-of-line | 行尾 |
| escape sequence | 转义序列 |
| line break | 换行符 |
| methods | 方法 |
| newline | 换行符 |
| object | 对象 |
| string | 字符串 |
| whitespace characters | 空白字符 |
这篇笔记介绍了Python中的数学函数,包括内置的abs、max、min、pow和round,以及math模块提供的如fabs、ceil、floor等函数。此外,还详细阐述了字符串的处理,如ASCII码、统一码、转义序列和字符串连接操作。文章提到了对象和方法的概念,并举例展示了如何使用字符串的方法如lower()和strip()。最后,讨论了format函数在格式化数字和字符串方面的应用。
531

被折叠的 条评论
为什么被折叠?



