内置方法

1.字符串的其他内置方法

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

  eg:
    ensample ='$$$tony$$$'
    print(s1.strip('$'))  # tony
	print(s1.lstrip('$'))  # tony$$$
	print(s1.rstrip('$'))  # $$$tony
             其中: l= left 左边 , r=right 右边

2.大小写相关操作islower、isupper

  eg:
    ensample ='Tony'
    print(ensample.lower())  将所有的英文字母变为小写 tony
   print(ensample.upper())    将所有的英文字母变为大写 TONY
 
    
    print(ensample.islower())   判断字符串中所有的英文字母是否是纯小写  结果是布尔值
 print(ensample.isupper())   判断字符串中所有的英文字母是否是纯大写  结果是布尔值

   ps:登录某一网址需要进行图片验证,如何实现?
    eg:code = 'JaSOn6'
    print('这是返回给用户的图片验证码:%s' % code)
    user_code = input('请输入验证码>>>:').strip()
 if code.lower() == user_code.lower():   验证码忽略大小写 只需要统一转大写或者小写即可
     print('验证码正确')

3.判定字符串的开头或者结尾是否是指定的字符startswith、endswith

判定开头:
   s1 = 'Are you ready?'
   print(s1.startswith'A')        #True
   print(s3.startswith('Are'))  # True
   print(s3.startswith('tony'))  # False

判定结尾:
   print(s3.endswith('y'))  # True
   print(s3.endswith('ready'))  # True
   print(s3.endswith('you'))  # False

4.格式化输出format

   方式一:占位符:%s %d
     
   方式二:forma (共有四种方法)
     1.跟占位符一样,使用{}占位
     print('my name is {} my age is {}'.format('TONY', 18))
        
     2.根据索引取值,并且取的值可以反复使用        
    print('my name is {0} {0} {0} my age is {0} {1}'.format('tony', 18))
    
     3.指名道姓的方式取值,并且取的值可以反复使用 
     print('my name is {name} {name} my age is {age} {pwd}'.format(name='tony', age=18, pwd=123))
    
     4.直接使用上述出现过的变量,前缀要+f'
      name = 'tony'
	 age = 18
	 print(f'my name is {name} my age is {age} {name} {age}')
    

5.拼接字符串

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']   #报错 (因为11不是字符串)
# print('|'.join(l1))  # join的元素必须都是字符串才可以 否则报错

6.替换字符串中指定的字符replace

# 用新的字符替换字符串中旧的字符
>>> str7 = 'my name is tony, my age is 18!'  # 将tony的年龄由18岁改成73岁
>>> str7 = str7.replace('18', '73')  # 语法:replace('旧内容', '新内容')
>>> str7
my name is tony, my age is 73!

# 可以指定修改的个数
>>> str7 = 'my name is tony, my age is 18!'
>>> str7 = str7.replace('my', 'MY',1) # 只把一个my改为MY
>>> str7
'MY name is tony, my age is 18!'

7.判断字符串中是否是纯数字isdigt

        s7 = 'tony123'
        print(s7.isdigit())  	# False
        print('123'.isdigit())  	# True
        print('123.21'.isdigit()) (中间有小数点也不算纯数字)    # False
        
   某网页注册手机号只能纯数字:
        score = input('score>>>:')
        if score.isdigit():
        score = int(score)
        else:
        print('你他喵的能不能好好写')

2.字符串了解内置方法的操作

1.查找指定字符对应的索引值find,index

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

2.文本位置改变center,ljsut,rjust,zfill

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

3.特殊符号:斜杠与一些英文字母的组合会产生特殊的含义\t\n\a

 print('ja\tson\nke\avin')
其中:\t:间隔四个空格  \n:换行  \a:添加符号
  
如果想取消它们的特殊含义 可以在字符串的前面加一个字母r'
 print(r'ja\tson\nke\avin')

4.首字母大写,大小写反转,每个首字母大写captalize,swapcase,title

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

3.列表的内置方法

1.类型转换

  整型:   print(list('11'))  # 报错
        
  浮点型:  print(list('11.11'))  # 报错 
    
  字符串型:  print(list('Tony'))  # ['T', 'o', 'n', 'y']
    
  字典型:  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))
    """
    list可以转换支持for循环的数据类型
        就是可以被for循环的数据类型	
            字符串 列表 字典 元组 集合
    """

2.索引取值

 name_list = ['jason', 'kevin', 'tony', 'tom', 'jerry']
    
 print(name_list[0])  #jason

 print(name_list[-1])   #jerry

3.切片操作

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

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

4.间隔

   name_list = ['jason', 'kevin', 'tony', 'tom', 'jerry']
    
    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']

5.统计列表中元素的个数

  name_list = ['jason', 'kevin', 'tony', 'tom', 'jerry']	
   print(len(name_list))   #5

6.成员运算

    name_list = ['jason', 'kevin', 'tony', 'tom', 'jerry']
    
    print('j' in name_list)  # False
 
    print('jason' in name_list)  # True

7.列表添加元素的方式

	 name_list = ['jason', 'kevin', 'tony', 'tom', 'jerry']
    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]]
     
    2.指定位置插入'单个'元素
     name_list.insert(0, 123)
     #[123, 'jason', 'kevin', 'tony', 'tom', 'jerry']
    
    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)
     ps: name_list += [11, 22, 33, 44, 55]
     print(name_list)  # 加号的效率不高

8.删除 修改 排序 翻转,比较运算,统计次数

   name_list = ['jason', 'kevin', 'tony', 'tom', 'jerry']
   一 删除

	1.通用的删除方式:     del name_list[0]
        print(name_list) 
        #['kevin', 'tony', 'tom', 'jerry']
        
    2.就地删除  # 指名道姓的直接删除某个元素
      print(name_list.remove('jerry'))  # None
# print(name_list)

     3.延迟删除
     print(name_list.pop())  # 默认是尾部弹出    jerry
     print(name_list) #['jason', 'kevin', 'tony', 'tom']
    
    print(name_list.pop(2))  # 还可以指定索引值   tony
     print(name_list)
        
        
   二. 修改

	 print(id(name_list[0]))  # 2614038082368
     name_list[0] = 'jasonDSB'
     print(id(name_list[0]))  # 2614038926320
     print(name_list)
        
   三. 排序
     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]
   
   四.翻转
     ss = [44, 77, 99, 11, 22, 33, 88, 66]
     ss.reverse()  # 前后颠倒
     print(ss)
        
    五.比较运算
     s1 = [11, 22, 33]
     s2 = [1, 2, 3, 4, 5, 6, 7, 8]
	 print(s1 > s2)  # True
"""列表在做比较的时候 其实比的是对应索引位置上的元素"""
    
     六.统计列表中某个元素出现的次数
        l1 = [11, 22, 33, 44, 33, 22, 11, 22, 11, 22, 33, 22, 33, 44, 55, 44, 33]
        print(l1.count(11)) # 统计元素11出现的次数
        l1.clear()  # 清空列表
		print(l1)	

4.可变类型与不可变类型

可变数据类型:值发生改变时,内存地址不变,即id不变,证明在改变原值

不可变类型:值发生改变时,内存地址也发生改变,即id也变,证明是没有在改变原值,是产生了新的值
>>> x = 10
>>> id(x)
1830448896 
>>> x = 20
>>> id(x)
1830448928
# 内存地址改变了,说明整型是不可变数据类型,浮点型也一样



>>> x = 10
>>> id(x)
1830448896 
>>> x = 20
>>> id(x)
1830448928
# 内存地址改变了,说明整型是不可变数据类型,浮点型也一样

5.队列与堆栈

队列是一种先进先出的数据类型,它的跟踪原理类似于在超市收银处排队,队列里的的第一个人首先接受服务,
新的元素通过入队的方式添加到队列的末尾,而出队就是将队列的头元素删除。
我们可以设置一个类,用列表来存放栈中元素的信息,利用列表的append()和pop()方法可以实现队列的入队enqueue和出队dequeue的操作,
上面栈一个元素每次出去是列表的最后一个,直接用list.pop()出栈,而出队列每次是第一个,所以要用list.pop(0)出队列


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

堆栈是一个后进先出的数据结构,其工作方式就像生活中常见到的直梯,先进去的人肯定是最后出。

我们可以设置一个类,用列表来存放栈中的元素的信息,利用列表的append()和pop()方法可以实现栈的出栈pop和入栈push的操作,list.append(obj)意思是向列表添加一个对象obj,list.pop(index=-1)意思是删除指定位置的对象,默认是最后一个对象,也就是说list.pop(),是删除列表中下标最大的元素。

    new_list = []
    # 先进
    new_list.append(111)
    new_list.append(222)
    new_list.append(333)
    # 后出
    print(new_list.pop())
    print(new_list.pop())
    print(new_list.pop())
posted @ 2022-03-09 17:03  Gie  阅读(71)  评论(0编辑  收藏  举报