第3章 数学函数、字符串和对象

Chapter 3

3.2 常见的Python函数

函数是完成一个特殊任务的一组语句。Python有内置函数,使用内置函数不用导入任何模块。

简单的Python内置函数

函数描述
abs(x)返回x的绝对值
max(x1, x2, ...)返回x1,x2,…的最大值
min(x2, x2, ...)返回x2,x2,…的最小值
pow(a, b)返回a^b^的值,类似a ** b
round(x)返回与x最接近的整数,如果x与两个整数接近程度相同,则返回偶数值。例如,round(5.4) = 5,round(5.5) = 6, round(4.5) = 4
round(x, n)保留小数点后n位小数的浮点值

Python数学模块中的数学函数(需要导入math模块):

函数描述
fabs(x)将x看作一个浮点数
ceil(x)x向上取最近的整数,然后返回这个整数
floor(x)x向下取最近的整数,然后返回这个整数
exp(x)返回幂函数e^x^的值
log(x)返回x的自然对数值
log(x, base)返回以某个特殊值为底的x的对数值
sqrt(x)返回x的平方根值
sin(x)返回x的正弦值,x是角度的弧度值
asin(x)返回x的反正弦值(返回值是弧度值),x是正弦值
cos(x)返回x的余弦值,x是角度的弧度值
acos(x)返回x的反余弦值(返回值是弧度值),x是余弦值
tan(x)返回x的正切值,x是角度的弧度值
degrees(x)弧度值x转换为角度值
radians(x)角度值x转换为弧度值
数学常量描述
math.piπ
math.ee

使用Python数学模块,需要在程序第一行导入:

import math

即使导入了math包,在代码中,数学模块中的函数前也必须显式说明math.function(),不能省略math.。此与C++和Java不同。

3.3 字符和字符串

Python处理字符和字符串的方式是一样的。字符串必须被括在一对单引号('')或者双引号("")里。==Python没有字符数据类型==。一个字符的字符串代表一个字符。不同于C++。习惯上,使用双引号括住多个字符构成字符串,使用单引号括住单个字符构成单个字符。(仅为习惯,不是语法规则)

3.3.1 ASCII码

任何小写字母的ASCII码与它对应的大写字母的ASCII码的差值都是32。

3.3.2 Unicode码

Unicode码以\u开始,后面紧跟四个十六进制数字。从\u0000到\uFFFF

3.3.3 函数ord和chr

ord(char)返回char的ASCII码;chr(ASCII)返回该ASCII码对应的字符。

3.3.4 转义字符序列

\和其后紧接着的字母或数字组合构成的特殊符号称为转义字符序列。转义字符序列仅代表一个字符!

转义字符序列名称数值
\b退格符8
\t制表符9
\n换行符10
\f换页符12
\r回车符13
\\反斜线92
\'单引号39
\"双引号34
3.3.5 不换行打印

使用print()函数时,它会自动打印一个换行符。若不想让它自动换行,可使用下列代码:

print(item, end = "anyendingstring")

end=anyendingstring说明print函数的输出可以以任何字符或字符串结尾,当anyendingstring为空('')时,即为仅输出item且不自动换行。print(item)等价于print(item, end = '\n')

3.3.6 函数str

str()函数可以将一个数字转换成一个字符串。

3.3.7 字符串连接操作

运算符+可以对两个数字做加法,也可以用来连接两个字符串。”string1” + “string2” + “string3”。(运算符重载)

message = "Welcome " + "to " + "Python"
print(message)

输出:

Welcome to Python

运算符+=也能用来连接字符串。

message = "Welcome to Python"
message += " and Python is fun"
print(message)

输出:

Welcome to Python and Python is fun
3.3.8 从控制台读取字符串

为了从控制台读取一个字符串,可以使用input()函数。

3.4 实例研究:数量最小的硬币

3.5 对象和方法简介

在Python中,所有的数据(包括数字和字符串)实际都是对象。同一类型的对象都有相同的类型。可已使用id()函数和type()函数来获取关于对象的一些信息。

当执行程序的时候,Python会自动为对象的id赋一个独特的整数。在程序的执行过程中,对象的id不会改变。然而,每当执行程序时,Python都可能会赋一个不同的id。Python按照对象的值决定对象的类型。

在Python中,一个对象的类型由类决定。类(class)和类型(type)是一样的意思。变量实际上是一个对象的引用。n = 3是将3赋值给了n,实际上是将3赋值给了一个int对象,这个对象是由变量n引用的。

注意,此处于C有重大区别。Python在执行n=3语句时,先根据值3在内存中生成了一个整型对象,同时,赋予该对象一个id。之后,将变量n指向该id。如果此时继续执行n=4语句,则根据值4,在内存中另外开辟一块空间,生成另一个整型对象,同时,赋予该对象一个新id。之后,让变量n指向此新id,==不再继续指向存储值3的内存位置了==。

你可以在一个对象上执行操作。操作是用函数定义的。Python中对象所用的函数被称为方法。方法只能从一个特定的对象里调用。一个对象调用方法的语法就是object.method()。对于字符串类型的对象可调用的常用方法有:返回小写字符串lower(),返回大写字符串upper(),移除字符串两端空白strip()。空白包含:''\t\f\r\n

3.6 格式化数字和字符串

可以使用函数format(item, format-specifier)返回格式化的字符串。item是数字或者字符串,而format-specifier指定条目item的格式。此函数返回一个字符串。

3.6.1 格式化浮点数

如果条目item是一个浮点值,可以用标识符以“width.*precision*f”的形式给出格式的宽度和精确度。宽度width指定得到的字符串的宽度,精确度precision指定小数点后数字的个数,转换码f为浮点数设定格式。

例如:

print(format(57.4, "10.2f"))

显示:

·····57.47

·····代表五个空格。10表示总体输出宽度是10个字符宽度(含小数点的1个字符宽度),2表示小数点后保留两位(四舍五入)。这样,输出结果为在小数点前有7字符宽度,小数点占1字符宽度,小数点后有2字符宽度。如果在小数点前的数字个数小于7个,则在数字前插入相应数量的空格;如果小数点前的数字个数大于7个,则数字的宽度将会==自动增加==。可以省略宽度width(这样,width默认为0),宽度就会根据格式化这个数所需的宽度==自动设置==。

3.6.2 用科学记数法格式化

将转换码f变成e,数字将被格式化为科学记数法。科学记数法的例如:

print(format(57.467657, "10.2e"))

显示:

··5.75e+01

··代表两个空格。注意,科学计数法在e后默认有+/-号,其后用两位数表示幂,所以,e,+,0各占一个字符宽度。

3.6.3 格式化成百分数

可以使用转换码%将一个数字格式化为百分数。例如:

print(format(0.53457, "10.2%"))

显示:

····53.46%

%占一个字符宽度。

3.6.4 调整格式

在默认情况下,一个数的格式是右对齐的。可以将符号“<”放在格式说明符里指定得到的字符串是以指定的宽度左对齐的。(相对的,右对齐符号是“>”)对齐符号必须放在格式说明符最左侧。例如:

print(format(57.467657, "10.2f"))
print(format(57.467657, "<10.2f"))

显示

·····57.47
57.47·····

·····代表五个字符宽度。

3.6.5 格式化整数
转换码含义
d十进制整数
x十六进制整数
o八进制整数
b二进制整数
3.6.6 格式化字符串

可以用转换码s将一个字符串格式化为一个指定宽度的字符串。例如:

print(format("Welcome to Python", "20s"))

显示:

Welcome to Python···

格式说明符20s指定字符串被格式化为二十个字符宽度以内的字符串。默认情况下,字符串是左对齐的。在格式符里加入“>”符号可将字符串右对齐。如果字符串比指定的宽度长,宽度将自动增加到字符串的宽度。

3.7 绘制各种图形

当创建一个Turtle对象时,他的位置被设定在 (0,0) 处——窗口的中心,而且它的方向被设置为向右。

Turtle笔的绘图状态的方法

方法描述
turtle.pendown()将笔向下拉——移动的时候绘制
turtle.penup()将笔向上拉——移动的时候不绘制
turtle.pensize(width)将线的粗细设定为指定宽度

Turtle运动的方法

方法描述
turtle.forward(d)将Turtle朝着Turtle指定的方向向前移动指定距离
turtle.backward(d)将Turtle朝着Turtle指定的反方向向后移动指定距离,Turtle的方向不改变
turtle.right(angle)将Turtle向右转动指定角度
turtle.left(angle)将Turtle向左转动指定角度
turtle.goto(x,y)将Turtle移动到一个绝对位置
turtle.setx(x)将Turtle的x坐标移动到指定位置
turtle.sety(y)将Turtle的y坐标移动到指定位置
turtle.setheading(angle)将Turtle的方向设定为制定角度。
turtle.home()将Turtle移动到起点 (0,0) 和向东
turtle.circle(r,ext,step)绘制一个指定半径、范围和阶数的圆。其中,r是必要参数,ext和step是可选参数
turtle.dot(diameter,color)绘制一个指定直径和颜色的圆
turtle.undo()取消(反复)最后一个图操作
turtle.speed(s)设置Turtle的速度为一个在1到10之间的整数,10最大

3.8 绘制带颜色和字体的图形

Turtle笔的颜色、填充和绘制方法

方法描述
turtle.color(c)设置笔的颜色
turtle.fillcolor(c)设置笔填充颜色
turtle.begin_fill()在填充图形前,访问这个方法
turtle.end_fill()在最后调用begin_fill之前填充绘制的图形
turtle.filling()返回填充状态:True代表填充,False代表没有填充
turtle.clear()清除窗口,turtle的状态和位置不受影响
turtle.reset()清除窗口,将状态和位置复位为初始默认值
turtle.screensize(w,h)设置画布的宽度和高度
turtle.hideturtle()隐藏turtle
turtle.showturtle()显示turtle
turtle.isvisible()如果turtle可见,返回True
turtle.write(s,font=("Arial", 8, "normal"))在turtle位置编写字符串s,字体是由字体名、字体大小和字体类型三部分组成1

  1. turtle.penup()状态下,turtle.write(s,font=("Arial", 8, "normal"))仍然可以使用。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值