1. 浮点数
在Python中,浮点数用于表示非整数的数字,例如0.5、-7.8237591等。
浮点数创建方式
直接输入带小数点的数字
num1 = 3.14
num2 = -0.001
print(num1, num2) #输出:3.14 -0.001通过运算产生(如整数除法)
result = 5 / 2 #整数除法结果为浮点数
print(result) #输出:2.5浮点数的精度问题
需要注意的是,计算机无法完全精确地存储所有浮点数,原因有两点:
- 存储空间有限:部分数字转换为二进制后会无限长,计算机只能截断存储,导致误差。
- 十进制转二进制的特性:例如0.1和0.2转换为二进制后是无限循环小数,无法精确存储。
print(0.1 + 0.2) #输出:0.30000000000000004(而非 0.3)但像0.5这样的数,二进制表示为0.1,可以被精确存储:
print(0.5 + 0.5) #输出:1.0(精确结果)2. 字符串
字符串用于表示文本,通过单引号 ‘、双引号 ” 或三引号 ”’/””” 包裹创建。
字符串创建方式
单引号/双引号(适合单行文本):
str1 = 'hello'
str2 = "world"
print(str1, str2) #输出:hello world三引号(适合多行文本,且支持直接包含单引号,双引号无需转义):
str3 = '''这是第一行
这是第二行(包含单引号'和双引号")'''
print(str3)
#输出:
#这是第一行
#这是第二行(包含单引号'和双引号")3. 字符串的运算
字符串连接(+)
使用+号可连接任意两个字符串,无论字符串是用单引号还是双引号创建的。连接后会生成一个新的字符串。
示例:
a = 'Hello'
b = " World"
c = a + b #连接单引号字符串和双引号字符串
print(c) #输出:Hello World
d = '123' + '456' # 即使包含数字,仍作为字符串拼接
print(d) #输出:123456注意:字符串不能与数字(整数或浮点数)直接用+连接,否则会报错(类型不兼容)。
示例(报错):
s = '年龄:' + 18 #字符串 + 整数,类型不匹配
#报错:can only concatenate str (not "int") to str字符串连接(*)
字符串可以与整数相乘,生成原始字符串重复指定次数的新字符串。字符串与整数的顺序不影响结果,但通常习惯将字符串放在前面。
示例:
print('a' * 3) #字符串在前,输出:aaa
print(3 * 'b') #整数在前,输出:bbb
print('hi' * 2) #输出:hihi限制:
- 字符串之间不能用*相乘。
- 字符串不能与浮点数(即使是整数浮点数,如2.0)相乘。
示例(报错):
print('a' * 'b') #字符串相乘,报错:can't multiply sequence by non-int of type 'str'
print('a' * 2.0) #字符串与浮点数相乘,报错:can't multiply sequence by non-int of type 'float'4. 转义字符
部分字符无法直接包含在字符串中(如双引号在双引号字符串中),需用反斜杠\转义。常见转义字符:
- \”:表示双引号
- \’:表示单引号
- \n:表示换行
- \:表示反斜杠本身
#双引号在双引号字符串中需转义
str4 = "He said \"Hello\""
print(str4) # 输出:He said "Hello"
#单引号在单引号字符串中需转义
str5 = 'It\'s a cat'
print(str5) #输出:It's a cat
#换行符\n
str6 = "第一行\n第二行"
print(str6)
#输出:
#第一行
#第二行
#反斜杠本身
str7 = "路径:C:\\Users\\test"
print(str7) #输出:路径:C:\Users\test5. 不可变对象
Python中所有事物都是对象,根据值是否可修改分为可变对象和不可变对象:
- 不可变对象:数字、字符串、元组(值一旦创建无法修改)。
- 可变对象:列表、字典、字节数组(值可直接修改)。
字符串的不可变性
字符串是不可变对象,直接修改其中的字符会报错。若需 “修改”,需创建新字符串(如通过拼接、切片)。
示例(修改报错):
s = "hello"
s[0] = "H" #尝试修改第一个字符,会抛出异常
#报错:'str' object does not support item assignment示例(创建新字符串实现 “修改”):
s = "hello"
new_s = "H" + s[1:] #拼接新字符和原字符串切片
print(new_s) #输出:Hello