Python学习笔记-Day3

时间:2022-06-24 03:33:30

内容大纲:

一、基础数据类型总览

*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='alexwusir,taibai'

print(s2.split(''))

结果是:['alex', 'wusir', 'taibai']

s3=' alex wusir taibai'

print(s3.split())

print(s3.split(''))

结果是:['alex', 'wusir', 'taibai']

             ['', 'alex', 'wusir', 'taibai']

s4=',alexwusir,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