4.29 笔记+day7作业

字符串

#利用下标的正数、负数分别输出字符串的倒序**

a=input("请输入字符串")
i=len(a)-1
while i>=0:
    print(a[i],end="")
    i-=1

#第二种

a=input("请输入字符串")
i=-1
while i>=-len(a):
    print(a[i],end="")
    i-=1

#字符串切片

a="qwerty"
b=a[1:5:2]

#中括号里面的数依次分别代表了开始的位置,结束的位置,步长
print(b)# wr
#几种特殊情况

    a="qwrtyu"
    b=a[-1:-3:-1]
 	print(b)#uy

#这种情况是从后往前排序的,步长要为负,不然不输出结果

  a="1234567890wert"
  b=a[8:-1:1]
  print(b)#90wer

#类似于上面的情况,虽然结束值是负数,但由于下标的特性,-1也代表了正数的最后一个值,
所以步长必须为正,不然不会输出**

#倒序输出

a="qwert"
b=a[::-1]
print(b)# trewq

#字符串遍历、拼接、重复
#遍历

a="asdfgh"
for i in a:
    print(i,end=" ")

#结果:a s d f g h
#拼接、重复

a="123"
b="456"
c=a+b
print(c)#123456
d=a*3
print(d)#123123123

a,b="12"
print(a,b)#1 2
a,b,c,d="1234"
print(a,b,c,d)#1 2 3 4

#这里只能一一对应

#字符串函数
#find 显示查找的第一次出现的时候首个字符的下标,若不存在返回-1

a="qwertyuioer"
i=a.find("er")
print(i)    #2
j=a.find("45")
print(j)    #-1
#rfind 从右向左查找
k=a.rfind("er")
print(k)    #9

#index 大致与find相似,但如果查找的字符串不存在会报错

a="1234ert"
b=a.index("34")
print(b)
c=a.index("45")
print(c)#报错,ValueError: substring not found

#count 统计所查找的字符串出现的个数

a="123456qwertqwerqwer"
b=a.count("qwer")
print(b)

#partition 指定一个字符,从指定的字符处分割成多个字符,但只对从左向右第一个指定的字符有效

a="123-1234-1234"
b=a.partition("-")
print(b)    #('123', '-', '1234-1234')

#split splitlines
#split

a="12345-12345-12345"
b=a.split("-")
print(b)    #['12345', '12345', '12345']

#splitlines

a="1234\n-234\n-23423"
b=a.splitlines()
print(b)

#对比
a="1234\n-234\n-23423"
c=a.split("\n")
print(c)

#maxsplit ,表示最大的分割次数

a="1-1-2-3-4"
b=a.split("-",maxsplit=2)
c=a.split("-",maxsplit=4)
print(b)    #['1', '1', '2-3-4']
print(c)    #['1', '1', '2', '3', '4']

#replace 将一个字符换成另一个字符,原字符串不变,生成一个新的字符串

a="qwert"
b=a.replace("q","2")
print(b)    #2wert

#maketrans \translate

a="521"
x=str.maketrans("12345","uoeri")
print(x)    #{49: 117, 50: 111, 51: 101, 52: 114, 53: 105}
y=a.translate(x)
print(y)    #iou

#center 居中函数

a="qwer"
b=a.center(10)
print(b,end="$")    #   qwer   $

#ljust \rjust\zfill 数字10代表的是填充完的总长度,
特殊符号代表的用什么填充的,zfill用0填充

a="qwer"
b=a.ljust(10,"$") # 左填充
print(b)
c=a.rjust(10,"¥") # 右填充
print(c)
d=a.zfill(10) # 0填充
print(d)

#strip、lstrip、rstrip

a="   qwe  "
b=a.strip()#删除所有空格
print(b,end="*")#qwe*
print()
a="   qwe  "
c=a.lstrip()#删除左边的空格
print(c,end="*")#qwe  *
print()
a="   qwe  "
d=a.rstrip()#删除右边的空格
print(d,end="*")#   qwe*

#括号里有什么就删除什么

a="$$$123$$$"
b=a.lstrip("$")
c=a.rstrip("$")
print(b)
print(c)

#位置参数 format

a="姓名{} 年龄{}"
b=a.format("张三",19)
print(b)

a="{1} {0}".format("python","hello")
print(a)

#关键字参数

a="我叫{name},今年{age}岁,性别{sex}".format(age=19,name="张三",sex="男")
print(a)

#填充 特殊符号$ * &表示的用什么填充,^表示居中,<表示左对齐,>表示右对齐

a="我叫{:$^8}".format("张三")
print(a)
b="我叫{:*<8}".format("张三")
print(b)
c="我叫{:&>8}".format("张三")
print(c)

#精度和进制

a="长度{:.2f},宽度{:.3f},高度{:.0f}".format(1234.234,12.2345,34.43)
print(a)

a="二进制{:b},八进制{:o},十六进制{:x}".format(10,10,10)
print(a,)

#格式化

a="我叫%s,今年%d岁,考了%f分,成才率89.6%%"%("张三",16,98.4)
print(a)

#upper\lower\swapcase

a="werQWE"
b=a.upper()#全部变为大写
print(b)
c=a.lower()#全部变为小写
print(c)
d=a.swapcase()#大小写相互转化
print(d)

#title:将每个单词的首字母大写 capitalize:将第一个单词的首字母大写

a="what is your name"
b=a.title()
print(b)#What Is Your Name
c=a.capitalize()
print(c)#What is your name

#\t制表符(默认间隔四个字符)
a="what\tis\tyour\tname"
print(a)#what	is	your	name

#isalpha 判断字符串是否全是字母 iadigit判断字符串是否全是数字
isalnum判断字符串是否全是字母和数字组成

a="qwer"
b="qwe123"
c="1234"
print(a.isalpha())#True
print(b.isalpha())#False
print(c.isdigit())#True
print(b.isdigit())#False
print(c.isalnum())#True
print(b.isalnum())#True

#isupper islower istitle

a="qweQWE"
b="qwer"
c="QWE"
d="Wfd"
a1=a.isupper()
a2=a.islower()
a3=a.istitle()
print(a1,a2,a3)#False False False
b1=b.islower()
c1=c.isupper()
d1=d.istitle()
print(b1,c1,d1)#True True True

#startswith endswith分别用来判断字符串的开头结尾是否是指定的字符串

a="1234qwer"
b=a.startswith("1234")#True 
print(b)
c=a.endswith("qwer")#True 
print(c)

#help() dir()
a="qwert12344wert"
print(dir(a))
print(help(a.replace))

#encode 编码 \decode解码

    a="qwe12"
    b=a.encode("utf-8")
    print(b)    #b'qwe12'
    c=b.decode("utf-8")
    print(c)    #qwe12

#\转义字符
a="123\ndf\tasdf\'adf\"as\\"
print(a)
#结果:123
  	  df	asdf'adf"as\

#R或r元字符串 可以使转义字符失效

a=r"sdf\\sdf\nf\t"
print(a)#sdf\\sdf\nf\t

作业

#1.判断一个数是否是回文数。例如:输入:121,输出也是121,像这样的数就是回文数

num =input("请输入一个数")
if num==num[::-1]:
    print(num,"是回文数")
else:
    print(num,"不是回文数")

# 2.查找字符串中每个字符最后出现的位置。

a="黑化肥发挥会发灰,灰化肥发黑会发挥"
for index,char in enumerate(a):
    if index ==a.rindex(char):
        print((index,char))

# 3.‘2018-11-12’去掉‘-’输出

s = '2018-11-12'
s1=s.replace("-","")
print(s1)

# 4.统计数字,字母,下划线个数

a=input("请输入字符串:")
sz=0
zm=0
xhx=0
for i in  a:
    if i>="a" and i<="z" or i>="A" and i<="Z":
        zm+=1
    elif i>="0" and i<="9":
        sz+=1
    elif i=="_":
        xhx+=1
print("数字",sz,"字母",zm,"下划线",xhx)

# 3.编写一个函数,接收传入的字符串,统计大写字母的个数、小写字母的个数、数字的个数、
# 其它字符的个数,并以元组的方式返回这些数,然后调用该函数。

def hanshu(x):
    list=[]
    dx=0
    xx=0
    sz=0
    other=0
    for i in range(x.__len__()):
        if x[i]>="A" and x[i]<="Z":
            dx+=1
        elif x[i]>="a" and x[i]<="z":
            xx+=1
        elif a[i]>="0" and a[i]<="9":
            sz+=1
        else:
            other+=1

    list.append(dx)
    list.append(xx)
    list.append(sz)
    list.append(other)

    print("列表",list)
    return tuple(list)

a=input("输入")
y=hanshu(a)
print(y)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值