python初学一(字符串str的处理方式)

  • 1、字符串是不可变类型,没有类似list 中的pop 删除函数
  • 2、字符串是不可变类型,字符串函数操作后原字符串的内容不会发生改变,函数的返回值是修改后的值。
  •             例:

一,input()输入的用法: 

  •        特点:① 变量接受的值是     字符串类型  ,如果输入  整型  进行数学运算   一定要用int()将  str类型 转化 int类型 。
  •                   ② input()表示将键盘输入值传给变量,程序一直等待键盘输入,input()内部添加输入提示信息
a = input('请输入您的姓名:\n') 
# input表示键盘输入,程序将一直等待键盘输入,input可以添加提示信息。  变量是   字符串类型。
# \n  ------ 换行
print(a)

--------------------------------------------------------------------------
name = input('请输入你的姓名: \n')
age = input('请输入你的年龄: \n')
print('您的姓名是:',name,'年龄是:',age,'岁')    # >>>>>>>>>>>>>>>> print 多个变量时,系统默认添加一个 空格
print('您的姓名是:'+name,'年龄是:'+age+'岁') # >>>>>>>>>>> 用字符串拼接的方式,去除 默认的空格

二、字符串的格式化输出方式:

      1、第一种方式: %s

                 常用的格式符号:%[(name)][flags][width].[precision]typecode

  (1)用法范围为:%s>%f>%d,

  •          特点: 即%s可以替换%f与%d,%f可以替换%d,反之报错如:
name,age = '张松会死',20
dict1 = {'name':'张松会死','age':20,}
print('%s的年龄是%d' %(name,age))
print('%s的年龄是%s' %(name,age))
print('%s的年龄是%f' %(name,age))           #默认6位
print('%s的年龄是%.f' %(name,age))           #没有小数
print('%s的年龄是%.2f' %(name,age))          #两位小数
print('%20s的年龄是%.f' %(name,age))          空出20个字符
print('%.2s的年龄是%.f' %(name,age))          取几个字符(注意中文字符与字节的区别)
print('%(name)s的年龄是%(age).f' %dict1)     #   利用  字典 的 key  进行 字典 传值
    

                

     (2)综合数据内部元素格式化:

  •          特点:%s 可以用于  key是str 的 dict类型数据  格式化,不能用与list格式化。
                          列表不能用%s 格式化内部元素
list1 = ['can add post','can delete post','can ban user']
print('管理员的权限为: %()s %()s %()s' %(list1))
print('管理员的权限为: %s %s %s' %(*list1))    两种情况均会报错。可以用  str.format 的方式


                  字典可以用%s格式化内部元素(key必须是字符串类型),不可用**dict的方式
dict1 = {'1':'can add post',
         '2':'can delete post',
         '3':'can ban user',
}
print('管理员的权限为: %(1)s %(2)s %(3)s' %dict1)    # 管理员的权限为: can add post can delete post can ban user
print('管理员的权限为: %(1)s %(1)s %(3)s' %dict1)    # 管理员的权限为: can add post can add post can ban user

  (3)%s  格式化时间的方法: 

                  print  时间等一系列格式输出:

print('%d-%d-%s %d:%d:%d' %(2018,11,'02',11,43,50))

                                  结果:      

    2、字符串内置函数 format 格式化:. format()

通过位置
time1 = '{}--{}--{} {}::{}::{}'.format(2018,11,'02',11,43,50)
print(time1)
time1 = '{4}--{5}--{3} {3}::{1}::{0}'.format(2018,11,'02',11,43,50)  #format 可以添加索引
print(time1)
列表传值    *args
list1 = ['can add post','can delete post','can ban user']
print('管理员的权限为: “{}”、“{}”、“{}”'.format(*list1))    一定要加 *  # 结果: 管理员的权限为: “can add post”、“can delete post”、“can ban user”
通过关键字
print('{名字}今天{动作}'.format(名字='陈某某',动作='拍视频'))#通过关键字
2 grade = {'name' : '陈某某', 'fenshu': '59'}
3 print('{name}电工考了{fenshu}'.format(**grade))#通过关键字,可用字典当关键字传入值时,在字典前加**即可

                   更多: https://www.cnblogs.com/chunlaipiupiupiu/p/7978669.html 

  •            format函数:1、format函数是str内置函数,用法str.format()
  •                                  2、format函数支持索引对应填值,默认从左到右一一对应。
  •                                  3、format中的  { }  相当于 %s 。
  •  

     3、str.join() :

              优点:不限定 列表的长度

               实例:https://blog.csdn.net/qq_16555103/article/details/83685961  ------- 第一节 

三、str的基本操作方式:

     1、索引:

  •         特点: 字符串支持索引 【其他支持索引的数据类型:列表,元组(不可变,但可改变可变数据类型元素的 二维
  •                     元素),字典(无序,需要用 键 索引)】
a = '1234a6789'
print(a[1])                   
print(a[2:5])           区间为  前闭后开 的区间 (相当于步长为1的切片)                

     2、系统函数len(ietr):

                                求可迭代对象的长度,也可以计算 列表 元组 的元素个数

a = '123abc'
b = [1,2,3,'a']            
print(len(a),len(b))       #列表是元素个数,字符串是字符个数

    3、字符串拼接 与重复:

     (1)字符串的拼接: + 

a, b, c, d = '我们','是','中国人','20'

print('我们'+'是'+'中国人'+'20')           #数字需要是字符串格式
print(a+b+c+d)

     (2)字符串的重复 :*

print("abc")
print("abc"*10)

     4、print 中 end=  的用法:

                end= 也可以  填充其他的字符,默认是换行(\n)。

print('a','b','c')         ------- 输出多个字符串或变量时,系统默认用 空格 拼接,即结果:a b c
print('a'+'b'+'c')         ------- 结果:   abc
===========================================================================================
print('a')        ---------- print 默认有一个换行符,即end='\n'
print('b')
print('c') 
========================================  注意上下区别
print('a',end='')
print('b',end='')
print('c',)

    

    5、str()强转字符串: 

                      系统函数,强制转化为字符串。

                    

                     

                    注意:print 字符串去掉引号;list 变量外面多了 '  ',变成了 str 类型 ,str() 转化后需要用系统函数  eval()

                               来提取字符串中的数据。

    6、切片:   

    (1)切片的使用方法:         

  •                    特点:① 从  起始索引  开始取值,第二个值的索引为  起始+步长     
  •                               ② 结果是一个 str 类型,可以用int()转化:
  • 要求,求出任一数字的百、十、个位
    num_str = str(345678)
    print(int(num_str[-3:]))  ------ 利用字符串切片切开后转化为数字
  •                               ③ 索引为负数时表示倒着取值,即 -1 倒数第一 、 -2 倒数第二

     (2)切片的例子: 

a = 'abcdefghijkl'    
print(a[2:9])
print(a[2:9:2])       ------------  步长为 2
print(a[5:2:-2])      ------------  倒着取值
print(a[2:])          ------------  不写值取值到末尾
print(::)             ------------  选中所有,步长为 1
print(::2)            ------------  选中所有,步长为 2
print(a[2:-1])        ------------  -1 表示倒数第一个值,前闭后开,因此取不到最后一
print(a[-5:])         ------------  取任意字符串后五位字符

                                    

    7、字符串反转:利用切片 

str1 = input("请输入任意长度的字符串:\n")
str_reverse = str1[::-1]        --------------- 将字符串翻转,类似list中的 .reverse() 方法
print(str_reverse)              --------------- 例: 输入 abcde  输出 edcba 

四、str 内置函数: 

                 语法:str.func()

    1、查找函数find、index:       

                     特点: 都是   返回索引值 ,它们只能查找 第一个 匹配元素的索引值

                        

print("hello world lo".find('lo'))    # 只会查找第一个,返回索引值,没有返回 -1
 #  答案  3
print("hello world lo".index('lo'))   # 只会查找第一个,返回索引值,没有  报错
 #  答案  3

   2、计数函数count:       

                  特点:有三个参数    

                        

a = 'abcdkoidkljjkcddddddddddd'
print(a.count('d'))
# 答案 13
print(a.count('d',0,len(a)))      #三个参数,后两个参数是 索引范围(前闭后开)
# 答案 13
print(a.count('d',0,len(a)-3))

   3、替换respace:       

                                                                              有三个参数   

                               

a = 'hello world hello'
print(a.replace('hello','HELLO'))     # 把xxx替换为XXX(前————后)
print(a.replace('hello','HELLO',1))    # 三个参数,最后一个参数为 count

                            

   4、分割split、partition:     

     (1)split 分割:

  •                       特点: 两个参数,可以控制分割次数,分割之后得到一个  list ,该 list元素 不包括分隔符本身

                   实例:

                  
str1 = 'hello world beijing!'
print(str1.split(' '))                 #用空格(1个)分割,单个元素,不包含该分隔符本身
str2 = 'hello   world beijing!'
print(str2.split(' '))                 #用空格(1个)分割,单个元素,分割符之间空集也可以做一个元素
str3 = 'hello   world beijing!'
print(str3.split('l'))                 
print(str3.split('l',2))                #  count 可以控制分割次数
print(str3.split(''))                   #   空集分隔符 报错

                      结果: 

   (2)partition:

  •          特点:将字符串分割为固定的三部分,结果也是一个 tuple ,且 保留分隔符

                 实例:

                                                    

   5、控制字母大小写title: 

                            

                            

                          

   6、检查 首字符 开头/结尾startswith:

                                      注意: 返回值是bool值,可以用于  if /while  判断语句当中。

                            

   7、对齐just、center:

                                                默认填充空格,也填充其他字符

                          

str_01 = 'abc'
print(str_01.ljust(10))
print(str_01.ljust(10,'*'))              # just函数可以加 其他字符(类似 end =“”),默认空格
print(str_01.rjust(10))
print(str_01.rjust(10,'*'))
print(str_01.center(10))
print(str_01.center(10,'*'))

                       

   8、删除(strip)函数:

                                       默认删除空格,也删除其他字符

                        

   9、连接/拼接(join()函数:

                                    str.join(iterable) ,本质是for循环str拼接,对象必须是可迭代的,得到的结果是字符串。

                                       str 》》list             用list()系统函数      

                                     list》》》str            ①list元素全是str时,用str.join(),其中str为 '' 。

                                                                      ②list元素不全是str时,用for循环拼接 。

                       

print('_'.join('abcd'))
print('_'.join(['4','a'])) 
print('_'.join([1,2,3,'4','a']))       # 结果报错 ,因为列表中有不是str的元素。

   10、判断字符串中字符的种类isalnum:      

                                isdecimal         判断是否只包含数字,与isdigit 区别是,不能判断特殊字符,例如:①。

num = '①'
print(num.isdigit())
print(num.isdecimal())

True
False

=================================================================================
# 题目: 判断字符串中   空格,字母,数字的个数
str1 = ' ahh hhj   jjjjn38 893 777 0 jj  '
num_alpha,num_digit,num_space = 0,0,0
for i in str1:
    if i.isspace():
        num_space += 1
    elif i.isdigit():
        num_digit += 1
    elif i.isalpha():
        num_alpha += 1
print("字母数量:%d 数字数量:%d 空格数量:%d" %(num_alpha,num_digit,num_space))

、关键字:  in 、not in  迭代队像 

  •                特点:① 在字符串中相当于用于if 语句中的 str.find(" ") 
  •                           ② 其他迭代对象那个,类似list tuple dict 也可以用。
  •                           ③ 判断结果是 bool 值,常常用于if 、while 的条件中
str1 = 'jklcknnlkmakkmmmlk'
print('a' in str1)      # 用于条件语句 ,结果为 bool 值 。

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值