基本数据类型的介绍 重点:字符串变形的魔法

1.之前学的(数字,字符串,布尔值)

#python3中所有的数字都是int类型,字符串时str类型,列表都是list类型,元组都是tuple类型,字典是dict类型,布尔值是bool类型

#数字(int)对应的魔法:

a1="123"
b=int(a1)           #字符串转变成数字
b=b+100
print(b)
num="a"
v=int(num,base=16)     #将a转换成16进制的数,输出结果为10
print(v)

  

age=10
r=age.bit_length()    #这个数字的二进制用几位来表示   10对应的二进制是 1010,是四位的,所以输出的结果是4(至少用几位来表示)
print(r)

  

#字符串对应的魔法

test="alex"
v=test.capitalize()     #将字符串首字母大写的功能 结果是Alex
print(v)
test="aLeX"
v1=test.lower()
print(v1)
v2=test.casefold() #两个的结果都是变小写,但是不同的是,lower只能将英文的变过来,casefold更牛逼,可以将一些法语德语的也变过来
print(v2)
test="aLeX"
v=test.center(20) #表示扩展成20位并将字符串居中
print(v)
v2=test.center(20,"!") # 后面的东西可有可无,代表空格用什么填充,但只能是一个字符
print(v2)

test="aLexalex"
v=test.count("e") #count用来寻找字符串中子序列的数量,输出结果是2
print(v)
v2=test.count("ex") #寻找 ex的数量,输出结果也是2
print(v2)
v3=test.count("ex",5) #从第五位寻找ex的数量,输出结果是1
print(v3)
v4=test.count("ex",5,6) #从第5-6位寻找ex的数量,输出结果是0
print(v4)

encode 和decode的功能也很重要,之后讲

test="aLexalex"
v=test.endswith("ex") #判断字符串是不是以ex结尾,输出结果为true
b=test.startswith("q") #判断是否以q开头,结果为false
print(v,b)

test="alexalex"
v=test.find('ex') #寻找ex的位置
print(v)
v1=test.find('ex',5,8) #从第5-8位寻找,从[5-8)的位置找,左闭右开,若未找到,则返回的值为-1
print(v1)

test="i am {name},age{a}"
print(test)
v=test.format(name="alex",a=15) #赋值功能,将上面大括号里的东西赋值
print(v)

test="i am {0},age{1}"
print(test)
v=test.format("alex",15) #上面的大括号是0,1,下面括号里的东西也是赋值,按出现顺序,用逗号隔开
print(v)

test="i am {name},age{a}"
v1=test.format_map({"name":"alex","a":19}) #格式化,传入的值是以字典的形式一一对应的
print(v1)

test="zxce_324"
v=test.isalnum() #判断字符串中是否只是包含数字和字母 输出的结果有false,因为里面有下划线
print(v)
 
 
test="username\temail\tpassword\nyxz\[email protected]\t123\n"
r=test.expandtabs(20) #在字符串中存在 ‘\t’,输入这个语句可以将这个空格的距离设定出来,注意,是制表符前面的内容是20个空格!!!
print(r) #username是八个,需要在额外加上12个空格变成20个(下例题,指出表格,且表头的距离都是相等的)
输出结果:

                             username      email       password
                              yxz        [email protected]      123

test="asdas123"
v=test.isalpha() #判断是否是字母、汉字
print(v)
test="213"
v1=test.isdecimal() #判断是否是数字,但只能是十进制小数
v2=test.isdigit() #判断是否是数字,包括牛逼的数字,如①,也是数字,识别的出来
v2=test.isnumeric()        #判断是否是数字,更牛逼,中文都能识别
print(v1,v2)

a="_231asd"
v=a.isidentifier() #判断是否是标识符
print(v)

test="asdasfgds"
v=test.isprintable()
print(v)
test="asdasfg\nds"
v=test.isprintable() #包含一些不可见、不可显示的的东西如换行、制表符,则不可打印,输出为false
print(v)
test="  saddas"
v=test.isspace() #判断是否全部是空格,这道题输出的就是false
print(v)

test="Rsad WR asd"
v=test.istitle() #判断是否是标题,即每个单词的第一个字母必须都大写
print(v)
v1=v=test.title() #将字符串转换称标题
print(v1)
####重要!!!将字符串中的每一个元素 按照指定分隔符进行分割,这个必须记住
test="你是风儿我是沙"
print(test) #输出结果为你是风儿我是沙
t=" "
v=t.join(test) #将字符串中以空格 隔开 你 是 风 儿 我 是 沙
print(v)
v1="_".join(test) #也可以写成这种格式,以下划线分割 你_是_风_儿_我_是_沙
print(v1)
test="alex"
v=test.ljust(20,"*") #将长度调整为20,将原来的放在左边后边补上你想要的东西
print(v) #输出为alex****************
v1=test.rjust(20,"&")
print(v1) #输出为&&&&&&&&&&&&&&&&alex
test="alex "
v=test.lstrip() #去除左边的空格以及换行符
v1=test.strip() #左右两边的都去掉
v2=test.lstrip("ale") #去掉左边指定的东西,在这里会输出一个 x
print(v)
print(v1)
print(v2)

test="你是风儿我是沙"
test1="去你妈的风和沙"
m=str.maketrans("你是风儿我是沙","去你妈的风和沙") #创建一个以上两个相同长度的字符串的对应关系
v=test.translate(m) #将第一个字符串test 按照翻译规则 进行转换
print(v)

test="testsadasdvxc"
v=test.partition("s") #将字符串 按"s"分割,且找到第一个s就停下来,分成三部分
print(v) #('te', 's', 'tsadasdvxc')
v1=test.rpartition("s") #将字符串从右边分割
print(v1) #('testsada', 's', 'dvxc')
v2=test.split("s") #将字符串全部进行分割,不过中间的S被去掉了
print(v2) #['te', 't', 'ada', 'dvxc']
v3=test.split("s",2) #将字符串进行分割,s去掉,但只识别两个,之后的就不分割了
print(v3) #['te', 't', 'adasdvxc']

# ###应用:计算器
# #正则表达式,确定是否想要分割的元素
# "1*2"进行分割
# 1 * 2 使用的第一种分割
# 1 2 使用的第二种分割

test="testsa\nda\nsdvxc"
v=test.splitlines() #按照换行符进行分割,得到结果['testsa', 'da', 'sdvxc']
print(v)
v1=test.splitlines(True) #也是按照换行符进行分割,但是加了一个true,就要保留换行符,输出结果为['testsa\n', 'da\n', 'sdvxc']
print(v1)

test="bakwre .1.1."
v=test.startswith("bak") #判断字符串是否以 bak开头,输出结果为true
v2=test.endswith("213")
print(v)
print(v2)

test="safBBJkk"
v=test.swapcase() #大小写转换
print(v)


 六个基本功能:join split find strip upper lower(必须记住的功能)

字符串的灰魔法,也是必须要记住的(test[],len())

test="alex"
v=test[0]             #通过索引的方式获取字符串中的某一个字符
print(v)
v1=test[0:1]         #大于等于0小于1的范围
print(v1)
v2=test[0:-1]         #-1代表最后一位,这里代表大于等于0小于3的字符
print(v2)
v3=len(test)           #输出当前字符串的长度,在python中,要向卓也只有三个字符
print(v3)
li=[11,22,3,34]    
v4=len(li)               #输出列表中的元素的个数,这里输出结果是4
print(v4)

test="要向卓哈哈哈哈哈哈哈"         #一个一个字的输出
index=0
while index<len(test):
print(test[index])
index+=1
#for循环, for 变量名 in 字符串(在索引里也能用,在切片里也可以用)
# print a
for a in test: # 也可以达到一个一个输出的效果
print(a)
#replace的功能 替换
test="asdasdqwe"
v=test.replace("asd","fgh") #前面是老的字符串,后面是新的字符串
print(v)
v1=test.replace("asd","fgh",1) #只替换第一个
print(v1)


 补充知识:字符串一经创建,就无法进行修改,一旦修改或者拼接,都会在内存中重新生成一个字符串,这是计算机的基本原理

test="要向卓真的很牛逼"
for item in test:
    print(item)          #挨个输出字符串中的内容,在for循环中,break和continue也同样适用
#range可以帮助我们创建连续的数字,括号里写100,默认为【0-100)
#也可以创造不连续的数字,需要在括号设置布长 v=range(0,100,5)
v=range(100)
for a in v:             #创建一个范围,在这个范围内进行for循环
    print(a)

老师补充的一道练习题:

实现功能的习题:用户输入一个字符串,输出字符串中的每个字符以及对应的位置
我的答案:
test=input("请输入一句话:")
print(test)
l=len(test)
print(l)
r=range(0,l)
for i in r:
    print(i,test[i])

 老师更简便的答案:

 
test=input("请输入一句话:")
for item in range(0,len(test)):
    print(item,test[item])
 

  

猜你喜欢

转载自www.cnblogs.com/yxzymz/p/12709567.html