第二周python成长之路day06

一、字符串及其操作
二、列表类型操作
1、用途:记录描述性质的状态

2、定义方式:单引号、双引号、单引号内包含的一串字符
msg="[1,2,3]" #msg=str(“1,2,3”)

数据类型转换:str可以吧任意类型转换成字符串类型
star([])

3、常用操作+内置的方法
优先掌握的操作:
1、按索引取值(正向取+反向取):只能取
msg=‘hello 你好’
print(msg[0])#取出的由单一字符串组成的str
print(msg[5])
print(msg[-1])

l=[1111,2222]
l[0]=3333
print(l)

msg=“hello”
msg[0]=“H”

2、切片(布头不顾尾,步长)
msg=‘hello 你好’
print(msg[1:6])#ello
print(msg)#字符串不会变

print(msg[1:6:1]) #默认步长,1 2 3 4 5
print(masg[1:6:2] #默认步长,1 3 5

print(msg[:6:2]) #省略起始位置,默认起始位置为0
print(msg[::2]) #省略结束位置,默认一直到末尾全部都取到
print(msg[::]) #省略步长,默认步长为1
print(msg[:]) #省略步长,默认步长为1

了解:
msg=‘hello 你好’
print(msg[0:5:1])
print(msg[0:5:-1]) #会报错,因为方向需要保持一致才行
print(msg[-1:-5:-1]) #-1 -2 -3 -4

msg=‘hello 你好’
print(msg[::-1]) #-1

3、长度len
msg=‘hello \n 你好’
print(len(msg)) #统计的是字符的个数

4、成员运算in和not in
msg = ‘hello 你好’
print(("你好"in msg))
print("你好"not in msg)#推荐使用
print(not “你好” in msg)#不推荐使用

5、移除空白strip
msg=" hello "
res=msg.strip()
print(res)

msg=" \t \nhello \t "
res=msg.strip() #默认去掉的是字符串左右两端的空白字符串
print(msg)

msg=" \t \n he llo \t "
res=msg.strip() #默认去掉的是字符串左右两端的空白字符
print(res)

msg="()-=hello()&#@!"
res=msg.strip("()*=-!&#@")
print(res)#默认去掉的是字符串,没有改变原来的
print(msg)

user=input(‘用户名>>>:’).strip() #user=“egon”
password=input(‘密码>>>:’).strip()
if user ==“egon” and password == “123”:
print(‘账号密码正确’)
else:
print(“张海或密码输入错误”)

6、切分split
msg=“a🅱️c:d”
res=msg.split(’:’)
print(res)

msg=“hello 你 好”
print(msg.split(’’))

msg=“a🅱️c:d”
res=msg.split(’:’)

把列表拼成一个str,列表中的元素必须全部为str类型
print(res)
print(":".join(res)) #‘a’+":"+‘b’+":"+‘c’+’:’+“d’”
print("-".join(res))
print("=".join(res))

7、循环
for x in “hello 你好”:
print(x)

需要掌握的操作
1、strip lstrip rstrip
msg=“hello
print(msg.strip(’’))
print(msg.lstrip(’
’))#省略前半部
print(msg.rstrip(’*’))#省略后半部
2、lower,upper
msg=“aABc 你1”
print(msg.lower()) #全部小写
print(msg.upper())#全部大写

4、format的三种玩法
print(“my name is %s %s”%(“egon”,18))

print(“my name is {} {}”.format(“egon”,18))
print(“my name is {x}{y}”.format(y=18,x=“egon”))

x=‘egon’
y=18
print(f"=>{x}==>{y}")

5、split,replit
print(“egon:18:male:10”.split(’:’,2))
print(“egon:18:male:10”.split(’:’,1))
print(“egon:18:male:10”.rsplit(’:’,1))

6、joIn

7、replace
msg="()-=he llo()&#@!"
res=msg.strip("()
=-!&#@").replace(’ ‘,’’)
print(res)

print(‘my name is sb sb sb’.replace(‘sb’, ‘SB’, 1))

8、isdigit
age="18**** "
print(age.isdigit())

age = input(’>>>: ') # age = "***18_++_ "
if age.isdigit():
age = int(age)
if age > 18:
print(‘猜大了’)
elif age < 18:
print(“猜小了”)
else:
print(‘猜对了’)
else:
print(“必须输入数字,小垃圾”)

了解操作
1、find,rfind,index,rindex,count
print("=abcdefab".find(“ab”)) # 查找一个子字符串在大字符串中出现的起始位置
print("=adcabdefab".find(“ab”,0,6)) # 查找一个子字符串在大字符串中出现的起始位置
print("=adcabdefab".rfind(“ab”)) # 查找一个子字符串在大字符串中出现的起始位置
print("====".index(“ab”)) # 找不到则报错,而find则会返回-1

2、center,ljust,rjust,zfill
print(“egon”.center(50,’’))
print(“egon”.ljust(50,’
’))
print(“egon”.rjust(50,’*’))
print(“egon”.zfill(50))

3、expandtabs

4、captalize,swapcase,title
print(“my name is egon”.capitalize())
print(“AbCd”.swapcase())
print(“my name is egon”.title())

5、is数字系列
在python3中
num1=b’4’ #bytes
num2=u’4’ #unicode,python3中无需加u就是unicode
num3=‘四’ #中文数字
num4=‘Ⅳ’ #罗马数字

isdigit():用于b和u格式,即num1和num2
isdecimal():用于u格式,即num2
isnumberic():用于u,中文数字、罗马数字,即num2、num3、num4

isdigt:bytes,unicode
print(num1.isdigit()) #True
print(num2.isdigit()) #True
print(num3.isdigit()) #False
print(num4.isdigit()) #False

isdecimal:uncicode
bytes类型无isdecimal方法
print(num2.isdecimal()) #True
print(num3.isdecimal()) #False
print(num4.isdecimal()) #False

isnumberic:unicode,中文数字,罗马数字
bytes类型无isnumberic方法
print(num2.isnumeric()) #True
print(num3.isnumeric()) #True
print(num4.isnumeric()) #True

三者不能判断浮点数
num5=‘4.3’
print(num5.isdigit())
print(num5.isdecimal())
print(num5.isnumeric())

6、is其他
name=‘egon123’
print(name.isalnum()) #字符串由字母或数字组成
print(name.isalpha()) #字符串只由字母组成

name="====>inputasd" # “input” in name
print(name.isidentifier())

name=“egon”
print(name.islower())
print(name.isupper())

name=" "
print(name.isspace())

name=“My Name Is”
print(name.istitle())

二、列表操作类型
1、用途:按照位置存多个值

2、定义方式:在[]内用逗号分隔开多个任意类型的值
l = [111, 3.1, “abc”, []] # l=list(…)
print(type(l))

类型转换
list(传入的可以是任意能够被for循环遍历的类型)
print(list(“hello”))
print(list([“a”,‘b’]))
print(list({“k1”:11,‘K2’:222}))

3、常用操作+内置的方法
优先掌握的操作:
1、按索引改、取值(正向存取+反向存取):即可改也可以取
l=[111,222,333,444,555]
l[0]=1231231231231231231
print(l)

l[5]=666 # 超出索引范围则报错,即不能用这种赋值操作为列表增加值

2、切片(顾头不顾尾,步长)
l=[111,222,333,444,555]
res=l[0:3]
print(res)
print(l)

3、长度
l=[111,222,333,444,555]
print(len(l))
4、成员运算in和not in
l=[111,222,333,444,555]
print(111 in l)
print(111 not in l)

5、追加
l=[111,222,333,444,555]
l.append(666)
l.append(777)
print(l)

5.1 往指定位置前插入值insert
l.insert(0,123123231231)
print(l)

6、删除
l=[111,“aaa”,222,333,444,555]
a:del是通用的、不是列表专属的删除方式
del l[0]
print(l)

b:列表专属的删除方式之指定元素删除
res=l.remove(“aaa”)
print(l)
print(res) # None

c:列表专属的删除方式之指定索引删除
l.pop() # 默认删除的是索引-1对应的值
print(l)

res=l.pop(1)
print(l)
print(res)

7、循环
l=[111,“aaa”,222,333,444,555]
for item in l:
print(item)

需要掌握的操作
l=[111,222,111,111]
print(l.count(111))

l = [10, -1, 3, 2, 11, 7]
l.sort(reverse=True)
print(l)

l = [10, -1, 3, 2, 11, 7]
l.clear()
print(l)

l=[‘a’,1,‘b’]
l.reverse()
print(l)

l=[11,22,33]
l.extend([444,555,66])
print(l)

l.append([444,555,666])
print(l)

l1=[11,22,33]
l1列表内存存储
索引0 值11的内存地址
索引1 值22内存地址
索引2 值33内存地址

l2=l1.copy() # 等同于l4=l1[:]
l2列表内存存储
索引0 值11的内存地址
索引1 值22内存地址
索引2 值33内存地址
l2[0]=4444
print(l2) # [4444, 22, 33]
print(l1) # [11, 22, 33]

l3=l1
l3[0]=4444
print(l3)
print(l1)

今日总结:
1、字符串及其操作:切片(顾头不顾尾)、长度len、成员运行的in和not in使用、移除空白strip、切分split以及strip\lstrip\rstrip和lower\upper和format和replace\isdigit运行操作
需要了解find\rfind\index\rindex\count
center\ljust\rjust\zfill\expendtabs
captalize\swapcase\title
is数字系列中isdigit:bytes,unicode
isdecimal:uncicode
isnumberic:unicode,中文数字,罗马数字
三者不能判断浮点数

2、列表类型操作:
列表中【】内用都好分隔开多个任意类型的值,切片、长度Len、in与not in、追加append、在指定为之前插入值insert、删除del(指定元素删除:res=l.remove(“aaa”)\指定索引删除:l.pop()默认删除的是索引-1对应值)、循环

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值