经验首页 前端设计 程序设计 Java相关 移动开发 数据库/运维 软件/图像 大数据/云计算 其他经验
当前位置:技术经验 » 程序设计 » Python » 查看文章
字符串
来源:cnblogs  作者:李鹏飞1  时间:2018/10/16 9:35:00  对本文有异议

 一、python中字符串的格式

 

  • 如下定义的变量a,存储的是数字类型的值
  1. a = 100
  • 如下定义的变量b,存储的是字符串类型的值
  1. b = "hello itcast.cn"
  2. 或者
  3. b = 'hello itcast.cn'
  • 小总结:双引号或者单引号中的数据,就是字符串

二、字符串输出

demo

  1. name = 'xiaoming'
  2. position = '讲师'
  3. address = '北京市昌平区建材城西路金燕龙办公楼1层'
  4. print('--------------------------------------------------')
  5. print("姓名:%s"%name)
  6. print("职位:%s"%position)
  7. print("公司地址:%s"%address)
  8. print('--------------------------------------------------')

结果

  1. 姓名: xiaoming
  2. 职位: 讲师
  3. 公司地址: 北京市昌平区建材城西路金燕龙办公楼1

三、字符串的输入

之前在学习input的时候,通过它能够完成从键盘获取数据,然后保存到指定的变量中;

注意:input获取的数据,都以字符串的方式进行保存,即使输入的是数字,那么也是以字符串方式保存

demo

  1. userName = input('请输入用户名:')
  2. print("用户名为:%s"%userName)
  3. password = input('请输入密码:')
  4. print("密码为:%s"%password)

结果

  1. 请输入用户名:dongGe
  2. 用户名为: dongGe
  3. 请输入密码:haohaoxuexitiantianxiangshang
  4. 密码为: haohaoxuexitiantianxiangshang

 

四、字符串的常见操作

  • 数字 int:python 3里,不管数字有多大,都是int类型;python 2里,数字大,long(长整型)

           - int

         将字符串转换为数字

  1. a = "123"
  2. print(type(a),a)
  3. b = int(a)
  4. print(type(b),b)
  5. num = "0011"
  6. v = int(num, base=16)
  7. print(v)

 

    - bit_lenght
    当前数字的二进制,至少用n位表示

  1. r = age.bit_length()
  • 字符串  str

(1)首字母大写

  1. test="alex"
  2. v=test.capitalize()
  3. print(v)

  (2)所有变小写:lower() 方法只对ASCII编码,也就是‘A-Z’有效,对于其他语言(非汉语或英文)中把大写转换为小写的情况只能用 casefold() 方法

  1. S1 = "Runoob EXAMPLE....WOW!!!" #英文
  2. S2 = "?" #德语
  3. print( S1.lower() )
  4. print( S1.casefold() )
  5. print( S2.lower() )
  6. print( S2.casefold() ) #德语的"?"正确的小写是"ss"

 (3)设置宽度 ,并将格式居中  center

  1. # 20 代指总长度
  2. #空白未知填充,一个字符,可有可无
    test="alex"
  3. v = test.center(20,"中")
  4. print(v)

      结果

 

 

 (4)去字符串中寻找,寻找子序列的出现次数  count

  1. test = "aLexalexr"
  2. v = test.count('ex')
  3. print(v)

 (5)expandtabs() 方法把字符串中的 tab 符号('\t')转为空格,tab 符号('\t')默认的空格数是 8.

  1. test="1234567\t9"
  2. v=test.expandtabs(4)
  3. print(v)

  

  1. S = "username\temail\tpassword\nlaiying\tying@q.com\t123\nlaiying\tying@q.com\t123\nlaiying\tying@q.com\t123"
  2. v = S.expandtabs(20)
  3. print(v)

 输出结果如下:

         

 

(6)Python find() 方法从字符串中找出某个子字符串第一个匹配项的索引位置,该方法与 index() 方法一样,只不过如果子字符串不在字符串中不会报异常,而是返回-1。

      find() 方法语法:

  1. S.find(sub[,start=0[,end=len(S)]])

  参数

  • sub -- 指定检索的子字符串
  • S -- 父字符串
  • start -- 可选参数,开始索引,默认为0。(可单独指定)
  • end -- 可选参数,结束索引,默认为字符串的长度。(不能单独指定)
  1. >>>info = 'abca'
  2. >>> print(info.find('a')) # 从下标0开始,查找在字符串里第一个出现的子串,返回结果:0
  3. 0
  4. >>> print(info.find('a', 1)) # 从下标1开始,查找在字符串里第一个出现的子串:返回结果3
  5. 3
  6. >>> print(info.find('3')) # 查找不到返回-1
  7. -1
  8. >>>

  

(7)Python index() 方法从字符串中找出某个子字符串第一个匹配项的索引位置,该方法与 find() 方法一样,只不过如果子字符串不在字符串中会报一个异常

  1. S1 = "Runoob example....wow!!!"
  2. S2 = "exam";
  3. print (S1.index(S2))
  4. print (S1.index(S2, 5))
  5. print (S1.index(S2, 10))

 以上实例输出结果如下(未发现的会出现异常信息):

  1. 7
  2. 7
  3. Traceback (most recent call last):
  4. File "test.py", line 8, in <module>
  5. print (str1.index(str2, 10))
  6. ValueError: substring not found

(8)format()方法:格式化,将一个字符串中的占位符替换为指定的值

  1. test = 'i am {name}, age {a}'
  2. print(test)
  3. v = test.format(name='alex',a=18)
  4. print(v)

  其结果为

  1. i am alex,age18

(9)isalnum() 方法检测字符串是否由字母和数字组成 

  1. test = "123"
  2. v = test.isalnum()
  3. print(v)

  其结果为

  1. True

(10)string.join():Python中有join()和os.path.join()两个函数,具体作用如下:
                          join():    连接字符串数组。将字符串、元组、列表中的元素以指定的字符(分隔符)连接生成一个新的字符串
                           os.path.join():  将多个路径组合后返回

  • join()函数

    语法:  'sep'.join(seq)

    参数说明
    sep:分隔符。可以为空
    seq:要连接的元素序列、字符串、元组、字典
    上面的语法即:以sep作为分隔符,将seq所有的元素合并成一个新的字符串

    返回值:返回一个以分隔符sep连接各个元素后生成的字符串

  • os.path.join()函数

    语法:  os.path.join(path1[,path2[,......]])

    返回值:将多个路径组合后返回

    注:第一个绝对路径之前的参数将被忽略

  1. #对序列进行操作(分别使用' '与':'作为分隔符)
  2. >>> seq1 = ['hello','good','boy','doiido']
  3. >>> print ' '.join(seq1)
  4. hello good boy doiido
  5. >>> print ':'.join(seq1)
  6. hello:good:boy:doiido

  

  1. #对字符串进行操作
  2. >>> seq2 = "hello good boy doiido"
  3. >>> print ':'.join(seq2)
  4. h:e:l:l:o: :g:o:o:d: :b:o:y: :d:o:i:i:d:o

  

  1. #对元组进行操作
  2. >>> seq3 = ('hello','good','boy','doiido')
  3. >>> print ':'.join(seq3)
  4. hello:good:boy:doiido

  

  1. #对字典进行操作
  2. >>> seq4 = {'hello':1,'good':2,'boy':3,'doiido':4}
  3. >>> print ':'.join(seq4)
  4. boy:good:doiido:hello

  

  1. #合并目录
  2. >>> import os
  3. >>> os.path.join('/hello/','good/boy/','doiido')
  4. '/hello/good/boy/doiido'

(11)strip(),lstrip(),rstrip()

                  

Python中有三个去除头尾字符、空白符的函数,它们依次为:
strip: 用来去除头尾字符、空白符(包括\n、\r、\t、' ',即:换行、回车、制表符、空格)
lstrip:用来去除开头字符、空白符(包括\n、\r、\t、' ',即:换行、回车、制表符、空格)
rstrip:用来去除结尾字符、空白符(包括\n、\r、\t、' ',即:换行、回车、制表符、空格)

注意:这些函数都只会删除头和尾的字符,中间的不会删除。

用法分别为:
string.strip([chars])
string.lstrip([chars])
string.rstrip([chars])

参数chars是可选的,当chars为空,默认删除string头尾的空白符(包括\n、\r、\t、' ')
当chars不为空时,函数会被chars解成一个个的字符,然后将这些字符去掉。

它返回的是去除头尾字符(或空白符)的string副本,string本身不会发生改变。

举例说明如下:
1. 当chars为空时,默认删除空白符(包括'\n', '\r', '\t', ' ')

  1. >>> str = ' abc cdg '
  2. >>> str
  3. ' abc cdg '
  4. >>> str.strip() #删除头尾空格
  5. 'abc cdg'
  6. >>> str.lstrip() #删除开头空格
  7. 'abc cdg '
  8. >>> str.rstrip() #删除结尾空格
  9. ' abc cdg'

  2.当chars不为空时,函数会被chars解成一个个的字符,然后将这些字符去掉。

  1. >>> str2 = '1a2b12c21'
  2. >>> str2.strip('12') #删除头尾的1和2
  3. 'a2b12c'
  4. >>> str2.lstrip('12') #删除开头的1和2
  5. 'a2b12c21'
  6. >>> str2.rstrip('12') #删除结尾的1和2
  7. '1a2b12c'

  

 友情链接:直通硅谷  点职佳  北美留学生论坛

本站QQ群:前端 618073944 | Java 606181507 | Python 626812652 | C/C++ 612253063 | 微信 634508462 | 苹果 692586424 | C#/.net 182808419 | PHP 305140648 | 运维 608723728

W3xue 的所有内容仅供测试,对任何法律问题及风险不承担任何责任。通过使用本站内容随之而来的风险与本站无关。
关于我们  |  意见建议  |  捐助我们  |  报错有奖  |  广告合作、友情链接(目前9元/月)请联系QQ:27243702 沸活量
皖ICP备17017327号-2 皖公网安备34020702000426号