2.基本数据类型简介-int-str-bool

基本数据类型简介

int 整数

bit_length():二进制的长度

a=10 //1010 #10的二进制形式
print(a.bit_length()) #测得是二进制的长度

str 字符串

字符串是不可变的对象,所以任何的操作对原字符串是没有任何影响的,操作会返回新的字符串

索引语法:字符串[索引];

s="zhao,qian,sun,li,zhou,wu,zheng,wang"
print(s[0])#索引正向:从零开始
print(s[-1])#反向:从-1开始

切片语法:str[start:end:step]

s="zhao,qian,sun,li,zhou,wu,zheng,wang"
print(s[0:10])#结果为:zhao,qian,  顾头不顾尾 取不到索引为10的那个字符
print(s[-8:-1])#结果为:eng,wan  索引为-1的是取不到的
print(s[2:100])#结果为:ao,qian,sun,li,zhou,wu,zheng,wang  给两个参数,默认向右切,第二个参数如果超出索引的范围,切到最后
print(s[:5])#结果为:zhao,  从头开始切  切到最后同理
print(s[:])#结果为:zhao,qian,sun,li,zhou,wu,zheng,wang  切出全部
#跳着切
print(s[2:9:3])#结果为:aqn  第三个参数代表步数,几步为一组,切出每组第一个,就是结果
print(s[-9:-1:2])#结果为:hn,a
print(s[9:2:-1])#结果为:,naiq,o  反着切

字符串常用的操作

较为重要的count()、find()、index()的操作

#count 数数
s="zhao*qian*sun*li,zhou,wu,zheng,wang"
print(s.count("o")) #统计字母o在字符串出现的次数
print(s.count("j")) #没出现则返回0

# find 查找 可有切片的结合
s="zhao*qian*sun*li,zhou,wu,zheng,wang"
print(s.find("o")) #返回的是索引  找不到则返回-1

#index 求索引  也可有切片
s="zhao*qian*sun*li,zhou,wu,zheng,wang"
print(s.index("o",6,20)) #返回的是索引  找不到则会报错

字母的大小写

s="xiao ming tai shuai le"
s1=s.capitalize() #首字母大写
print(s) #字符串是不可变对象
print(s1)
s2=s.title()#标题,就是每个单词首字母大写
print(s2)
s3=s.upper()#转换成大写字母
print(s3)
s4=s3.lower()#转换成小写字母
print(s4)
l="Xiao Ming"
l1=l.swapcase()#字母大小写转换
print(l1)

strip(str) :剔除特定的字符操作

j="   qu kong ge  "
j1=j.strip() #是去掉左右两边的空格  可用在登录功能方面
print(j)
print(j1)
j2=j.lstrip() #去掉的是左边的空格
j3=j.rstrip() #去掉的是右边的空格
print(j2)
print(j3)
s="小明真帅,臭美"
print(s.strip("臭美"))#去掉特定的字符

replace():替换字符

s="zhao,qian,sun,li,zhou,wu"
print(s.replace(",","之后是"))#结果为zhao之后是qian之后是sun之后是li之后是zhou之后是wu

split():切割字符串(想想锯木头的现实情况)

# #切割 想想锯木头的现实情况
s="zhao*qian*sun*li,zhou,wu,zheng,wang"
l=s.split("*") #列表来接收切割之后的每一项
print(l)#['zhao', 'qian', 'sun', 'li,zhou,wu,zheng,wang']

l1=s.split("zhao*qian*sun*li,zhou,wu,zheng,wang")#全部切割
print(l1) #得到两个空字符串:['', '']

l2=s.split("你")#不存在,则返回的是原字符串的内容
print(l2)#['zhao*qian*sun*li,zhou,wu,zheng,wang']

l3=s.split("zhao*qian*sun*li,zhou,wu,zheng,wang1111")#超出的情况
print(l3)#['zhao*qian*sun*li,zhou,wu,zheng,wang']

l5=s.split("o",1)#还有第二个参数的设置,作用是切数割的次,说成分割更恰当些
print(l5)#['zha', '*qian*sun*li,zhou,wu,zheng,wang']

#在开头和结尾出现你的刀,一定会出现空的字符串
#空字符串不能做参数

{}版的格式化输出

print("{}帅,{}信不,不信给你{}".format("小明","我",200))
print("{1}帅,{0}信不,不信给你{2}".format("小明","我",200))
#这个不要求数据类型,通吃

startswith()、endswith()

s="zhao*qian*sun*li,zhou,wu,zheng,wang"
print(s.startswith("zhao"))#T   判断开头是否为***
print(s.endswith("wan"))#F    判断结尾是否为***

isalnum()、isalpha()

s="zhaoqiansunlizhouwu21343zhengwang"
print(s.isalnum())#T 判断字符串为数字和字母组合而成
print(s.isalpha())#F 判断字符串为字母组合而成

python的内置函数

len():计算字符串的长度

迭代:我们可以使用for循环来便利(获取)字符串中的每一个字符

该语法:for 变量 in 可迭代对象:#可迭代对象:可以一个一个往外取值的对象

      pass

#迭代与len()
s="你好帅"
print(len(s))#3
for k in s:
    print(k)

bool 布尔值

数字变成bool:如果数字是零,那么bool值为False 如果是非零的,那么bool值为True

True与1的效率问题:1的效率高

字符串转换成bool类型:空字符串是False,非空字符串都是True

a=None #真空 什么都没有 它的bool值是False

总的来说涉及到空的(各种数据类型)bool值都是False,非空:True

有什么不对的地方,欢迎指正。

上一篇:[Ruby on Rails Issue] When Setting Sqlite version on the Gemfile, Show error "An error occurred while installing sqlite3 ",


下一篇:网络基础:分享几个路由器设置小技巧,总有用得到的一天!