python基础知识学习笔记之常用数据类型操作
1、数值类型操作
- 1.1、常见内建数学函数
# 求绝对值 print(abs(-1)) # 最大值 print(max(1, 2, 5, 10)) # 最小值 print(min(1, 2, 5, 10)) # 四舍五入 print(round(3.1415, 3)) # 求幂 print(pow(2, 10))
- 1.2、常见math模块函数
import math # 上取整 res = math.ceil(3.2) print(res) # 下取整 res = math.floor(3.6) print(res) # 开平方 res = math.sqrt(9) print(res) # 求对数 res = math.log(1000.0, 10.0) print(res)
- 1.3、随机函数
import random # random(): [0, 1)范围之内的随机小数 print(random.random()) # choice(seq): 从一个序列中随机挑选一个随机数值 seq = [1, 3, 6, 5, 4, 2, 9, 12, 13, 15] print(random.choice(seq)) # uniform(x, y):从[x, y]范围之内取一个随机小数 print(random.uniform(1.0, 3.0)) # randint(x, y): [x, y]范围之内的随机整数 print(random.randint(1, 10)) # randrange(start, stop, step=1): 给定[start, stop)区间之内的随机整数 print(random.randrange(0, 50, 5))
- 1.4、常用三角函数
import math # 角度转弧度 rad = math.radians(180) print(rad) # 弧度转角度 deg = math.degrees(math.pi / 2) print(deg) # 正弦函数 res = math.sin(math.pi / 2) print(res) # 余弦函数 res = math.cos(math.pi / 3) print(res) # 正切函数 res = math.tan(math.pi / 4) print(res) # 反正弦函数 res = math.asin(1) print(res) # 反余弦函数 res = math.acos(1) print(res) # 反正切函数 res = math.atan(1) print(res)
2、布尔类型操作
# 布尔类型本质上是int类型的子类,可以直接参与运算
print(True + 2)
print(False + 2)
# 用作if的判断
if True:
print("True")
# 用作while的判断
while True:
print("while")
3、字符串类型操作
字符串是单个字符组成的一个集合。
-
3.1、非原始字符串
# 使用单引号包含: 'abc' string = 'abc' print(string, type(string)) # 使用双引号包含: "abc" string = "abc" print(string, type(string)) # 使用三个单引号包含: '''abc''' string = '''abc''' print(string, type(string)) # 使用三个双引号包含: """abc""" string = """abc""" print(string, type(string))
-
3.2、原始字符串
# 非原始字符串前加r,即原始字符串,原始字符串不对转义字符进行转义 string = r"abc\ndefg" print(string, type(string))
-
3.3、字符串各个形式的特点
- 单/双引号:
混合使用时可以避免使用转义字符
string = 'I am "jane"' print(string) string = "I am 'jane'" print(string)
可以使用小括号将字符串写为多行
string = ('I am ' 'jane') print(string)
- 三引号:
可以直接跨行书写
string = """wo shi abc 123 """ print(string)
此外,还可用于注释。
- 单/双引号:
-
3.4、字符串的拼接
# 使用+号 string = "abc" + "def" print(string) # 直接写在一起 string = "abc" "def" print(string) # 使用格式化模板 string = "I am %s" %("jane") print(string) # 字符串乘法 string = "abc "*3 print(string)
-
3.5、字符串的切片(获取字符串的某个片段)
- 获取某一个字符: string[索引]
# 通过字符串下标获取 string = "abcdefghijklmnopqrstuvwxyz" print(string[5])
- 获取多个字符:
- 语法:
string[起始:结束:步长] - 说明:
1)起始索引包含在内,结束不包含;
2)步长大于0: 从左到右取,步长小于0: 从右到左取;
- 语法:
string = "abcdefghijklmnopqrstuvwxyz" print(string[3:10:2])
例如反转字符串:
string = "abcdefghijklmnopqrstuvwxyz" print(string[::-1])
-
3.6、字符串函数操作
- 3.6.1、字符串查找计算
# len(name): 计算字符串字符个数 string = "abcdefg" print(len(string)) # find(sub, start=0, end=len(str)): 从左往右查找子串所在索引(下标)位置,可指定区间区间:[start, end) string = "abcdefg" print(string.find("ef", 0, 6)) # rfind(sub, start=0, end=len(str)): 从右往左查找子串所在索引(下标)位置,可指定区间区间:[start, end) string = "abcdefg" print(string.rfind("cd", 0, 6)) # index(sub, start=0, end=len(str)): 从左往右获取子串所在索引(下标)位置,可指定区间区间:[start, end) string = "abcdefg" print(string.index("cd", 0, 6)) # rindex(sub, start=0, end=len(str)): 从右往左获取子串所在索引(下标)位置,可指定区间区间:[start, end) string = "abcdefg" print(string.rindex("cd", 0, 6)) # count(sub, start=0, end=len(str)):计算子串出现的个数, 可指定区间区间:[start, end) string = "abcdefg abcdefg abcdefg" print(string.count("cd"))
- 3.6.2、字符串转换类操作
# replace(old, new[, count]): 使用给定的字符串, 替换原字符串中的字符 string = "I am abc" print(string.replace("abc", "def", 3)) # capitalize(): 将字符串首字母变为大写 string = "abcdef" print(string.capitalize()) # title(): 将字符串每个单词的首字母变为大写 string = "ab cd ef" print(string.title()) # lower(): 将字符串中的每个字符都变为小写 string = "aB cD Ef" print(string.lower()) # upper(): 将字符串中的每个字符都变为大写 string = "ab cd ef" print(string.upper())
- 3.6.3、字符串填充压缩
# ljust(width, fillchar): 根据指定字符,将原字符串填充到指定长度。原字符串靠左 string = "abcdef" print(string.ljust(10, 'x')) # rjust(width, fillchar): 根据指定字符,将原字符串填充到指定长度。原字符串靠右 string = "abcdef" print(string.rjust(10, 'x')) # center(width, fillchar): 根据指定字符,将原字符串填充到指定长度。原字符串居中 string = "abcdef" print(string.center(10, 'x')) # lstrip(chars): 在保证字符串连续的前提下,从字符串左侧开始,移除原字符串中指定的字符,默认是移除空白字符 string = "abcabcabcabc " print(string.lstrip("ab")) # rstrip(chars): 在保证字符串连续的前提下,从字符串右侧开始,移除原字符串中指定的字符,默认是移除空白字符 string = "abcabcabcabc" print(string.rstrip("bc"))
- 3.6.4、字符串分割拼接
# split(sep, maxsplit): 将一个大的字符串分割成几个子字符串 # sep: 分隔符,maxsplit: 最大的分割次数, 返回值:分割后的列表 string = "abc-def-ghi-jkl" print(string.split("-", 2)) # partition(sep): 根据指定的分隔符,返回分隔符左侧、分隔符、分隔符右侧组成的元组 string = "abc-def-ghi-jkl" print(string.partition("-")) # rpartition(sep): 根据指定的分隔符,从右侧开始查找分隔符,返回(分隔符左侧、分隔符、分隔符右侧)三个元素组成的元组 string = "abc-def-ghi-jkl" print(string.rpartition("-")) # splitlines(keepends): 根据换行符(\r, \n),将字符串拆成多个元素,保存到列表中 # keepends: 是否保留换行符,bool类型 string = "abc \n def \n ghi \r jkl" print(string.splitlines()) print(string.splitlines(True)) # join(iterable): 根据指定字符串,将给定的可迭代对象进行拼接,得到拼接后的字符串 items = ["abc", "123", "def", "456" ] print(",".join(items)) print("-".join(items)) print("=".join(items))
- 3.6.5、字符串的判定操作
# isalpha(): 判断字符串中是否所有的字符都是字母 string1 = "abcdefghijkl" string2 = "abc def ghi jkl" print(string1.isalpha()) print(string2.isalpha()) # isdigit(): 判断字符串中是否所有的字符都是数字 string1 = "123456789" string2 = "123 456 789" print(string1.isdigit()) print(string2.isdigit()) # isalnum(): 判断字符串中是否所有的字符都是数字或字母 string1 = "abc123def456" string2 = "abc 123 def 456" print(string1.isalnum()) print(string2.isalnum()) # isspace(): 判断字符串中是否都是空白符 string1 = " \n \t \r " string2 = "abc 123 def 456" print(string1.isspace()) print(string2.isspace()) # startswith(prefix, start=0, end=len(str)): 判断字符串是否以某个前缀开头 string = "abc 123 def 456" print(string.startswith("abc")) print(string.startswith("123", 4)) # endswith(suffix, start=0, end=len(str)): 判断字符串是否以某个后缀结尾 string = "abc 123 def 456" print(string.endswith("456")) print(string.endswith("def", 3, 11)) # in: 判断一个字符串是否被另一个字符串包含 string = "abc 123 def 456" print("abc" in string) print("789" in string) # not in: 判断一个字符串是否被另一个字符串不包含 print("abc" not in string) print("789" not in string)