文章目录
1. 基本数据类型
不可变数据:Number(数字)、String(字符串)、Tuple(元组);
可变数据: List(列表)、Dictionary(字典)、Set(集合)。
2. Number(数字)
强制转换
int()
int() 强制转换为整型:
x = int(1) # x 输出结果为 1
y = int(2.8) # y 输出结果为 2
z = int("3") # z 输出结果为 3
注意点运行以下代码程序会报错:
x = int('a')
x = int('123a')
'因为 int() 只能转换纯数字的字符串'
float()
float() 强制转换为浮点型:
x = float(1) # x 输出结果为 1.0
y = float(2.8) # y 输出结果为 2.8
z = float("3") # z 输出结果为 3.0
w = float("4.2") # w 输出结果为 4.2
和 int() 类似,不能把字母组成的字符串转换成浮点型。
bin()
bin() 的作用是把整数转化成二进制'字符串'
# 100 = 0b1100100 = 0x64 = 0o144
print(bin(100))
print(bin(0b1100100))
print(bin(0x64))
print(bin(0o144))
以上代码输出结果都相同,为 0b1100100 。
也就是说,不管什么进制都可以转换为而进制。 0b 代表着二进制符号
hex()
hex() 的作用是将一个整数转换为一个十六进制'字符串'
print(hex(100))
print(hex(0b1100100))
print(hex(0x64))
print(hex(0o144))
以上代码运行结果是 0x64 。 前面的 0x 代表着十六进制的符号。
oct(x)
oct() 的作用是将一个整数转换为一个八进制'字符串'
print(oct(100))
print(oct(0b1100100))
print(oct(0x64))
print(oct(0o144))
以上代码执行结果是 0o144 。 前面的 0o 代表八进制符号。
3. String(字符串)
强制转换
str()
str() 可以把'任意'数据类型转换成字符型
print(str(1))
print(str(2.2))
print(str([1, '2']))
print(str((1, '2')))
print(str({1, '2'}))
print(str({'a': 1, 'b': 'A'}))
格式化输出
在这里详细介绍以下格式化输出。
格式化输出的方式主要有俩类:占位符方法、format方法
1. 占位符
占位符在前面有提到过,就是通过一个特殊的符号先代替需要修改的内容,主要有
%s , %d 这俩用的较多
%s 它可以替代任何数据类型的内容,而 %d 只能替代数字
代码示例:
x = '我的名字是%s,今年%d岁了。'
print(x %('XWenXiang', 14))
打印结果:
我的名字是XWenXiang,今年14岁了。
注意点:
占位符的数量必须和后面替换的内容数量一样
%d 表示其他类型的内容时,程序会报错。
2. format方法 (推荐使用)
format 方法可以更好用于替代内容,主要有 4 种使用方法。
(1)直接使用,类似于占位符。只不过用 '{}'来占位。
'注意,{}的个数也必须和后面内容一样'
代码示例:
x = '我的名字是{},今年{}岁了。'
print(x .format('XWenXiang', 14))
(2)通过索引来取值代替,和直接使用相比它可以'多次'调用需要填入的内容
代码示例:
x = '我的名字是{0}{0}{1},今年{1}{0}岁了。'
print(x .format('XWenXiang', 14))
(3)通过给需要填入的内容一个变量名,通过变量名来替换。
这种方法也可以多次调用值,而且能更好的知道填入的是什么。
代码示例:
x = '我的名字是{name}{age}{name},今年{age}岁了。'
print(x.format(name='XWenXiang', age=14))
(4)使用已经出现的变量名,也就是上面代码'已经定义过的变量名'
只要在字符串前面加一个 f ,然后像第三种一样直接使用变量名来替换
代码示例:
name='XWenXiang'
age=14
x = f'我的名字是{name}{age}{name},今年{age}岁了。'
print(x)
改变大小写:
title()方法
title() 方法返回"标题化"的字符串,就是说'所有'单词的首个字母转化为大写
title()方法语法:
str.title();
代码示例:
x = 'hello xwen xiang'
print(x.title())
打印结果:
Hello Xwen Xiang
首字母均大写。
lower()方法
lower() 方法转换字符串中'所有'大写字符为小写。
lower()方法语法:
str.lower()
代码示例:
x = 'HELLO XWEN XIANG'
print(x.lower())
打印结果:
hello xwen xiang
upper()方法
upper() 方法将字符串中的小写字母转为大写字母。
upper()方法语法:
str.upper()
代码示例:
x = 'hello xwen xiang'
print(x.upper())
打印结果:
HELLO XWEN XIANG
capitalize()方法
capitalize()将字符串的'第一个'字母变成大写,'其他字母'变小写
capitalize() 方法语法:
str.capitalize()
代码示例:
x = 'hello xwen Xiang'
print(x.capitalize())
打印结果:
Hello xwen xiang
swapcase()方法 —反转大小写
swapcase()方法可以将字符串的大小写反转,大写变小写,小写变大写。
例如:
x = 'XWenXiang'
print(x.swapcase())
打印的结果:
xwENxIANG
判断字符串首尾字符:
startswith()方法
startswith() 方法用于检查字符串是否是以指定子字符串开头
startswith()方法语法:
str.startswith(substr, beg=0,end=len(string));
substr -- 指定的子字符串。
strbeg -- 可选参数用于设置字符串检测的起始位置。
strend -- 可选参数用于设置字符串检测的结束位置。
代码示例:
x = 'hello xwen xiang'
print(x.startswith('he', 0, 9))
运行后打印出:
True
endswith()方法
endswith() 方法用于判断字符串是否以指定后缀结尾
endswith()方法语法:
str.endswith(suffix[, start[, end]])
suffix -- 该参数可以是一个字符串或者是一个元素。
start -- 字符串中的开始位置。
end -- 字符中结束位置。
代码示例:
x = 'hello xwen xiang'
print(x.endswith('ng', 2, 9))
运行后打印出:
False
改变文本位置:
center()方法,
center() 方法返回一个指定的宽度 width, 文本居中的字符串
center()方法语法:
str.center(width[, fillchar])
fillchar 为填充的字符(自己设定),默认为空格。
代码示例:
x = 'XWenXiang'
print(x.center(13, '-'))
运行后打印出:
--XWenXiang--
首先将字符的长度与指定的 width 比较,若大于 width ,方法不起作用。
若比 width 小 1 时,会优先在字符串右边加上一个设定的字符
以此类推
ljust()方法
ljust() 方法返回一个原字符串'左对齐',并使用指定字符填充至指定长度的新字
符串。
如果指定的长度小于原字符串的长度则返回原字符串。
ljust()方法语法:
str.ljust(width[, fillchar])
width -- 指定字符串长度。
fillchar -- 填充字符,默认为空格。
代码示例:
x = 'XWenXiang'
print(x.ljust(13, '-'))
运行后打印出:
XWenXiang----
和 center() 方法不同的是填充的位置是右边,也就是文本居左。
rjust()方法
rjust() 方法返回一个原字符串'右对齐',并使用指定字符填充至指定长度的新字
符串。
如果指定的长度小于原字符串的长度则返回原字符串。
rjust()方法语法:
str.rjust(width[, fillchar])
width -- 指定字符串长度。
fillchar -- 填充字符,默认为空格。
代码示例:
x = 'XWenXiang'
print(x.rjust(13, '-'))
运行后打印出:
----XWenXiang
和 ljust() 方法不同的是填充的位置是左边,也就是文本居右。
检测字符串的字符:
count()方法 —统计出现的次数
count() 方法用于统计字符串里某个字符出现的次数。
count()方法语法:
str.count(sub, start= 0,end=len(string))
sub 需要搜索的子字符串
start 字符串开始搜索的位置。默认为第一个字符
end 字符串中结束搜索的位置。默认为字符串的最后一个位置。
代码示例:
x = 'XWenXiang'
print(x.count('n', 4, 7))
打印结果:
0
同样注意的是,不包括结束位置
find()方法 —查找指定字符的索引值
find() 方法检测字符串中是否包含子字符串 str ,没有返回 -1 ,有返回第一
个符合子字符串的索引值
find()方法语法:
str.find(str, beg=0, end=len(string))
str 指定检索的字符串
beg 开始索引,默认为0。
end 结束索引,默认为字符串的长度。
代码示例:
x = 'hello XWenXiang'
print(x.find('ng', 3, 19))
打印结果:
13
和 in 不同,in 返回的是 False 或者 True
rfind()方法
和 find() 一样,只不过 rfind() 是从右边开始查找。
index()方法
和 find() 方法一致,就是若需要查找的字符串没有存在,会报错
index()方法语法:
str.index(str, beg=0, end=len(string))
替换字符串的元素
replace()方法 —替换字符
replace() 方法把字符串中的 old(旧字符串) 替换成 new(新字符串),如果
指定第三个参数 max ,则替换不超过 max 次。
replace()方法语法:
str.replace(old, new[, max])
old -- 将被替换的子字符串。
new -- 新字符串,用于替换old子字符串。
max -- 可选字符串, 替换不超过 max 次
代码示例:
x = 'hello XWenXiang'
print(x.replace('n', 'U', 1))
打印结果:
hello XWeUXiang
判断字符串的组成:
islower()方法
islower() 方法检测字符串是否由小写字母组成。
islower()方法语法:
str.islower()
若字符串中都为小写,返回 True ,否则返回 True
代码示例:
x = 'hello XWenXiang'
print(x.islower())
打印结果:
False
isupper()方法
isupper() 方法检测字符串中所有的字母是否都为大写。
isupper()方法语法:
str.isupper()
若字符串中都为大写,返回 True ,否则返回 True
代码示例:
x = 'hello XWenXiang'
print(x.isupper())
打印结果:
False
isalnum()方法
isalnum() 方法检测字符串是否由字母和数字组成。
isalnum()方法语法:
str.isalnum()
若字符串中只有字母和数字,返回 True ,若还有其他的字符(空格也算)返回
False
代码示例:
x = 'hello XWenXiang'
print(x.isalnum())
打印结果:
False
isalpha()方法
Python isalpha() 方法检测字符串是否只由字母或文字组成。
isalpha()方法语法:
str.isalpha()
和 isalnum() 一样,只不过条件换成了字母和中文
isdigit()方法 —判断是否为纯数字
isdigit()方法检测'字符串'是否只由'纯数字'组成,小数点都不行。
isdigit()方法语法:
str.isdigit()
字符串只包含数字则返回 True 否则返回 False。
连接字符串:
当我们需要连接字符串时,我们可以使用 +
号来对字符串进行连接,但是字符串较大时效率较低。
用 + 号示例:
x = 'XWen'
y = 'Xiang'
print(x + y)
打印结果:
XWenXiang
当我们需要重复一段字符串时,可以使用*
来实现。
代码示例:
x = 'W'
print(x * 10)
打印结果:
WWWWWWWWWW
join()方法
join() 方法用于将序列中的元素以指定的字符连接生成一个新的字符串。
join()方法语法:
str.join(sequence)
sequence 要连接的元素序列
代码示例:
x = 'hello XWenXiang'
y = '-'
print(y.join(x))
打印结果:
h-e-l-l-o- -X-W-e-n-X-i-a-n-g
join() 相当于把一个字符串进行 for 循环,循环一次加一次。
可以理解为,将一个字符串分别插入另一个字符串各个元素之间
返回字符串长度:
len()方法
返回一个字符串的长度
len()方法语法:
len( s )
示例代码:
x = 'hello XWenXiang'
print(len(x))
打印结果:
15
# 可以用来判断输入值是否为空
比较字符串的大小:
max() min()方法
max()方法返回字符串中最大的字母。
min()返回最小
max()和 min() 方法语法:
max(str)
min(str)
注意比较的是字符对应的ASCII码大小
字符串的切割:
split()方法
split() 通过指定分隔符对字符串进行切片,如果第二个参数 num 有指定值,
则分割为 num+1 个子字符串。
简单说就是查找字符串里有没有想要的元素,有的话就把字符串分割了,要注意的
是分割之后,被分割的元素会被组成一个'列表'
split() 方法语法:
str.split(str="", num=string.count(str))
str 分隔符,默认为'所有的空字符',包括空格、换行(\n)、制表符(\t)等。
num 分割次数。默认为 -1, 即分隔所有。
代码示例:
x = '/hello/XWen/Xiang'
print(x.split('/', 2))
打印结果:
['', 'hello', 'XWen/Xiang']
将带有'/'的地方进行分割,并组成'列表',最多分割俩次。
移除首尾指定字符:
strip()方法 —移除指定字符
strip() 方法用于移除字符串头尾指定的字符(默认为空格)或字符序列。
strip()方法语法:
str.strip([chars]);
chars -- 移除字符串头尾指定的字符序列。
代码示例:
x = '%hello XWen Xiang%'
print(x.strip('%'))
打印结果:
hello XWen Xiang
也就是把俩边指定的字符 '%' 去除了。
'注意点,字符串中间的字符不能被指定删除'
拓展,还有分别删除左边、右边指定字符的方法,为'lstrip()、rstrip()'
lstrip()方法
lstrip() 方法用于截掉字符串左边的空格或指定字符。
lstrip()方法语法:
str.lstrip([chars])
代码示例:
x = '%hello XWen Xiang%'
print(x.lstrip('%'))
打印结果:
hello XWen Xiang%
字符串左边的指定字符被删除了
rstrip()方法
rstrip() 方法用于截掉字符串右边的空格或指定字符。
rstrip()方法语法:
str.rstrip([chars])
代码示例:
x = '%hello XWen Xiang%'
print(x.rstrip('%'))
打印结果:
%hello XWen Xiang
字符串右边的指定字符被删除了
特殊转义字符
用反斜杠\
加特殊字符实现特定功能。
' \n ' 换行,换行是使用较多的功能
x = 'XWen\nXiang'
print(x)
打印的结果:
XWen
Xiang
' \t ' 横向制表符
x = 'XWen\tXiang'
print(x)
打印的结果:
XWen Xiang
还有很多就不一一举例了。
若是我们想要输出反斜杠但是又不想实现特殊的功能时,我们可以在字符串前面加
一个' r '来取消特殊含义
例如:
x = r'XWen\tXiang'
print(x)
现在打印的是:
XWen\tXiang