python 基本数据类型以及内置方法

时间:2024-06-20 21:34:26

一、数字类型

 # 一、整型int
# ======================================基本使用======================================
# 1、用途:记录年龄、等级、数量 # 2、定义方式
age = 10 # age=int(10) # 数据类型转换: 只能将纯数字的字符串转成int
# x=int('123123')
# print(x,type(x))
# x=int('12.3') # 3、常用操作+内置的方法 # 二、浮点型float
# ======================================基本使用======================================
# 1、用途:记录身高、薪资、体重 # 2、定义方式
salary = 10.1 # salary=float(10.1) # 数据类型转换: 只能将包含小数的字符串转成float
x=float('3.1')
# print(x,type(x)) # ======================================该类型总结====================================
# 存一个值 # 不可变

二、字符串类型

 #   字符串str:
# ======================================基本使用======================================
# 1、用途:记录描述性质的状态
# 作用:名字,性别,国籍,地址等等
# 定义:单引,双引,三引号(三双单引号都可以)
# 例子:
#定义字符串的语法
name='zhaokang' # 单引号定义
name="zhaokang" # 双引号定义
name='''zhaokang''' # 单三引号定义
name="""zhaokang""" # 双三引号定义
注释:
# 数据类型转换:所有类型都可以被str转成字符串类型
# res=str([1,2,3])
# print(res,type(res))
优先掌握的操作
#优先掌握的操作
1.按索引取值(正向取+方向取)
2.切片(顾头不顾尾,不长)
3.长度len()函数
4.成员运算in和not in
5.移除空白strip
6.切分split
7.循环 
 # 1.优先掌握
# 1.strip()
name = ' zhao kang '
name.strip() # 先从左边开始去空格,一旦遇到字符这时strip()会停止,开始从右往左去空格
# 一旦遇到字符将停止
# 如以上输出结果是:zhao kang
# strip()有一个参数 chars 可以根据想要的来去
# 列子:
name = '******zhao kang*******'
print(name.strip('*')) # 这时会把所有的*去掉 #2.split()
#split:切分
#针对有规律的字符串可以进行切分取值
#列
cmd='dowload|A.txt|a.txt|333'
cmd.split('|') #以|为切割点
print(cmd.split('|')) #结果为['dowload','a.txt','333'] 切出来的结果为列表类型 #循环
name='zhaokang'
for i in name:
print(i)
 #掌握操作
name = ' Zhao kang '
lstrip:去左边的空格
print(name.lstrip())
#结果:Zhao kang
rstrip:去右边的空格
print(name.rstrip())
#结果: Zhao kang
strip:去左右两边的空格
print(name.strip())
#结果:Zhao kang
lower:把所有字符转化为小写字符
print(name.lower())
#结果: zhao kang
upper:把所有字符转化为大写
print(name.upper()) startswith:以什么开始 返回Ture或False
name = 'Zhao kang '
print(name.startswith('Z'))
#执行结果:Ture
endswith:以什么结尾
print(name.endswith('g'))
#执行结果:Ture format:格式化字符串
#format的三种玩法
res='my name is %s my age is %s' %('egon',18)
print(res) res='my name is {name} my age is {age}'.format(age=18,name='egon')
print(res) 了解
res='my name is {} my age is {}'.format('egon',18)
res='my name is {0}{1} my age is {1}{1}{1}{1}'.format('egon',18)
print(res) split:切分
#针对有规律的字符串可以进行切分取值
rsplit:从左往右切 join:将一个列表按照什么拼接成一个字符串 replace:替换
#有三个参数
#第一个参数:需要替换的字符
#第二个参数:需要替换成什么
#第三个参数:需要替换几次默认为全部
s='zhaokang'
print(s.replace('z','a'))
#结果:ahaokang isdisgit:判断是否为纯数字,切不能为小数,返回Ture 和或False s=''
print(s.isdigit())
#返回结果为Ture
# ======================================该类型总结====================================
# 存一个值
# 有序
# 不可变

需要掌握的内置方法

 #find,rfind,index,rindex,count
name='egon say hello'
print(name.find('o',1,3)) #顾头不顾尾,找不到则返回-1不会报错,找到了则显示索引
# print(name.index('e',2,4)) #同上,但是找不到会报错
print(name.count('e',1,3)) #顾头不顾尾,如果不指定范围则查找所有 #center,ljust,rjust,zfill
name='egon'
print(name.center(30,'-'))
print(name.ljust(30,'*'))
print(name.rjust(30,'*'))
print(name.zfill(50)) #用0填充 #expandtabs
name='egon\thello'
print(name)
print(name.expandtabs(1)) #captalize,swapcase,title
print(name.capitalize()) #首字母大写
print(name.swapcase()) #大小写翻转
msg='egon say hi'
print(msg.title()) #每个单词的首字母大写 #is数字系列
#在python3中
num1=b'' #bytes
num2=u'' #unicode,python3中无需加u就是unicode
num3='四' #中文数字
num4='Ⅳ' #罗马数字 #isdigt:bytes,unicode
print(num1.isdigit()) #True
print(num2.isdigit()) #True
print(num3.isdigit()) #False
print(num4.isdigit()) #False #isdecimal:uncicode
#bytes类型无isdecimal方法
print(num2.isdecimal()) #True
print(num3.isdecimal()) #False
print(num4.isdecimal()) #False #isnumberic:unicode,中文数字,罗马数字
#bytes类型无isnumberic方法
print(num2.isnumeric()) #True
print(num3.isnumeric()) #True
print(num4.isnumeric()) #True #三者不能判断浮点数
num5='4.3'
print(num5.isdigit())
print(num5.isdecimal())
print(num5.isnumeric())
'''
总结:
最常用的是isdigit,可以判断bytes和unicode类型,这也是最常见的数字应用场景
如果要判断中文数字或罗马数字,则需要用到isnumeric
''' #is其他
print('===>')
name='egon123'
print(name.isalnum()) #字符串由字母或数字组成
print(name.isalpha()) #字符串只由字母组成 print(name.isidentifier())
print(name.islower())
print(name.isupper())
print(name.isspace())
print(name.istitle())

需要了解的内置方法

# 写代码,有如下变量,请按照要求实现每个功能 (共6分,每小题各0.5分)
name = " aleX"
# 1) 移除 name 变量对应的值两边的空格,并输出处理结果
# 2) 判断 name 变量对应的值是否以 "al" 开头,并输出结果

# 3) 判断 name 变量对应的值是否以 "X" 结尾,并输出结果

# 4) 将 name 变量对应的值中的 “l” 替换为 “p”,并输出结果
# 5) 将 name 变量对应的值根据 “l” 分割,并输出结果。
# 6) 将 name 变量对应的值变大写,并输出结果

# 7) 将 name 变量对应的值变小写,并输出结果

# 8) 请输出 name 变量对应的值的第 2 个字符?
# 9) 请输出 name 变量对应的值的前 3 个字符?
# 10) 请输出 name 变量对应的值的后 2 个字符?

# 11) 请输出 name 变量对应的值中 “e” 所在索引位置?

# 12) 获取子序列,去掉最后一个字符。如: oldboy 则获取 oldbo。

练习

三、列表类型

 #作用:多个装备,多个爱好,多门课程,多个女朋友等

 #定义:[]内可以有多个任意类型的值,逗号分隔
my_girl_friends=['alex','wupeiqi','yuanhao',4,5] #本质my_girl_friends=list([...])

l=list('abc') #优先掌握的操作:
#1、按索引存取值(正向存取+反向存取):即可存也可以取
#2、切片(顾头不顾尾,步长)
#3、长度
#4、成员运算in和not in #5、追加
#6、删除
#7、循环
 #ps:反向步长
l=[1,2,3,4,5,6] #正向步长
l[0:3:1] #[1, 2, 3]
#反向步长
l[2::-1] #[3, 2, 1]
#列表翻转
l[::-1] #[6, 5, 4, 3, 2, 1]
1. 有列表data=['zhangsan',49,[1900,3,18]],分别取出列表中的名字,年龄,出生的年,月,日赋值给不同的变量

2. 用列表模拟队列

3. 用列表模拟堆栈

4. 有如下列表,请按照年龄排序(涉及到匿名函数)
l=[
{'name':'zhangsan','age':84},
{'name':'lisi','age':73},
{'name':'wanger','age':18},
]
答案:
l.sort(key=lambda item:item['age'])
print(l)