今日所学知识点详解:
1.基础数据类型初始:
int:用于计算。
str:用于存储少量的数据 如:‘Alex’,'123':
bool:True, False
list:(列表):里面可以放入各种数据,能存储大量的数据,便于操作
list的格式是:[‘name’,True,[ ]…… ]
tuple:(元组,也叫只读列表)
tuple的格式是:(‘name’,True,[ ]……)
dict:(字典 ):存储大量的关系型数据----------->键值对
dict的格式是:{‘name’:'老男孩' ,‘name_list’:['反面教材','小花',‘小红’……],‘alex’:{'age':40,'hobby':'old_women',……},……}
set:(集合)
set的格式是:{ ‘wusir’,'alex',……}
2.int详解:bit_length() #十进制转化成二进制的最小位数
i=5
print(i.bit_length()) //3
int与str互转:int<-------->str
str---------->int int(str) 条件是字符串必须是全部由数字组成
int----------->str str(int)
3.bool详解:
bool与int互转:bool<--------->int
bool--------->int True----->1 False------>0
int---------->boo 非零即True ,零是False
bool与str互转:bool<--------->str
bool----------->str
str-------------->bool 非空即为True(比如:空格)
‘’空字符串--------->False
4.str详解:#str的知识点:索引,切片,步长
s=‘python12期’
s1=s[0]
print(s1) //p
切片:顾头不顾尾
正向切片:
s2=s[0:5] //pytho---------->s2=s[0:6] //python
s3=s[:6]//python
s4=s[1:-1] //ython12
s5=s[1:] //ython12期
s6=s[:] //python12期 (并不是s,而是复制s)
s7=s[:5:2] //pto ---------->隔1个取一个,2是步长
s8=s[4: :2] //01期
s9=s[2:6:3] //tn----------->隔2个取一个,3是步
反向切片一定要在后面加一个反向步长
s10=s[-1:-5:-1] //期21n
#5.字符串的常用操作方法
①**capitalize() //返回一个字符串的副本,它的第一个字符大写,其余的小写。
s='laoNANhai'
s1=s.capitalize()
print(s1) //Laonanhai
②*center(字符串的长度,填充物) //居中,填充物是使用指定的填充字符(默认是ASCII空间)完成的。如果宽度小于或等于len(s),原始字符串就会返回。
s2=s.center(20,'$') //$$$$$laoNANhai$$$$$$
③***upper()/lower()
str.upper() //返回一个字符串的副本,所有的大小写字符都转换成大写。
注意str.upper().isupper()可能是假的
s3=s.upper() //LAONANHAI
str.lower() //返回一个字符串的副本,所有的大小写字符都转换为小写。
注意str.lower().islower()可能是假的
s4=s.lower() //laonanhai
upper()/lower()应用:
④***startswith()/endswith()
str.startswith('字符或字符串',【切片的开始下标,【切片的结尾下标】】) //如果字符串以前缀开头,则返回True;否则返回False。前缀也可以是一个前缀的元组来查找。有了可选的开始,测试字符串从那个位置开始。有了可选的一端,停止在那个位置比较字符串。
注意遇到start和end是可以对字符串进行切片的,切片用逗号隔开
s5=s.startswith('l') // True
s6=s.startswith('lao') // True
s7=s.startswith(‘N’,3,6) // True
str.endswith('字符或字符串',【切片的开始下标,【切片的结尾下标】】) //同str.swith
print(str.endswith('oN',0,6)) #False
print(str.endswith('oN',0,4)) #True
⑤*swapcase() //返回一个字符串的副本,其中的大写字符转换为小写,反之亦然。
print(str.swapcase()) #LAOnanHAI
请注意 ----->s.swapcase().swapcase()==s不一定是正确的???
补充一点新知识:ord()和 hex( )
ord() #给定一个字符串表示一个Unicode字符,返回一个表示该字符的Unicode编码点的整数。例如,ord('a')返回整数97和ord('欧元')(欧元符号)返回8364。这是chr()的倒数。
hex( ) #将一个整数编号转换为用0x前缀的小写十六进制字符串。如果x不是Python int对象,则必须定义返回整数的index()方法。
⑥*title() //非字母隔开的 每个单词的 首字母 都要大写
print("they're tom's best friend.".title())
#They'Re Tom'S Best Friend.
⑦***通过元素找索引 find() / index()
str.find('字符串',【切片的开始索引,【切片的结束索引】】)
//返回要查找的字符串在原字符串中(或者切片范围内)第一次出现的索引。如果没有找到,返回-1。
str ='laoNANhai'
print(str.find('A',2,5)) #4(返回来的索引值并不是切片的索引值而是原字符串的索引值)
print(str.find('A',2,4)) #-1(find()找不到返回-1)
str.index('字符串',【切片的开始索引,【切片的结束索引】】)
//返回要查找的字符串在原字符串中(或者切片范围内)第一次出现的索引。如果没有找到,就会报错。
str ='laoNANhai'
print(str.index('A',2,4)) #ValueError: substring not found
⑧***strip():主要的功能是去除字符串前后端的空格、换行符、制表符
str = ' Alex
'
print(str) # Alex
str1 = str.strip()
print(str1) #Alex
strip()的应用之一:
strip()的应用之二:
str = 'ablabaexsba'
print(str.strip('a')) #blabaexsb
print(str.strip('abs')) #labaex
扩展出来的两个----->其一是lstrip(),其二是rstrip()
print(str.lstrip('a')) #blabaexsba
print(str.rstrip('a')) #ablabaexsb
print(str.lstrip('abs')) #labaexsba
print(str.rstrip('abs')) #ablabaex
⑨****split(‘用于分割的字符串’,最大分割次数)
默认以空格分割
s = 'wusir alex taiba'
print(s.split()) #['wusir', 'alex', 'taiba']
s = 'wusir,alex,taiba'
print(s.split(',')) #['wusir', 'alex', 'taiba']
s = 'QwusirQalexQtaiba'
print(s.split('Q')) #['', 'wusir', 'alex', 'taiba']
s = 'QwusirQalexQtaiba'
print(s.split('Q',2)) #['', 'wusir', 'alexQtaiba']
⑩*join(可迭代的对象)--------------->在某些情况下,列表(list)可转换成字符串(str) 注意:list-------------->str 只能用字符串
s = 'alex'
s1 = '*'.join(s)
print(s1) #a*l*e*x
list_of_s = ['alex','wusir','taibai']
s = ' '.join(list_of_s)
print(s,type(s)) alex wusir taibai <class 'str'>
⑪repalce('被替换的字符串',‘替换的字符串’,【被替换字符串需要被替换的次数】)
#6.基本数据类型的公共常用方法
①len(字符串、字节、元组、列表或集合(如字典)-------------------->总个数
s = 'ssfjaskhjkahe987#%2sl'
print(len(s)) #21
②count('要计算出现次数的字符串',【切片的开始,【切片的结尾】】)
---------------->计算某些元素出现的个数,可切片
s = 's2sfjaskhjkahe987#%2sl'
print(s.count('j',2,-4)) #2
③format()格式化输出:
④isalnum()--------------------------->字符串是否都是由字母或数字组成。如果字符串中的所有字符都是字母数字,并且至少有一个字符,否则返回true。
⑤isalpha()--------------------->字符串是否只由字母组成。如果字符串中的所有字符都是按字母排序的,并且至少有一个字符,否则就返回true。
⑥isdigit()------------------------->字符串只由数字组成。如果字符串中的所有字符都是数字,并且至少有一个字符,否则就返回true。形式上,一个数字是一个具有属性值的数字=数字或数字=十进制的字符。
s = 'jinxin123'
print(s.isalnum()) #True
print(s.isalpha()) #False
print(s.isdigit()) #False
#7.分别用while,for循环输出字符串的每一个字符。