内置方法

字符串内置方法

1.移除字符串首尾指定字符,可以选择方向  strip(除去)        lstrip  rstrip

s1 = '$$$jason$$$'
print(s1.strip('$'))    #jason
print(s1.lstrip('$'))   #jason$$$     左边删掉
print(s1.rstrip('$'))  # $$$jason      右边删掉  

2.大小写  lower(降低)  upper(升高)    islower     isupper

s2 = 'JaSoN666Sb'
print(s2.lower())      # 将所有的英文字母变为小写 jason666sb
print(s2.upper())     # 将所有的英文字母变为大写 JASON666SB
print(s2.islower())  # 判断字符串中所有的英文字母是否是纯小写  结果是布尔值
# print(s2.isupper())  # 判断字符串中所有的英文字母是否是纯大写  结果是布尔值

一般可以用于图片验证码

code = 'JaSon6'
print('这是返回给用户的验证码:%s' % code)
user_code = input('请输入验证码>>>:').strip()   #防止空格
if code.lower() == user_code.lower():               #忽略大小写
    print('验证码正确')

3.判断字符串开头或结尾是否是指定字符  startswith (开始于)   endswith(结束于)

s3 = 'jason kevin jason tony 666'
print(s3.startswith('j'))  # True
print(s3.startswith('jason'))  # True
print(s3.startswith('tony'))  # False
print(s3.endswith('6'))  # True
print(s3.endswith('666'))  # True         #注意中间都有个's'
print(s3.endswith('jason'))  # False

4.格式化输出  format(格式化)

方式1 占位符:%s     %d

方法2  format方法>>>四种玩法

玩法一:占位符,用{}占位

print('my name is {} my age is {}'.format('jason', 18))

玩法二:索引取值,可以重复使用

print('my name is {0}  {0} my age is {1}  {0}'.format('jason', 18))

玩法三:指名道姓,可以重复使用

print('my name is {name} {name} my age is {age}'.format(name='jason', age = 18'))  #注意format后面不是字典,而是赋值

玩法四:直接使用

name = 'jason'
age = 18
print(f'my name is {name} my age is {age} {name} {age}')
#前面一定要加个f

注意:以上玩法就记住第四种即可,其他作为了解,还有%s的方法记住就够了

5.拼接字符串   join(加入)

s1 = '少壮不努力 老大徒伤悲'
s2 = '年少不努力 枉为少年人'
print(s1 + s2)  # 如果字符串很大 加号效率较低
print(s1 * 10)  # 重复次数(横向)

print('|'.join(s1))     #少|壮|不|努|力| |老|大|徒|伤|悲   注意中间是点不是逗号

print('$'.join(['jason', 'kevin', 'justin', 'tony']))  #jason$kevin$justin$tony
'''join方法相当于是将括号内的元素进行for循环'''
# l1 = [11, 'jason', 'kevin']
# print('|'.join(l1))  # join的元素必须都是字符串才可以 否则报错  这里的11就不可以

6.替换字符串中指定字符    replace(替换)

s6 = 'jason is DSB DSB DSB DSB jason jason jason'
将jason替换成老刘
print(s6.replace('jason', '老刘'))  # 默认一次性替换所有
 指定替换的个数
print(s6.replace('jason', '老刘', 2))  # 还可以通过数字控制替换的个数 从左往右

#replace(需要替换掉的字符串,替换成的字符串,从左往右替换的个数)

7.判断字符串是否是纯数字   digit(纯数字)

s7 = 'jason123'
print(s7.isdigit())  # False
print('123'.isdigit())  # True
print('123.21'.isdigit())  # False


可以用在日常生活中的分数纯数字输入
score = input('score>>>:')
if score.isdigit():
    score = int(score)    #这样整型就不会出错
else:
    print('你他喵的能不能好好写')

了解操作

1.指定字符对应的索引值   find(寻找) index(索引)

 

s1 = 'jason justin kevin tony'
# print(s1.find('s'))  # 从左往右查找 查找一个就结束
# print(s1.find('k', 1, 9))  # -1 意思是没有 找不到   从1到9的字符串范围去找
# print(s1.index('s'))
# print(s1.index('k', 1, 9))  # 找不到直接报错 不推荐使用

 2.文本位置改变   center(居中)  ljust (左对齐)  rjust(右对齐   zfill(0填充)

name = 'tony'
print(name.center(30, '-'))  # -------------tony-------------
print(name.ljust(30, '*'))  # tony**************************
print(name.rjust(30, '$'))  # $$$$$$$$$$$$$$$$$$$$$$$$$$tony
print(name.zfill(50)) 
# zero0000000000000000000000000000000000000000000000tony

3.特殊符号  (\t同行空     \n换行)

 print('ja\tson\nke\avin')
#其中  \t表示同行间隔     \n表示换行  \a不常用,一个表情
'''如果想取消它们的特殊含义 可以在字符串的前面加一个字母r'''
print(r'ja\tson\nke\avin')

4.captalize(就第一个首字母大写)   swapcase(大小写翻转)    title(每个单词首字母大写)

4.1 captalize:首字母大写
message = 'hello everyone nice to meet you!'
message.capitalize()
# Hello everyone nice to meet you!
4.2 swapcase:大小写翻转
message1 = 'Hi girl, I want make friends with you!'
message1.swapcase()
# hI GIRL, i WANT MAKE FRIENDS WITH YOU!
4.3 title:每个单词的首字母大写
msg = 'dear my friend i miss you very much'
msg.title()
# Dear My Friend I Miss You Very Much

列表内置方法

1.类型转换(字符串、列表、字典、元祖、集合都可以转化成列表类型)

 

print(list(11))  # 整型不行
print(list(11.11))  # 浮点型不行
print(list('jason'))  # ['j', 'a', 's', 'o', 'n']   字符串可以
print(list({'name': 'jason', 'pwd': 123}))  # ['name', 'pwd'] 字典可以
print(list((11,22,33,44,55)))  # [11, 22, 33, 44, 55]   元祖可以
print(list({1, 2, 3, 4, 5}))  # [1, 2, 3, 4, 5]   集合可以
print(list(True))  #布尔值不可以

 

2.常见操作

name_list = ['jason', 'kevin', 'tony', 'tom', 'jerry']

(1)索引取值

print(name_list[0])    #jason
print(name_list[-1])   #jerry

(2)切片操作(顾头不顾尾)

print(name_list[1:4])  # ['kevin', 'tony', 'tom']
print(name_list[-4:-1])  # ['kevin', 'tony', 'tom']
print(name_list[-1:-4:-1])  # ['jerry', 'tom', 'tony']
 #  正常从小到大,前面两个数表示索引范围,最后一个为步长

(3)间隔 (其实就是步长)

print(name_list[0:4:1])  # ['jason', 'kevin', 'tony', 'tom']
print(name_list[0:4:2])  # ['jason', 'tony']
print(name_list[-1:-4:-1])  # ['jerry', 'tom', 'tony']

(4)统计列表元素个数  len()

print(len(name_list))  # 5

(5)成员运算(最小判断单位是元素,而不是元素里面的单个字符)

print('j' in name_list)  # False
print('jason' in name_list)  # True

(6)列表添加元素  append (添加较死板)   insert(插入单个元素) extend(添加灵活,相当于for+append循环)

6.1.尾部追加'单个'元素
name_list.append('小李')
print(name_list)   #['jason', 'kevin', 'tony', 'tom', 'jerry', '小李']

name_list.append([11, 22, 33, 44])   
print(name_list)    #['jason', 'kevin', 'tony', 'tom', 'jerry', [11, 22, 33, 44]]


6.2.指定位置插入'单个'元素
name_list.insert(0, 123)  #[123, 'jason', 'kevin', 'tony', 'tom', 'jerry']

name_list.insert(1, [11, 22, 33])
print(name_list)     #['jason', [11, 22, 33], 'kevin', 'tony', 'tom', 'jerry']


6.3.合并列表
name_list.extend([11, 22, 33, 44, 55])
print(name_list)    #['jason', 'kevin', 'tony', 'tom', 'jerry', 11, 22, 33, 44, 55]
'''extend其实可以看成是for循环+append'''

for i in [11, 22, 33, 44, 55]:
    name_list.append(i)
    print(name_list)        #最终结果['jason', 'kevin', 'tony', 'tom', 'jerry', 11, 22, 33, 44, 55]
或者
name_list += [11, 22, 33, 44, 55]
print(name_list)  #但加号的效率不高

7.删除元素 del(删除)   remove(移动)   pop(删除前还可以再用一次,可以叫延迟删除)

7.1 通用的删除方式
del name_list[0]
print(name_list)     #['kevin', 'tony', 'tom', 'jerry']


7.2 就地删除  # 指名道姓的直接删除某个元素
print(name_list.remove('jerry'))  # None  jerry这个位置的数据为空
print(name_list)    #['jason', 'kevin', 'tony', 'tom']


7.3 延迟删除
print(name_list.pop())  # 默认是尾部弹出    jerry
print(name_list)  #['jason', 'kevin', 'tony', 'tom']

print(name_list.pop(2))  # 还可以指定索引值   tony ,不会立马为空
print(name_list)   #['jason', 'kevin', 'tom', 'jerry']

8.修改列表元素(很简单,直接赋值就可以)

print(id(name_list[0]))  # 2614038082368
name_list[0] = 'jasonDSB'
print(id(name_list[0]))  # 2614038926320
print(name_list)  #['jasonDSB', 'kevin', 'tony', 'tom', 'jerry']

#注意:列表中索引0的位置的地址已经变了,但是整个列表的索引地址没有变

 9.排序  sort(分类)表升序       sort(reverse = True)表降序

ss = [44, 77, 99, 11, 22, 33, 88, 66]
ss.sort()  # 默认是升序
print(ss)  # [11, 22, 33, 44, 66, 77, 88, 99]
ss.sort(reverse=True)  # 可以修改尾降序
print(ss)  # [99, 88, 77, 66, 44, 33, 22, 11]

10.翻转  reverse(翻转、颠倒)

ss = [44, 77, 99, 11, 22, 33, 88, 66]
ss.reverse()  # 前后颠倒
print(ss)

11.比较运算

s1 = [11, 22, 33]
s2 = [1, 2, 3, 4, 5, 6, 7, 8]
print(s1 > s2)  # True
"""列表在做比较的时候 其实比的是对应索引位置上的元素"""

s1 = ['A', 'B', 'C']  # A>>>65
s2 = ['a']  # a>>>97
print(s1 > s2)  # False

ss = [44, 77, 99, 11, 22, 33, 88, 66]
print(ss.index(99))   #2(位置在第2个)

12.统计列表中某个元素出现的次数  count(计数)

l1 = [11, 22, 33, 44, 33, 22, 11, 22, 11, 22, 33, 22, 33, 44, 55, 44, 33]
print(l1.count(11))  # 统计元素11出现的次数   3

13.清空列表  clear 

l1.clear()  # 清空列表
print(l1)

可变类型与不可变类型

可变类型:列表

    值改变 内存地址不变 修改的是本身

不可变类型 :字符串

    值改变 内存地址肯定遍 修改过程产生了新的值

如何查看内存地址? id()

s2 = [1, 2, 3]
print(id(s2))  # 2171184953160
s2.append(11111111)
print(id(s2))  # 2171184953160   列表地址不变

s1 = '  jason  '
print(id(s1))    #2093544712240
res = s1.strip()
print(res)
print(s1, id(s1))   #2093544712240  地址不变,改变的是s1.strip而不是s1,所以s1始终地址一样

队列与堆栈

队列

先进先出         eg:超市排队结账 符合队列的特征

new_list = []
先进
new_list.append(111)
new_list.append(222)
new_list.append(333)
先出
for i in new_list:
     print(i)
print(new_list.pop(0))
print(new_list.pop(0))
print(new_list.pop(0))

堆栈

先进后出         eg:叠衣服 符合堆栈的特征

new_list = []
先进
new_list.append(111)
new_list.append(222)
new_list.append(333)
先出
for i in new_list:
     print(i)
print(new_list.pop(0))   #不输入,默认从尾部取出
print(new_list.pop(0))
print(new_list.pop(0))

 

posted @ 2023-06-20 23:15  半糖+奶茶  阅读(28)  评论(0)    收藏  举报