Python学习-0609

一、字符串操作

1、用途:记录描述性质的状态

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

数据类型转换:str可以把任意类型转换成字符串类型 str(【】)

3、常用操作+内置的方法

优先掌握的操作:

1、按索引取值(正向取+反向取) :

msg=‘hello你好‘

print(msg[0]) # 取出的由单一字符组成的str

print(msg[5])

print(msg[-1])

2、切片(顾头不顾尾,步长)

msg = ‘hello你好‘

print(msg[1:6]) # ello你

print(msg) #字符串不会变

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

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

print(msg[:6:2]) # 省略起始位置,默认起始位置为0

print(msg[::2]) # 省略结束位置,默认一直到末尾全部都取到

print(msg[::]) # 省略步长,默认步长为1=

print(msg[:]) # 省略步长,默认步长为1

print(msg[::-1]) # 倒着取

3、长度len

msg = ‘hello \n你好‘

print(len(msg)) # 统计的是所有字符的个数

4、成员运算in和not in

msg = ‘hello 你好‘

print("你好" in msg)

print("你好" not in msg)

5、移除空白strip

msg="     \t    \n   hello    \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:b:c:d"

res=msg.split(‘:‘)

print(res)#列表

msg=’hello 你 好‘

print(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())

3、startswith,endswith

msg = "dsb lxx is sb"

print(msg.startswith("ds"))

print(msg.endswith("sb"))

4、format的三种玩法

(1)print("my name is %s %s" % ("egon",18))

(2)print("my name is {} {}".format("egon",18))

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

print("my {1}name is {0} {0}{1}{1}".format("egon",18))

(3)x=‘egon‘  y=18

print(f"=====>{x}===>{y}")

5、split,rsplit

print("egon:18:male:10".split(‘:‘,2))

print("egon:18:male:10".split(‘:‘,1))

print("egon:18:male:10".rsplit(‘:‘,1))

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))

4、captalize,swapcase,title

print("my name is egon".capitalize())

print("AbCd".swapcase())

print("my name is egon".title())

5、is数字系列

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

6、is其他

name=‘egon123‘

print(name.isalnum()) #字符串由字母或数字组成

print(name.isalpha()) #字符串只由字母组成

name="egon"

print(name.islower())

print(name.isupper())

二、列表类型操作

1、用途:按照位置存多个值

2、定义方式:在[]内用逗号分隔开多个任意类型的值

类型转换:

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)

print(l)

往指定位置前插入值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=[‘a‘,1,‘b‘]

l=[11,22,33]

l.extend([444,555,66])

print(l)

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

print(l)

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)

相关推荐