常用的数据类型使用(type()函数可以查看数据类型)
数值类型
整型 int
浮点型 float
复数型 complex
字符串类型 str
列表 list
字典 dict
元组 tuple
集合 set
布尔类型 bool
1.数值类型
数值类型对应的数据的值是不可以变的
num = 11
num = 12.0
如果发生了改变 只是新生成一个数据 与原来的数据无关
整型(int):代表的数据都是整数
java为例:(byte 1B short 2B int 4B long 8B)
byte =[-128,127 ] 了解数据类型的取值范围
浮点型(float):代表的数据都是小数
也可以使用科学计数法来表示的 小数都有精确度 Python解释器
注意:尽量不要使用浮点型来进行大小的判定 因为受限于精度度 可以能会导致结果出现误差
复数型(complex)32+5j【了解:实部和虚部】
常用方法
系统提供的内置方法
num = 11
print(num)
num = 12
print(num)
num=0.1+0.2
print(num) # 0.30000000000000004
#使用浮点型进行运算可能会产生误差,所以尽量使用int类型或者变相运算
num = (0.1*10 + 0.2*10)/10
print(num)
# 系统提供的内置方法
# 1.绝对值 abs
res = abs(-10)
print(res) # 10
# 2.比较两个数的大小
"""
版本2.x中
cmp(x,y)
x>y 返回结果1
x<y 返回结果-1
x==y 返回结果0
版本3.x中
1表示True 0表示False
(x<y) -1
(x>y) 1
x==y 0
(x>y)-(x<y)
"""
res = (12>12)-(12<12)
print(res) # 0-0=0
# 3.在序列中获取最大的值
# 12,55,1,25,88,99,120
res =max(12,55,1,25,88,99,120)
print(res) # 120
# 4.最小值
res = min(12,1)
print(res) # 1
# 5.求幂数 x的y次方
res = pow(2,3)
print(res)# 8
res = 2**3
print(res)# 8
# 6.四舍五入
#help(round)
"""
round(number[, ndigits]) -> number
number:将number进行四舍五入
ndigits;设置保留的小数的位数 如果不传值 默认0个小数
"""
res = round(1.75,1)
print(res) # 1.8
"""
系统提供的math模块中的方法
Python API 中文版
"""
2.字符串类型
标识:由单引号和双引号 包含的单个或者多个字符
比如:“aaaa” "21123" '张三'
# 声明一个字符串(双引号或单引号)
str0 = "good morning"
print(str0) # good morning
# 字符串中的运算
# + 号运算 拼接字符串
# * 翻倍拼接
str1 = "hello"
print(str1+str0) # hellogood morning
str2 = str1+str(10.0)
print(str2) # hello10.0
# * 的运算
str0 = "我..."
res = str0*8
print(res) # 我...我...我...我...我...我...我...我...
# 获取操作
# 1.获取字符串的总长度
str0 = "good good study day day up"
res = len(str0)
print(res) # 26
# 2.获取指定位置上的某个字符
"""
在字符串中的字符 都有自己编号 编号是从0开始的 26个字符0-25
编号叫做索引、脚标、下标
还可以通过负数来取字符 -len(str0) ~ -1
"""
res =str0[-26]
print(res) # g
res =str0[-27] # 错误示范
IndexError: string index out of range
# IndexError: string index out of range 索引不能越界
# 3. 获取子串
"""
切片
[start:stop[:step]]
start -- 指定的起始位置 如果不传值 默认从0开始
stop -- 指定结束的位置 如果不传值 默认到最后结束
step -- 步长 间隔步长多少个 在取值 默认1
[start,stop) 前闭后开和数学的区间一样
"""
str0 = ‘good good study day day up’
sub = str0[:]
print(sub) # good good study day day up
sub = str0[2:]
print(sub) # od good study day day up
sub = str0[:5]
print(sub) # good
sub = str0[2:11]
print(sub) # od good s
sub = str0[::2]
print(sub) #go odsuydydyu
sub = str0[::-1] # 如果步长为-1 起始位置和结束位置不传值 倒序
print(sub) # pu yad yad yduts doog doog
# 获取某个字符串第一次出现的位置
"""
find(sub[, start[, end]])
如果找到了就返回第一次出现的位置 否则返回-1
"""
# good good study day day up
index = str0.find("day")
print(index) # 16
# 从那个位置开始找
index = str0.find("day",17)
print(index) # 20
# 找到哪里结束
index = str0.find("day",0,15)
print(index) # -1
# 最后一次出现的位置
index = str0.rfind("o",5)
print(index) # 7
# 获取序列中重复的个数
"""
count(sub[, start[, end]])
"""
str0 = ‘good good study day day up’
str1 = "kkkabckkkabc123kkk"
res = str0.count('day')
print(res) # 2
res = str1.count("kk",5)
print(res) # 2
# 切割字符串 以指定的字符进行切割 可以切成多个子串
str0 = "good morning nice to meet you"
res = str0.split(" ")
print(res) # ['good', 'morning', 'nice', 'to', 'meet', 'you']
print(type(res)) # list
# 遍历
# for item in res:
# print(item)
# 限制切几刀
res = str0.split(" ",3)
print(res) # ['good', 'morning', 'nice', 'to meet you'] 3刀4段
# 去除字符串两边的字符序列
"""
\n \t 显示的都是空白
默认去掉两边的空白(首和尾)
"""
str0 = "\nabc abc\n"
print(str0)
# abc abc
str0 = str0.strip()
print(str0,end="") # abc abc
print("---------------------------------")
str0 = "123abcdefg123"
str0 = str0.strip("123")
print(str0) # abcdefg
# 去掉左边的123
str0 = str0.lstrip("123")
print(str0) #abcdefg123
#去掉右边的123
str0 = str0.rstrip("123")
print(str0) # 123abcdefg
"""
字符串格式化
r 格式化字符串 --- 保持路径中\的本意 无需使用\\进行转义
\ 在操作系统下有特殊的意义 --- 具有转义的含义
将指定字符转义成其他含义
例如: n --- \n换行
r --- \r 回车
t --- \t 制表符
如果你要保持本意 需要再次使用\进行转义
"""
path = r"D:\ChromeCoreDownloads\test\demo\xxx"
print(path)
# 显示多行字符串
str0 = "good\nmorning\nnice to meet you"
print(str0)
# 显示多行 保持原有格式输出
content ="""
good
morning
nice to meet you
"""
print(content)
"""
显示结果如下:
he is a "bad" man
"""
res = "he is a \"bad\" man"
print(res)
"""
占位符:
%s -- 对象的数据 字符串 列表..
%d -- 整数
%0nd --- 保持整数显示n位数的格式
%f -- 小数
%.nf --- 保留小数n位小数
.format
{:03d}---保持整数显示n位数的格式
{:.2f}---保留小数n位小数
案例:
4 89.57
10 99.71
100 88.4
把以上数据进行显示如下
我的编号是004 成绩是89.6
我的编号是010 成绩是99.7
我的编号是100 成绩是88.4
print("我的编号为:%03d,我的成绩为:%.1f"%(4,89.69))
print("我的编号为:%03d,我的成绩为:%.1f"%(10,99.71))
print("我的编号为:%03d,我的成绩为:%.1f"%(100,88.4))
#.format
print("我的编号为:{:03d},我的成绩为:{:.1f}".format(10,88.41))
"""
# 转换方法
# 1.将字符串中的所有字母转换化为小写字母,其他字符不变
str0 = "aHello good"
res = str0.lower()
print(res)
# 2.将字符串中的所有字母转换化为大写字母,其他字符不变
res = str0.upper()
print(res)
# 3. 将大写变小写,小写变大写
res = str0.swapcase()
print(res)
# 4. 第一个字符变为大写,其它变为小写
res = str0.capitalize()
print(res)
# 5. 将每个单词的首字母变大写其余小写【每个单词之间以空格隔开】
res = str0.title()
print(res)
# 设置字符串的显示位置
# 1. 在指定字符串宽度条件下 字符显示居中
str0 ="good"
res =str0.center(20)
print(res)
# 在其他位置填充字符
res =str0.center(20,'*')
print(res)
# 居左str0.ljust() 居右str0.rjust()
res = str0.ljust(20,'*')
print(res)
# 字符串判定操作
# 1.判定字符串是否以指定内容开头
path = r'test.png'
res = path.startswith("test.png")
print(res)
# 2.判定字符串是否以指定内容结尾
res = path.endswith(".png")
print(res)
# 3.判定字符串是否为纯数字
str0="110"
res = str0.isdigit()
print(res)
# 4.判断字符串是否全是字母
str0="abc"
res = str0.isalpha()
print(res)
# 替换字符串
str0 = "abc1def1opqaaaa"
res = str0.replace("a","A",2)
print(res)
# 使用间隔拼接序列
res = str0.split("1")#以1作为切割点进行分割
print(res)
# 拼接回去
value = "1".join(res)
print(value)
# 字符串中对应字节数据
"""
utf-8的编码方式
gbk -- 一个汉字占2个字节
utf-8 -- 一个汉字占3个字节
"""
str0 = "您好"
res = str0.encode("utf-8")
print(res)
# 解码
value = res.decode("utf-8")
print(value)
res = str0.encode("gbk")
print(res)
# 解码
value = res.decode('gbk')
print(value)