2020-06-11

第三章 基本数据类型

3.1 模块

模块是一种程序的组织形式。它将彼此具有特定关系的一组Python可执行代码、函数或类组织到一个独立文件中,可以供其它程序使用。

模块可以分为标准模块和第三方模块:

  • 标准模块:安装好Python后,本身就带有的模块被称为标准模块,也被称为Python的标准库。
  • 第三方模块:并不是Python的标准库,在使用import语句前必须提前安装到开发环境中。

模块导入的方式

这些模块下载到硬盘上,需要的时候存储到内存

(1)import 模块名

这种方法一次可以导入多个模块。但在使用模块中的类、方法、函数、常数等内容时,需要在它们前面加上模块名

>>> import math 
>>> math.pow(2,3)
8.0

(2)import moduleName1 as name2

>>> import math as a
>>> a.pow(2,3)
8.0

(3)from 模块名 import*

这种方法一次导入一个模块中的所欲内容。使用时不需要添加模块名为前缀

>>> from math import*
>>> pow(2,3)
8.0
>>> sqrt(9)
3.0

(4)from 模块名 import object1[,object2[...]]

这种方法一次导入一个模块中指定的内容,如某个函数。调用时不需要添加模块名为前缀。

>>> from math import pow,e
>>> e
2.718281828459045
>>> pow(2,3)
8.0

2.2 Python语法元素分析

2.2.3 命名与保留字

标识符命名规则:

  • 标识符由大小写字母、数字、下划线、汉字组成
  • 变量名不能以数字开头
  • 变量名是区分大小写的
  • 变量名不能有空格以及标点符号(括号、引号、逗号、斜线、反斜线、冒号、句号、问号等)

保留字,也称关键字,指被编程语言内部定义并保留使用的标识符。

and, elif, import, raise, as, else, in, return, assert, except, is, try, break, finally, lambda, while, class, for, nonlocal, with, continue, from, not, yield, def, global, or, True, del, if, pass, False, None

2.2.5 赋值语句

赋值语句的格式:<变量>=<表达式>

赋值语句的执行过程是:首先把等号右边表达式的值计算出来,然后在内存中寻找一个位置把值存放进去,最后创建变量并指向这个内存地址。

x=1
y=x
x=3

y是多少? y=1

赋值语句:赋值语句的几种不同用法

myVar="Hello World!"
myVar=3.1416
myVar=3+3*5
myVar=myVar+1
x,y=1,2
x=y=3

例:将变量x和y交换

  • 采用单个赋值,需要3行语句:

即通过一个临时变量t缓存x的原始值,然后将y值赋给x,再将x的原始值通过t赋值给y

>>> t=x
>>> x=y
>>> y=t
  • 采用同步赋值语句,仅需要一行代码:

    >>>x,y=y,x
    

type函数和isinstance函数

1.type函数

  • 功能:type()函数查看变量类型

  • 格式:type(变量)

2.isinstance函数

  • 功能:isinstance函数判断变量是否为指定的类型

  • 格式:isinstance(变量,类型)

>>> a=100
>>> type(a)
>>> isinstance(a,int)

input()函数

  • 功能:input()函数执行时在屏幕上显示提示字符串,用户输入完毕后,并将用户输入都以文本形式返回。

  • 格式:<变量>=input(<提示性文字>)

    >>> x=input("请输入x值:")
    请输入x值:100
    >>> x
    '100'   # 字符类型
    

    input的所有值都是以文本形式表达的

eval()函数

  • 功能:eval()函数用于执行一个字符串表达式,并返回表达式的值

  • 格式:eval(<字符串>)

    >>> x =4 
    >>> "3*x"
    '3*x'
    >>> eval('3*x')
    12
    >>> eval('pow(x,2)')
    16
    >>> eval("'3*x'")
    '3*x'
    

print()函数

  • 功能:print()函数用来输出字符信息。print()函数可以输出各种类型变量的值

  • 常用格式:

    1.print(): 用于输出一个空白行

    2.print(<表达式>): 在屏幕显示表达式的值

    3.print(<表达式1>, <表达式2>, ..., <表达式n>): 将各表达式的值从左到右显示在同一行

[例]

print("Hello")
print()         # 输出一个空白行
print(3+2,1+2,"hello")  
print("here")  
print(3+2,1+2,"hello",end=";")  # 用分号作为分隔符,把回车符修改掉打在同一行
print("here")

程序结果:

Hello

5 3 hello
here
5 3 hello;her

[例]

a ="有理想"
print(a,"有担当")
print()
print("有本领",end="")
print("青年一代")

运行结果:

有理想 有担当

有本领青年一代

思考题:#TempConvert_1.py

  • 让用户输入摄氏度C,输入对应的华氏度F

  • 公示:F = C *1.8 + 32

  • 样例:

    请输入摄氏度:25
    25对应的华摄度为:77.0
    
C = eval(input("请输入摄氏度:"))
F = C * 1.8 + 32
print(C,"对应的华摄度为:",F)

程序结果:

请输入摄氏度:25
25 对应的华摄度为: 77.0

3.1 数字类型

3.1.1 数字类型

Python语言包括三种数字类型

  • 整数类型

  • 浮点数类型

  • 复数类型

3.1.2 整数类型 int

  • Python支持任意大的数字,具体可以大到什么程度仅受内存大小的限制
  • 十进制整数:0、-1、9、123
  • 十六进制整数,必须以0x、OX开头:0x10、0xfa、0xabcdef
  • 八进制整数,必须以0o、0O开头:0o35、0o11
  • 二进制整数,必须以0b、0B开头:0b101、0b100

浮点数类型 float

  • 浮点数就是包含小数点的数
  • Python语言中浮点数的数值范围存在限制,小数精度也存在限制。这种限制与在不同计算机系统有关。
  • 浮点数示例:15.0、0.37、-11.2、2.3e2

3.1.4 复数类型 complex

  • Python中的复数由两部分组成:实部和虚部

    复数的形式为:实部+虚部j

  • 复数示例:2+3j、-0.5-0.9j

    >>> a=2+3j
    >>> a.real # 查看复数实部
    2.0
    >>> a.imag # 查看复数虚部
    3.0
    >>> a.conjugate() # 共轭复数
    (2-3j)
    

补充 其他数据类型

布尔类型 bool

  • 布尔类型是用来表示
3>2
True
2>3
False

字符串类型str

  • 字符串类型使用单引号、双引号、三单引号、三双引号作为定界符来表示字符串,并且不同的定界符之间可以互相嵌套
  • 字符串实例:
    • 'abc'、'123'、"Python"、'中国'
    • 空串表示为''或""

三引号'''或"""表示的字符串可以换行,支持排版较为复杂的字符串;三引号还可以在程序中表示较长的注释。

[例]

print(
    """ 
      静夜思
    床前明月光,
    疑是地上霜。
    举头望明月,
    低头思故乡。  
    """
)

程序结果:

      静夜思
    床前明月光,
    疑是地上霜。
    举头望明月,
    低头思故乡。 

列表 list

  • Python中列表和字符串一样,也是一种序列类型,列表是一种数据集合
  • 列表用[ ]来表示,列表内容以逗号进行分隔
  • 列表示例:[1,2,3,4]、[3,4,5,"abc"]、["one","two","three","four"]

元组 tuple

  • 元组用()来表示,元组内容以逗号进行分隔。
  • 元组的内容不能修改
  • 示例:(1,2,3,4)、(3,4.5,"abc")

字典 dict

  • 字典是Python中唯一内建的映射类型,可用来实现通过数据查找关联数据的功能。
  • 字典是键值对的无序集合。字典中的每一个元素都包含两部分:键和值
  • 字典格式:{键:值, 键:值, ...}
  • 字典示例:{'CN':'China', 'AU':'Australia','DE':'Germany'}

集合set

  • 集合是一组对象的集合,对象可以是各种类型

  • 集合又各种类型元素组成,但元素之间没有任何顺序,并且元素都不重复。

  • 集合用大括号{}来表示

  • 集合示例:{'train','car','ship','bus'}

3.2 数字类型的操作

要点:Python解释器为数字类型提供数值运算操作符、数值运算函数、类型转换函数等操作方法

3.2.1 内置的数值运算操作符

操作符 描述
x+y x与y之和
x-y x与y之差
x*y x与y之积
x/y x与y之商
x//y x与y之整数商,向下取整
x%y x与y之商的余数
-x x的负值,即:x*(-1)
+x x本身
x**y x的y次幂x^y,等价于pow(3,2)
  • +运算符还可以用于列表、元组、字符串的连接,但不支持不同类型的对象之间相加或连接。

    >>> [1,2,3]+[4,5,6]   # 连接两个列表
    [1, 2, 3, 4, 5, 6]
    >>> (1,2,3)+(4,)     # 连接两个元组
    (1, 2, 3, 4)
    >>> 'ab'+'12'        # 连接两个字符串
    'ab12'
    
  • *运算符还可以用于列表、元组、字符串类型与整数的乘法,表示序列元素的重复,生成新的序列对象。

    >>> [1,2,3]*3
    [1, 2, 3, 1, 2, 3, 1, 2, 3]
    >>> (1,2,3)*3
    (1, 2, 3, 1, 2, 3, 1, 2, 3)
    >>> 'abc'*3
    'abcabcabc'
    
    
  • Python还有赋值运算符+=、-=、*=、/=、//=、**=、%=等大量复合赋值运算符。

    例如:x+=3等价于x=x+3

练习题:

1.语句a=(3/4)+3%2;运行后,a的值为( )。a=0.75+1=1.75

2.若x=3.5;z=8x+z%3/4的值为( ). 3.5+(8%3)/4=3.5+8%3/4=3.5+2/4=3.5+0.5=4.0

3.设f=g=2.0,使f为4.0的表达式是( ). D

A. f/=g*10 # f=f/(g*10)=2/20=0.1

B. f-=g+2 # f=f-g-2=-2

C. f*=g-6 # f=f*(g-6)=2 *(2-6)=-8

D. f+=g # f= f+g=4

  1. x=1,x*=3+5**2的值为( ) x=x(3+25)=1*28=28

关系运算操作符 补充

关系运算符根据表达式的值得真假返回布尔值:

<(小于)、> (大于)、<= (小于等于)、 >=(大于等于)、 ==(等于)、!= (等于)

Python关系运算符最大的特点是可以连用。如5>2<7

>>> a = 3
>>> a == 2
False
>>> 1<a<5    # 等价于1<a 且 a<5
True
>>> 5<a>1
False

思考

1.让用户输入一个值赋值给x,判断x是否为’男‘

2.让用户输入一个值赋值给x,判断x是否在[0,100]间

>>> x=input("")
>? 男
>>> x == "男"
True
>>> x=int(input())
>? 45
>>> 0<=x<=100
True

逻辑运算符 补充

逻辑运算符将表达式连接在一起,一般会返回布尔值

and(与):两边都是真,结果为真
or(或):只要一个为真,结果为真
not(非):取反

>>> x = False
>>> y = True
>>> x or y
True
>>> not (x or y)
False
>>> not x or y
True
>>> i = 7
>>> j = 8
>>> i>=j and i<j
False
>>> a=5; b=2; c=1
>>> a-b>2 or b ==c
True

习题

1.若希望当a的值为奇数时,表达式的值为“真”,a的值为偶数时,表达式的值为“假”。则不能满足要求的表达式是( ) ==C==

A. a%2 ==1

B. not a%2 == 0

C. not a%2 # not 8%2 = True not 9%2 =False

D. a%2

2.判断t是否为闰年。闰年的条件:年份t能被400整除,或者能被4整除但不能被100整除。

t = eval(input("请输入年份:"))
if t%400==0 or t%4==0 and t%100!=0:
    print(str(t)+"年是闰年")
else:
    print(str(t)+"年不是闰年")

and和or具有惰性求值或逻辑短路的特点,当连接多个表达式时只计算必须要计算的值

>>> 3<5 or a>3  # a没有定义
True
>>> 3>5 or a>3 # a没有定义
Traceback (most recent call last):
  File "<input>", line 1, in <module>
NameError: name 'a' is not defined

3.2.4 位运算符

位运算符只能用于整数,其内部执行过程为:首先将整数转换为二进制数,然后右对齐,必要的时候左侧补0,按位进行运算,最后再把计算结果转换为十进制数字返回。

运算符 说明
& 1&1=1、1&0=0&1=0&0=0
`` `` 1|1=1|0=1|1=1、0|0=0
^ 1 ^ 1= 0^0=0、1 ^ 0=0^1=1
<< 每左移一位相当于乘以2
>> 每右移一位相当于整除以2
>>> bin(3)   # 3的二进制
'0b11'
>>> 3 << 2   # 把3左移2位
12
>>> bin(12)   
'0b1100'
>>> bin(7)   # 7的二进制
'0b111'
>>> 3 & 7    # 011&111=011
3
>>> bin(8)
'0b1000'
>>> 3|8  # 位或运算
11
>>> bin(11)     # 11 | 1000= 1011
'0b1011'
>>> bin(5)   # 5的二进制
'0b101'
>>> 3^5
6
>>> bin(6)   # 11^101=110
'0b110'

3.2.2 内置的数值运算函数

Python解释器提供了一些内置函数,在这些内置函数之中,有6个函数与数值运算相关

函数 描述
abs(x) x的绝对值
divmod(x,y) (x//y,x%y)求商和余数,输出为二元组形式(也称为元组类型)
pow(x,y[,z]) (x**y)%z 求幂,[..]表示该参数可以省略,即pow(x,y),它与x**y相同
round(x[,ndigits]) 对x四舍五入,保留ndigits位小数。round(x)返回四舍五入的整数值
max(x1,x2,...,xn) 求最大值,n没有限定
min(x1,x2,...,xn) 求最小值,n没有限定
>>> x=-100
>>> y=abs(x)
>>> y
100
>>> x=10
>>> y=3
>>> z=divmod(x,y)
>>> z
(3, 1)
>>> x=10
>>> y=2
>>> z=3
>>> m=pow(x,y,z)
>>> m
1
>>> x = 3.14159
>>> round(x,2)
3.14
>>> a = [3,0,5]
>>> max(a)
5
>>> min(a)
0
>>> sum(a)
8

3.2.3 内置的数字类型转换函数

函数 描述
int(x) 将x转换为整数,x可以是浮点数或字符串
float(x) 将x转换为浮点数,x是整数或字符串
complex(re[,im]) 生成一个复数,实部为re,虚部为im,re可以是整数、浮点数或字串符,im可以是整数或浮点数但不能为字符串
>>> int("123")
123
>>> int(0b10)
2
>>> int(0o10)
8
>>> int(0x10)
16
>>> int(-2.34)
-2
>>> float(3)     # 把整数转换为实数
3.0
>>> float('3.5')  # 把数字字符串转换为实数
3.5
>>> complex(3)    # 指定实部
(3+0j)
>>> complex(3,5)  # 指定实部和虚部
(3+5j)

map()是接收一个函数f依次映射到序列或迭代对象上的每个元素,并返回一个map对象。格式:

map(函数f,list数据)

>>> x,y=map(int,["45","56"])
>>> x,y
(45, 56)
>>> a,b=map(round,[3.4546,4.6757],(3,2))
>>> a,b
(3.455, 4.68)
>>> round(3.4546,3)
3.455
>>> round(4.6757,2)
4.68

思考

Exer1:用户输入一个三位自然数,计算并输出其百位、十位和个位上的数字。

x = int(input("请输入一个三位自然数:"))
a = x//100
b = (x-a*100)//10
c = x-a*100-b*10
print("百位数字为:"+str(a),"十位数字为:"+str(b),"个位数字为:"+str(c))

程序结果:

请输入一个三位自然数:324
百位数字为:3 十位数字为:2 个位数字为:4
x=int(input())
a=x//100
b=x//10%10
c=x%10
print(a,b,c)
i=input("请输入一个三位自然数:")
print("百位数字为"+i[0])
print("十位数字为"+i[1])
print("个位数字为"+i[2])
x=int(input('请输入一个三位数:'))
a,b=divmod(x,100)
b,c=divmod(b,10)
print(a,b,c)
x=input("请输入一个三位数:")
a,b,c=map(int,x)
print(a,b,c)

3.3 模块1:math库的使用

3.3.1 math库概述

  • math库是Python提供的内置数学类函数库
  • math库不支持复数类型
  • math库一共提供了4个数学常数和44个函数。
  • 44个函数共分为4类:
    • 16个数值表示函数
    • 8个幂对数函数
    • 16个三角对数函数
    • 4个高等特殊函数

3.3.2 math库解析

math库包括4个数学常数

常数 数学表示 描述
math.pi \pi 圆周率,3.141592653589793
math.e e 自然对数,2.718281828459045
math.inf \infty 正无穷大,负无穷大为-math.inf
math.nan 非浮点数标记,NaN(Not a Number)

3.4 实例3:天天向上的力量

例:天天向上

一年365天,以第1天的能力值为基数,记为1.0,当好好学习时能力值相比前一天提高1%,当没有学习时能力值相比前一天下降1%。每天努力和每天放任,一年下来的能力值相差多少呢?

根据题目,天天向上的力量是(1+0.001)^{365},放任或向下的力量是(1-0.001)^{365}

import math
dayup = math.pow((1.0+0.001), 365)    # 提高0.001
daydown = math.pow((1.0-0.001), 365)  # 放任0.001
print("向上:{:.2f},向下:{:.2f}.".format(dayup,daydown))

程序结果:

向上:1.44,向下:0.69.

思考:

已知三角形的两边长及其夹角,求第三边长

公式:c=\sqrt{a^2+b^2-2ab\cos\theta}

import math
a=int(input("请输入一条边的长度:"))
b=int(input("请再输入另一条边的长度:"))
x=int(input("请输入上述两条边的夹角度数(角度值):"))
x=math.radians(x)
j=math.cos(x)

c=(a**2+b**2-2*a*b*j)**0.5
print(c)

结果:

请输入一条边的长度:3
请再输入另一条边的长度:4
请输入上述两条边的夹角度数(角度值):90
5.0

3.5 字符串类型及其操作

  • 字符串是用双引号“”或者单引号''括起来的一个或多个字符
  • 字符串对象是不可变的。字符串对象提供的涉及到字符串”修改“的方法都是返回修改后的新字符串,并不对原始字符串做任何修改。

3.5.1 字符串类型的表示

字符串是一个字符序列:字符串最左端位置标记为0,依次增加。字符串中的编号叫做”索引“。

0 1 2 3 4 5 6 7 8 9 10
  • 单个索引辅助访问字符串中的特定位置

格式为:<string>[<索引>]

  • 切片,通过两个索引值返回一个子串。

格式为:<string>[<start>:<end>:step]

  • 这个子序列从索引start开始直到索引end结束,<u>但不包括end位置</u>。step代表步长。
>>> a='国无德不兴 人无德不立'
>>> a[2]
'德'
>>> x=8
>>> a[x-2]
'人'
>>> a[-7]
'兴'
>>> a[-11:-7]        
'国无德不'
>>> a[1:-1]
'无德不兴 人无德不'
>>> a[2:-2:2]
'德兴人德'

反斜杠字符(\)是一个特殊字符,在字符串中表示转义,即该字符与后面相邻的一个字符共同组成了新的含义。

\n:表示换行

\\:表示反斜杠

\':表示单引号

\"表示双引号

\b:退格,把光标移动到前一列位置

\f:换页符

\n:换行符

\r:回车

\v:垂直制表符

\ooo:3位八进制数对应的字符

\xhh:2位十六进制数对应的字符

\uhhhh:4位十六进制数表示的Unicode字符

\t:表示制表符(Tab)等。

>>> print("Python\n语言\t程序\t设计")
Python
语言  程序  设计
>>> print("c:\\now")
c:\now
>>> a= 'Let\'s go'
>>> print(a)
Let's go

3.5.3 基本的字符串操作符

字符串之间可以通过+或*进行连接

  • 加法操作(+)将两个字符串连接成为一个新的字符串

  • 乘法操作(*)生成一个由其本身字符串重复连接而成的字符串

    >>> "pine"+"apple"
    'pineapple'
    >>> 3*'pine'
    'pinepinepine'
    
操作符 描述
x in s 如果x是s的元素,返回True,否则返回False
x not in s 如果x不是s的元素,返回True,否则返回False
>>> c='cat,dog'
>>> "d" in c
True
>>> "z" in c
False
>>> "z" not in c
True

思考1:A="5"+"8" A的值是多少? ' 58'

思考2:name=”志存高远、脚踏实地“;name[5:]、name[0:-1]、name[:5]、name[0:-5]的值分别是多少?

>>> name="志存高远、脚踏实地"
>>> name[5:]
'脚踏实地'
>>> name[0:-1]
'志存高远、脚踏实'
>>> name[:5]
'志存高远、'
>>> name[0:-5]
'志存高远'

[例]获取星期字符串

程序读入一个表示星期几的数字(1~7),输出对应的星期字符串名称。例如,输入3,返回“星期三”。代码如下:

weekstr = "星期一星期二星期三星期四星期五星期六星期日"
weekid=eval(input("请输入星期数字(1-7):"))
pos = (weekid-1)*3
print(weekstr[pos:pos+3])

程序结果:

请输入星期数字(1-7):3
星期三

3.5.3 内置的字符串处理函数

操作 含义
len(x) 返回字符串x的长度,也可返回其他组合数据类型元素个数
str(x) 返回任意类型x所对应的字符串形式
chr(x) Unicode码对应的单个字符
ord(x) 返回单字符表示的Unicode编码
hex(x) 返回整数x对应十六进制数的小写形式字符串
Oct(x) 返回整数x对应八进制的小写形式字符串
bin(x) 整数转换为二进制形式字符串
>>> len("pine")
4
>>> len("祖国,你好!")
6
>>> bin(16)
'0b10000'
>>> oct(16)
'0o20'
>>> hex(16)
'0x10'
>>> ord('A')
65
>>> chr(65)
'A'
>>> chr(ord('A')+1)
'B'

3.5.4 内置的字符串处理方法

操作 含义
str.upper() 字符串中字母大写
str.lower() 字符串中字母小写
str.islower() 判断字符串是否都是小写,是时,返回True,否则False
str.isnumeric() 判断字符串是否都是数字,是时,返回True,否则False
str.isdigit() 同str.isnumeric()
str.isupper() 判断字符串是否都是大写,是时,返回True,否则False
str.isspace() 当str所有字符都是空格,返回True,否则返回False
str.replace(old,new[,count]) 返回字符串str的副本,所有old子串被替换为new,如果count给出,则前count次old出现被替换。查找字符串所有匹配项并替换,返回字符串。
str.split(sep=None,maxsplit=-1) 返回一个列表,由str根据sub子串出现的次数。用来将字符串分隔成序列。如果不指定分隔符,则空格、换行符、制表符等都将被认为是分隔符,把连续多个空白字符看作一个分隔符。
str.join(iterable) 用来连接元组、列表等中的元素,注意其元素一定要是字符串。返回一个新字符串,由组合数据类型iterable变量的每个元素组成,元素间用str分隔。
str.find() 可以在一个较长的字符串中查找子串,并返回子串所在位置的左端索引位置,如果没有找到则返回-1
str.strip([chars]) 去掉字符串两侧的空格,并返回字符串。返回字符串str的副本,在其左侧和右侧去掉chars中列出的字符。
>>> a='Python'
>>> a.lower()
'python'
>>> a.upper()
'PYTHON'
>>> string = 'Python is a programming language.'
>>> string.replace('a','A')
'Python is A progrAmming lAnguAge.'
>>> string.split()
['Python', 'is', 'a', 'programming', 'language.']
>>> s="2017-10-31"
>>> s.split("-")
['2017', '10', '31']
>>> a=["1","2"]
>>> "t".join(a)   # "t"为连接符
'1t2'
>>> b=s.split("-")
>>> '/'.join(b)

>>> s="apple,peach,banana,peach,pear"
>>> s.find("peach")
6
>>> s.find("peach",7)  #从7位置字符开始往后找
19

>>> string = '   Python is a programming languages'
>>> string.strip()
'Python is a programming languages'

思考题:

>>>x='aaa bb c d e fff '
>>>b=','.join(x.split())
>>>b
结果为:
'aaa,bb,c,d,e, 'fff'
>>>b.replace("c",'cc').upper()
'AAA,BB,CC,D,E,FFF'

3.6 字符串类型的格式化

要点:字符串通过format()方法进行格式化

3.6.1 format()方法的基本使用

字符串format()方法的基本使用格式是:

<模板字符串>.format(<逗号分隔的参数>)

[图片上传失败...(image-163dc1-1591840470048)]

  • format方法:位置匹配

    • 不带编号,即“{}”:

      >>> '{} {}'.format('hello','world')
      'hello world'
      
  • 带数字编号,可调换顺序,即“{1}”、“{2}

    >>> '{0} {1} {0}'.format('hello','world')
    'hello world hello'
    
  • 带关键字,即“{a}”、“{tom}”:

    >>> '{a} {tom}'.format(a='hello',tom='world')
    'hello world'
    

3.6.2 format()方法的格式控制

format方法:格式转换

'{[位置匹配][:格式]}'.format()

格式 说明
b 输出整数的二进制
c 输出整数对应的Unicode字符
d 输出整数的十进制
o 输出整数的八进制
x 输出整数的小写十六进制
X 输出整数的大写十六进制
e 输出浮点数对应的小写字母e的指数形式
E 输出浮点数对应的大写字母E的指数形式
f 输出浮点数的标准浮点形式
% 输出浮点数的百分形式
m,n 控制输入的宽度,精度
千分位的分隔符
>>> '{:o}'.format(10)
'12'
>>> "Pi is {pi:5.2%}".format(pi=3.14159)
'Pi is 314.16%'
>>> "{:.3}".format(1/3)
'0.333'
>>> '{0:,%}'.format(1000/3)
'33,333.333333%'
格式 说明
< 左对齐
> 右对齐
^ 居中
>>> "Pi is {:#<10.2f}".format(3.1415)
'Pi is 3.14######'

思考

请写出下面的结果:

print('树立{0}命运{1}'.format('人类','共同体意识'))
print('2/3约等于{0:.2f}'.format(2/3))
print('{:+>10}'.format('守望相助'))
树立人类命运共同体意识
2/3约等于0.67
++++++守望相助
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。