1.整数数据类型(int)
整数,没有小数点的部分,包括正整数、负整数、0这些。
在Python中,存储整数的数据类型只有一种,那就是整数数据类型。
Python中的整型的取值范围是无限的!也就是说,整数具有无限的精度。
1.1 不同进制的表示
(1)使用十进制形式的整数时,不能以 0 (数字零)作为开头,除非这个数字本身就是 0
运行结果:
(2)八进制形式,由 0~7 共八个数字组成,以0o
或0O
开头(注意,第一个符号是数字 0,第二个符号是小写字母 o 或大写字母 O)
运行结果:
(3)二进制形式,由 0 和 1 两个数字组成,书写时以0b
或0B
开头(注意,第一个符号是数字 0,第二个符号是小写字母 b 或大写字母 B)
运行结果:
(4)十六进制形式,由 0-9 十个数字以及 A-F(或 a~f)六个字母组成,书写时以0x
或0X
开头(注意,第一个符号是数字 0,第二个符号是小写字母 x 或大写字母 X)
运行结果:
1.2 不同进制间的转换
二进制:bin()
八进制:oct()
十六进制:hex()
只需在对应括号内写入要转换的值即可,例:
运行结果:
1.3 数字分隔符
数字分隔符,在 Python 中使用下划线_
作为数字的分隔符,可以提高数字的可读性,且不会影响数字本身的值
运行结果:
2.浮点数据类型(flaot)
浮点类型必须带有小数部分
2.1 十进制表示形式
x = 12.0
y = 12.1
2.2 指数表示形式
Python 小数的指数表示形式,如下所示:
mEe 或 mee 等价于 m x Base^e
说明:
m 为尾数(Mantissa)部分,是一个十进制数;
e (最后那个 e )为指数(Exponent)部分,是一个十进制整数;
E 或 e (中间的 E 或 e)是固定的字符,可以是大写的或者小写的,用于分割尾数部分和指数部分。整个表达式等价于 a×10^n。
Base 为基,Base 等于10。
实例如下所示:
22.1E1 = 22.1 x 10^1 # 其中 22.1 是尾数,1 是指数。
44E-2 = 44 x 10^-2 # 44 是尾数,-2 是指数
注意事项:
只要写成指数的形式,就是小数。 即使最终值看起来像一个整数。如下所示:
>>> type(44E2)
<class 'float'>
3.字符串类型(str)
字符串是由 Unicode 码位构成的不可变序列。
简单理解,若干个字符(可以包含字母、标点、特殊符号、中文、日文等全世界的所有文字)的集合就是一个字符串。
字符串字面值有多种不同的写法,如下所示:
单引号: '允许包含有 "双" 引号'
。
双引号: "允许包含有 '单' 引号"
。
三重引号: '''三重单引号'''
,"""三重双引号"""
。使用三重引号的字符串可以跨越多行,其中所有的空白字符都将包含在该字符串字面值中。
3.1 字符串的定义
字符串是 Python 中最常用的数据类型。
我们一般使用引号来创建字符串。创建字符串很简单,只要为变量分配一个值即可。
str1 = 'hello world'
str2 = "hello world"
str3 = '''hello world'''
str4 = """hello world"""
print(str1) # <class 'str'>
print(str2) # <class 'str'>
print(str3) # <class 'str'>
print(str4) # <class 'str'>
运行结果:
使用单引号情况
str1 = 'I'm Yixiao'
运行结果:
说明:
字符串的定义代码出现了语法错误(SyntaxError)。
单引号在字符串定义中必须成对出现,而且Python解析器在解析代码时,会自动认为第一个单引号和最近的一个单引号是一对!
如果一定要在单引号中在放入一个单引号,必须使用反斜杠进行转义:
str1 = 'I\'m Yixiao'
print(str1)
或使用双引号:
print('_'*20)
str2 = "I'm Yixiao"
print(str2)
运行结果:
建议:在Python中,如果存在多个引号
-
① 单引号放在双引号中;
-
② 双引号放在单引号中。
3.2 字符串输入
在Python代码中,我们可以使用input()
方法来接收用户的输入信息。
注意:在Python中,input()方法返回的结果是一个字符串类型
的数据。
name = input('请输入您的姓名:') age = input('请输入您的年龄:') address = input('请输入您的住址:') print(name, age, address)
说明:
-
input()可以阻断当前正在执行的代码,让系统处于等待状态,直到用户输入完成。
-
input()方法接收到的所有数据,返回的数据类型都是字符串。
3.3 字符串的输出
3.3.1 普通输出
print(变量名称)
print(变量名称1, 变量名称2, 变量名称3)
3.3.2 格式化输出
(1) 百分号
name = input('请输入您的姓名:')
age = int(input('请输入您的年龄:'))
address = input('请输入您的住址:')
print('我的名字是%s,今年%d岁了,家里住在%s...' % (name, age, address))
(2)format方法
name = input('请输入您的姓名:')
age = input('请输入您的年龄:')
address = input('请输入您的住址:')
print('我的名字是{},今年{}岁了,家里住在{}...'.format(name, age, address))
(3)f形式
name = input('请输入您的姓名:')
age = input('请输入您的年龄:')
address = input('请输入您的住址:')
print(f'我的名字是{name},今年{age}岁了,家里住在{address}...')
延伸:
name = input('请输入您购买商品的名称:')
price = float(input('请输入您购买商品的价格:')) # 18.5
print(f'购买商品名称:{name},商品价格:{price:.2f}')
在Python的f-string中,:.2f
是一种格式化指令,用于控制浮点数的输出格式。
.
后面的数字2表示保留两位小数。f
表示浮点数。
因此,:.2f
将把浮点数格式化为保留两位小数的形式。
3.4 长字符串
由三个双引号"""
或者三个单引号'''
包围的字符串,被称为 Python 长字符串
。
简单理解,长字符串,就是可以直接换行(不用加反斜杠\
)书写的字符串。
当程序中有大段文本内容需要写成字符串时,建议使用长字符串形式,因为长字符串形式非常强大,可以在字符串中放置任何内容,包括单引号和双引号。
语法格式如下所示:
"""长字符串内容"""
'''长字符串内容'''
在讲 Python 注释时有讲到可以使用三个单引号或者三个双引号对多行内容进行注释,这其实就是 Python 的长字符串。
如果长字符串没有赋值给任何变量,那么这个长字符串就不会起到任何作用,和一段普通的文本无异,相当于注释(注意:Python 解释器并不会忽略长字符串,同样会按照语法解析,只不过长字符串没有实际作用)。
3.5 原始字符串
在普通字符串或者长字符串的开头加上 r
前缀,就变成了原始字符串。
在原始字符串中,反斜杠 \
不会被当作转义字符,所有的内容都会保持原来的样子。
在Python中,如果你想让一个字符串被解析为原始字符串,可以在字符串前加上一个小写的'r'。
这样,字符串内的所有字符就会被视为字面意义,而不会被转义。
这对于需要避免转义字符(如换行符\n
,制表符\t
等)的字符串非常有用。
语法格式如下所示:
str1 = r'原始字符串内容'
str2 = r"""原始字符串内容"""
举例如下所示:
str_demo = 'D:\Data\Tools\Python382\python.exe'
print(str_demo)
报错:SyntaxWarning: invalid escape sequence '\D'(无效转义序列 '\D')。
在Python字符串中,反斜杠\
是一个特殊字符,被用作转义字符。这意味着它被用来引入特殊字符序列。例如,\n
代表一个新行,\t
代表一个制表符等。
在你的代码中,你试图将一个包含文件路径的字符串赋值给str_demo
。这个字符串中的反斜杠\
被Python解释为转义字符,但\D
并不是一个有效的转义序列。
解决这个问题的方法有两种:
方法一:使用原始字符串。在字符串前面加上r
前缀,可以使得反斜杠被视为普通的字符而不是转义字符。这是代码示例:
str_demo = r'D:\Data\Tools\Python382\python.exe'
print(str_demo)
运行结果:
D:\Data\Tools\Python382\python.exe
方法二:使用双反斜杠。在每个反斜杠前再加一个反斜杠,可以使得它被视为一个普通的字符。这是代码示例:
str_demo = 'D:\\Data\\Tools\\Python382\\python.exe'
两种方法都可以解决你的问题,你可以选择你觉得更方便的那种。
· 处理原始字符串中的引号问题
普通格式的原始字符串中如果出现了引号,是需要对引号进行转义的。否则 Python 照样无法对字符串的引号精确配对。
但是,又和普通字符串有所不同,此时用于转义的反斜杠会变成字符串内容的一部分。
注意:Python 原始字符串中的反斜杠仍然会对引号进行转义,因此原始字符串的结尾处不能有反斜杠,否则字符串结尾处的引号会被转义