内容大纲:
一、基础数据类型总览
*int :用于计算和计数
*str:'这些内容' 用于少量数据的存储,便于操作
*bool:True、False,两种状态,机器反馈给用户的对和错
list(列表):[1,'alex',True,[],(),{}……..]可以存储大量的数据和各种数据类型,操作方便
tuple(元组):[1,'alex',True,[],(),{}……..],只读列表
dict(字典):大量的关联型数据{'name':'alex','name_list':[司徒,慈溪,李莲英]}
set(集合):{}关系测试
二、for循环
一、int使用方法()***
i = 4
print(i.bit_length)
print((4).bit_length)
结果是 3
bit_length():查询十进制数字转二进制占用的最小位数
二、bool使用方法
数据类型之间的转化
int <---> str:int(str)、str(int)
int <---> bool:非零即True,零为False
bool <---> str:
①str ---> bool:print(bool('Alex')) 结果为 True
空字符串对应 False,非空即True
②bool ---> str:只能打印True和False,没有什么实际意义
三、字符串的使用方法
对字符串的下面这两部分操作:形成的都是一个新的字符串,与原来的字符串无关
(1)字符串的取值(索引、切片、步长)
①按照索引取值,取出来的都是一个字符形成的字符串
s1='python1期骑士计划'
s2=s1[0] #按照索引取值,取第一个值
print(s2,type(s2))
s3=s1[-1] #按照索引取值,取最后一个值
print(s3,type(s3))
print(s1[-3]) #按照索引取值,取倒数以三个值
②按切片取值,顾头不顾腚
s1='python1期骑士计划'
s5=s1[0:6]#按切片取值,顾头不顾腚
s51=s1[:6]#s5=s51,从0开始取值0可以省略
s6=s1[6:]#取到最后的值冒号后面不能跟值
③按照切片+步长取值
s1='python1期骑士计划'
s7=s1[:5:2] #从第一个字符到第五个字符,每隔一个字符取一个值。
print(s7) #pto
s8=s1[1::2] #从第二个字符到最后一个字符,每隔一个字符取一个值,最后一个字符的位置不能写值。
print(s8)
④如果想倒叙取值,加一个反向步长
s1='python1期骑士计划'
s9=s1[-1:-5:-1]#划计士骑,
s10=s1[-1:-6:-2]#划士期
(2)字符串的常用方法
name = "oldBoy"
①capitalize():首字母大写,其他字母小写
print(name.capitalize()) #capitalize() 首字母大写,其他字母小写 ***
②center():字符串居中,前后填充自定义字符
print(name.center(20,'*')) #字符串居中,前后填充自定义的字符"*" **
③upper()、lower():字母全部大写/小写
print(name.upper())、print(name.lower()) #字母全部大写、字母全部小写 *****
可用于验证码输入
④startswith()、endswith():判断是否以。。。开头或结尾,返回bool值
print(name.startswith('o')) #判断字符串是否以o开头,返回bool值
print(name.startswith('B',3)) #判断从位置3开始,是不是以B开头,索引的方式
print(name.startswith('lD',1,5)) #判断从位置1到5是否以lD开头,切片的方式
endswith()的用法与startswith()相同 *****
⑤swapcase():大小写反转
print(name.swapcase()) #大小写反转 **
⑥title():非字母隔开的首字母大写
s1 = 'alex djaadd#sghagd*ha6sagd'
print(s1.title()) #非字母隔开的每个部分的首字母大写 **
⑦通过元素找索引(find(),index()):找到第一个元素就返回,返回int *****
print(name.find('B')) #返回B在字符串中的位置,返回3
print(name.find('lD')) #返回lD在字符串中的位置,返回1
print(name.find('w')) #返回w在字符串中的位置,字符串中没有w,返回-1
print(name.find('D',1,-1)) #从位置1到最后查找D的位置,返回2
index()的用法和find()相同,只是index()没有找到会报错,find()没有找到返回-1
⑧strip():去除字符串开头和结尾的字符或字符串
name = '\toldBoy***dktdsaafkdt' #\t是空格键,\n是换行键
print(name.strip()) #默认去除字符串前后的空格、换行符、制表符,只能去除开头和结尾的字符或字符串,不能删除中间的 *****
print(name.strip('*')) #去除字符串里的*
print(name.strip('dkt')) #去除字符串里的指定字符
lstrip():去除开头第一个指定或默认字符
rstrip():去除结尾第一个指定或默认字符
输入用户名无视空格键
⑨split():将字符串分割成列表,默认按照空格分割,实现字符串--->列表的转化 *****
s1='alex wusir taibai'
l1=s1.split()#将字符串分割成列表,默认按照空格分隔
print(l1)
结果是:['alex', 'wusir', 'taibai']
s2='alex,wusir,taibai'
print(s2.split(','))
结果是:['alex', 'wusir', 'taibai']
s3=' alex wusir taibai'
print(s3.split())
print(s3.split(''))
结果是:['alex', 'wusir', 'taibai']
['', 'alex', 'wusir', 'taibai']
s4=',alex,wusir,taibai'
print(s4.split(','))
结果是:[',alex', 'wusir', 'taibai']
⑩join():自定制连接符,将可迭代对象中的元素连接起来,是列表转化为字符串的方式
str1='alex'
s2='*'.join(str1)
print(s2)
结果是:a*l*e*x
⑾repalce():替换,可设置替换次数 *****
str2='alex是创始人,alex很牛逼,alex....'
s3=str2.replace('alex','SB',2)
print(s3)
⑿格式化输出 format()
s1='我叫{},今年{},性别{}'.format('taibai','28','男')
s2='我叫{0},今年{1},性别{2},我依然叫{0}'.format('taibai','28','男')
s3='我叫{name},今年{age},性别{sex}'.format(name='taibai',sex='男',age='28')
⒀ is 系列,返回bool值
name='taibai123'
print(name.isalnum())#判断是否是数字和字母组成
print(name.isdigit())#判断是否是数字组成
print(name.isalpha())#判断是否是字母组成
⒁ 公共方法:count()
name='alexarfew'
print(name.count('a'))#统计a出现的次数
print(len(name))
二、for循环
对一个数据类型进行循环,或者一个有限循环的时候,往往用到for
格式:
for item in iterable(iterable是可迭代对象,多个元素组成的数据),for循环的次数和迭代对象元素的个数有关。
例如:
s1='dffg'
for i in s1:
print(i)
结果为:
d
f
f
g