《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) | 返回
a
b
a^b
ab的值,类似a**b | pow(2,3)=8 |
round(x) | 返回与x最接近的整数,如果x与两个整数接近程度相同,则返回偶数值 | round(5.4)=5 round(5.5)=6 round(4.5)=4 |
round(x,n) | 保留小数点后n位小数的浮点值(四舍五入) | round(5.466,2)=5.47 round(5.463,2)=5.46 |
- Python的math模块提供了许多数学函数
函数 | 描述 | 举例 |
---|---|---|
fabs(x) | 将x看作一个浮点数,返回它的绝对值 | fabs(-2)=2.0 |
ceil(x) | x向上取最近的整数,然后返回这个整数 | ceil(2.1)=3 ceil(-2.1)=-2 |
floor(x) | x向下取最近的整数,然后返回这个整数 | floor(2.1)=2 floor(-2.1)=-3 |
exp(x) | 返回幂函数 e x e^x ex的值 | 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 | 空白字符 |