内容正文:
第2章 Python语言基础
2.1 基本数据类型
2.2 变量
2.3 运算符与表达式
2.4 输入与输出
2.5 内置函数
2.6 常用模块
2.1 基本数据类型
2.1.1 数值型
计算机处理数据时需要用合适的数据类型存储数据。Python中的数值类型有如下三类:
整型(int):用int表示整数类型,python的整型不限大小。
例如 x = 2**1000 (2的1000次方)
浮点型(float):即数学中的实数,浮点类型用float表示。
例如 y = 1.5
复数型(complex):复数是由实数部分和虚数部分构成的数,表示为x+yj,其中x是实数部分(实部),y是虚数部分(虚部),j为虚数单位。例如 z=1+2j ; p= -1j
Python中变量不用事先定义,在赋值的同时系统会根据值的类型决定变量的类型。
2
2.1 基本数据类型
使用复数类型时需注意:
(1)虚部单位必须用j或者J表示,和数学中惯例用i表示虚部不同;
(2)虚部不能单独存在( p= -j 错误,可写为 p=-1j)。
x = 10 # 整型
y = 3.14 # 浮点型
z = 1+2j # 复数型
type(x), type(y), type(z) # 用type()函数测试变量的数据类型
Out: (int, float, complex) # 分别为整型、浮点型、复数型
2.1 基本数据类型
2.1.2 逻辑型
布尔型(bool)也称逻辑型,用于表示逻辑真假值。逻辑值在程序中用于条件判断,它只有“真”和“假”两个取值。“真”用True表示,“假”用False表示。
x=10; x>5 # 结果为True
y = False # 注意大小写,不能写为 false
type(y) # bool型
y + 1 # 结果为1
逻辑型也被视为整型的子类,True和False对应整数1和0。因此“False + 1”是合法的计算,结果为1。
Python中0或空集(空列表、空元组等)对应的逻辑值都是False.
2.1 基本数据类型
2.1.3 字符串
Python采用字符串表示和存储文本。字符串用成对的单引号(')、双引号(")或者三引号('''或""")界定,其中单引号和双引号用于单行文本,三引号通常用作界定多行文本。
例:下面都是内容为"Python程序设计"的字符串。
'Python程序设计' # 单引号定界符
Out: 'Python程序设计'
"Python程序设计" # 双引号定界符
Out: 'Python程序设计'
"I'm a student" # 双引号中可包含单引号
' 单引号中也可包含"双引号'
2.1 基本数据类型
1. 转义字符:一些有特殊含义且难以用一般方式表达的字符,例如回车符、换行符等。“\特殊字符”表达转义。
转义字符 描述
\(行尾) 续行符
\\ 反斜杠符号
\' 单引号
\" 双引号
\a 响铃
\b 退格(Backspace)
\000 空
换行
\v 纵向制表符
\t 横向制表符
\r 回车
\f 换页
\0yy 八进制数,yy代表八进制数,例如\012表示十进制的10
\xyy 十六进制数,yy代表十六进制数,例如\x1a表示十进制的26
print('a\tb\tc\t
xyz') # \t 制表符,
换行符。输出如下:
2.1 基本数据类型
2. 多行字符串
Python使用三引号作多行字符串的界定符,也可在字符串的行尾用续行符(\)来实现多行字符串。
例:包含了3行的字符串
In: '''Python
程序
设计'''
Out: 'Python
程序
设计'
例:续行符'\'实现的多行字符串
In: 'Python\
程序\
设计'
Out: 'Python程序设计'
2.1 基本数据类型
3. 字符串格式化
字符串格式化将数据按某种格式要求(如长度、类型等)转为字符串。主要有“%”、“format”和“f-string”三种转换方法。
x=3.457; y=10
'x=%.2f y=%d' % (x, y) # %格式,旧格式,不推荐使用
Out: 'x=3.46 y=10'
'x={:.2f} y={}'.format(x,y) # format格式
Out: 'x=3.46 y=10'
f'x={x:.2f} y={y}' # f-string格式,推荐使用
Out: 'x=3.46 y=10'
2.1 基本数据类型
(1)%格式 (旧格式,不推荐使用)
%充当占位符,用后面的实际数据替换前面的%
格式为: %[flag] [width] [.precision] type
flag:对齐方式,可省略, 默认右对齐,'-' 左对齐
width:字符串宽度,可省略;
.precision:数值型数据保留的小数位数,可省略;
type:格式类型符,不可省略,详见下表
'%5d' % 2 # 指定5位宽, d整数类型, 默认右对齐
Out: ' 2' # 前面补4个空格,共5位字符宽
'%-5d' % 2 # '-'左对齐
Out: '2 ' # 后面补4个空格
'%05d ' % 2 # 右对齐且前面补0
Out:'00002'
2.1 基本数据类型
%的格式符type
符 号 说 明
%c 格式化字符及其ASCII码
%s 格式化字符串
%d 格式化整数
%o 格式化无符号八进制数
%x 格式化无符号十六进制数
%X 格式化无符号十六进制数(大写)
%f 小数,可指定小数点后的精度
%e 用科学计数法格式表示
%g 根据值的大小决定使用%f或%e
【例】使用%格式化字符串
'%-10d %d' % (12, 34.56) # 此行有两个数据, 要括起来
Out: '12 34' # 第0个数据左对齐(10位宽),第1个数据%d取整
'%f' % 3.14 # 浮点数格式
Out: '3.140000'
'%6.2f' % 3.1415927 # 指定宽度为6,小数部分2位
Out: ' 3.14'
2.1 基本数据类型
(2)format格式
'{}'充当占位符,用后面的实际数据替换。
格式为: '{:格式字符串}'.format(参数)
格式字符串:可省略,冒号开头,格式符和%的格式符类似参数:匹配替换的内容
r = 4.5
s = 'r={} , area={:.2f}'.format(r, 3.14*r*r) # {}中不能有多余的空格
print(s)
Out: 'r=4.5 , area=63.59'
11
2.1 基本数据类型
{}格式符的语法为:
[fill] [align] [sign] [width] [,] [.precision] [type]
fill:填充的字符,可省略,默认为空格;
align:对齐方式,^、<、>分别是居中、左对齐、右对齐,可省略,默认右对齐;
sign:设置数值型数据前的符号,+表示在正数前加正号,可省略;
width:设置格式化后的字符串宽度,可省略;
逗号(,):为数字添加千位分隔符,可省略;
.precision:数值型数据保留的小数位数,可省略;
type:设置格式化类型,可省略
# *填充字符,>右对齐, 6宽度, .2小数位 , f 浮点数格式
'{:*>6.2f}'.format(3.1415926)
Out: '**3.14'
12
2.1 基本数据类型
format()的格式化类型符
符 号 说 明
b 格式化二进制数
c 格式化字符及其ASCII码
s 格式化字符串
d 格式化整数
o 格式化无符号八进制数
x 格式化无符号十六进制数
X 格式化无符号十六进制数(大写)
f 格式化浮点数,可指定小数点后的精度
e 用科学计数法表示
g 根据值的大小决定使用f 或 e
% 浮点数按百分比格式输出
13
2.1 基本数据类型
【例】使用format格式化字符串, 注意序号匹配
# 长度为10,使用二进制数值,内容居中对齐
'{:^10b}'.format(12)
Out: ' 1100 '
# 第0个数用百分比,第1个数用科学计算法,均保留2位小数
'{0:.2%}和{1:.2e}'.format(0.1234, 123456)
Out: '12.34%和1.23e+05'
x=3.1415926
'pi={0:.0f} pi2={0:.2f} pi4={0:.4f}'.format(x) # x对应3个{}
Out: 'pi=3 pi2=3.14 pi4=3.1416'
'name={1} age={0}'.format(20, 'john')
Out: 'name=john age=20'
14
2.1 基本数据类型
(3)f-string格式 (推荐使用)
在格式字符串前加上f前缀,{}内可包含:变量、表达式、函数、格式符等,{}内的表达式可计算。
name = 'Python程序设计'
price = 50.0
f'书名:{name},单价:{price}' # {}内可直接用变量名
Out: '书名:Python程序设计,单价:50.0'
f'两本书价格 {price*2}' # f格式串支持{}内的运算
Out: '两本书价格 100.0'
# 将数值12格式化为长度为10的二进制数值,^居中对齐
f'{12:^10b}'
Out: ' 1100 '
15
$$