一.len()

 家电维修

  len:全写是length,是计算容量的函数;例如a="1234",len(a)=4

  如果是中文字符,比如a="哈",len(a)=3,那么怎么显示正确的数目呢?(在python3中不存在这个问题)

  方法一:

  在中文字符前加u例如:a=u"哈",len(a)值为1

  方法二:

  a="哈哈"

  g=a.decode('utf-8')

  print len(g)值为2

  也可以直接写成a="哈哈".decode('utf-8'),其实最好是a.decode('utf-8')

  注意:

  就是在脚本中标明#coding=utf-8,len的值还是按ascii码来计算

  比如

  #coding=utf-8

  d="中文"

  print len(d)

  执行python test.py的值为6

  二.转义符让文本更好处理

  要转义的字符前面加个反斜杠

  三.字符串前面跟着的小尾巴到底是什么东西

  例如:print r"\n"其中的字母r表示不对斜线进行转义,输出为\n

  四.访问子字符串

  成员有是有序排列的,可以通过下标偏移量访问到它的一个或者多个成员

  a="abcd"

  print a[0]第一个字符

  print a[-1]最后一个字符,也可以是print a[len(a)-1]

  a[0:]输出为abcd

  a[0:1]输出为a

  a[0:2]输出为ab

  a[1:3]输出为bc注意第一项不是0,那么输出项是从a[1]开始的3-1位,并不会输出a[3]

  a[:-1]输出为abc

  五.替换字符串--replace()方法

  a="abc"

  a.replace('a','hh')

  'hhbc'

  但是此时print a,输出还是abc,说明replace()并不会改变原变量值,如果想修改原值,可以重新赋值,比如

  a=a.replace("a","his"),输出为hisbc

  六.查找字符串--find()方法

  a.find("hong")如果找到了字符串"hong"会返回一个整型,这个数值是a字符串对象hong第一个字母"h"的下标,如果找不到"hong",会返回-1

  如果有多个hong,怎么指定某一个hong呢,例如

  a="hong my name is hong"

  此时用a.find("hong")输出结果会是0,就是从第0个字符开始的就是hong,怎么找后面的那个hong呢?

  a.find("is")输出为13

  a.find("hong",13)就会输出is后面的hong了,注意用help(a.find)文档

  七.字符串拼接

  1.直接用加号来拼接,太耗资源,超级丑陋之千万别用。

  2.可选方案之字符串模板

  用%s....%来拼接:%s表示要插入字符串,叫做占位符;%后面的字符表示要插入字符串的内容

  占位符通常有2种,%s:字符串的占位符,%d:数字的占位符。

  例如

  1)print"my name is hong,%s"%"i am 18"

  2)print"my name is%s%s"%("hong","ten years old")

  3)print"my name is hong,i am%d"%18

  4)print"this is a%s%s"%(4,10),输出为this is a 4 10.也就是说可以强制把整型转为字符串,小括号里的数据要按顺序写

  3.优秀的拼接方案之使用join(),这种方法在参数是变量的情况比较好用

  >>>a="a"

  >>>b="bcd"

  >>>c="12cd"

  >>>"".join([a,b,c])

  'abcd12cd'

  用[]把abc变成一个list,才能用join()进行拼接,直接用join(a,b,c)报错,因为join()函数只能有一个参数

  注意:

  join()函数基本语法:'sep'.join(seq),表示以sep为分隔符,将seq所有的元素合并成一个新的字符串

  sep表示分隔符,可以为空;

  seq表示要连接的元素序列,字符串,元组或者字典,也就是说上面的"".join([a,b,c])也可以把参数写成元组"".join((a,b,c))

  4.format格式化方式

  b="this is{}{}".format("my","apple")为什么要用format

  print b

  输出为this is my apple

  如果想调整一下输出参数的顺序,那么可以这样写

  b="this is{1}{0}.format("my","apple"),那么输出结果就是

  this is apple my

  需要注意的是参数从0开始

  算参数位置太麻烦,有时候还出错,来种更人性化的方法

  b="this is{whose}{fruit}".format(fruit="apple",whose="my")

  print b

  输出为this is my apple

  5.还有一个方法,字典来了。

  a="this is%(whose)s%(fruit)s"%{'whose':'my','fruit':'apple'}

  其中whose:my,whose是key位,my是word位

Python基础学习:字符串认知与应用的更多相关文章

  1. Day2 Python基础学习——字符串、列表、元组、字典、集合

    Python中文学习大本营:http://www.pythondoc.com/ 一.字符串操作 一.用途:名字,性格,地址 name = 'wzs' #name = str('wzs')print(i ...

  2. Python基础学习----字符串的常用方法

    # Python字符串 # 大多数的语言定义字符串是双引号,Python既可以双引号,也可以单引号.但使用也有区别 # 单双引号的使用 My_name="bai-boy" Demo ...

  3. python基础学习-字符串常见操作

    字符串常见操作 索引 s = "abcdefg" # 字符串数据,切片后取出的数据都是字符串类型 # 从左至右取值:从0开始 # 从右向左取值:从-1开始 print(" ...

  4. Day1 Python基础学习

    一.编程语言分类 1.简介 机器语言:站在计算机的角度,说计算机能听懂的语言,那就是直接用二进制编程,直接操作硬件 汇编语言:站在计算机的角度,简写的英文标识符取代二进制去编写程序,本质仍然是直接操作 ...

  5. 0003.5-20180422-自动化第四章-python基础学习笔记--脚本

    0003.5-20180422-自动化第四章-python基础学习笔记--脚本 1-shopping """ v = [ {"name": " ...

  6. Day1 Python基础学习——概述、基本数据类型、流程控制

    一.Python基础学习 一.编程语言分类 1.简介 机器语言:站在计算机的角度,说计算机能听懂的语言,那就是直接用二进制编程,直接操作硬件 汇编语言:站在计算机的角度,简写的英文标识符取代二进制去编 ...

  7. (一)python基础学习

    根据廖雪峰老师的python教程写一些学习总结! Python基础学习 1.使用list和tuple (1)list Python内置的一种数据类型是列表:list.list是一种有序的集合,可以随时 ...

  8. python基础学习(起步)

    目录 python基础学习(起步) 变量 常量 变量的内存管理 python垃圾回收机制 变量的其他赋值方式 今日编程小题 本人能力有限,若有偏颇之处请读者大大不吝赐教! 祝大家每天都在成长! pyt ...

  9. Python基础学习二

    Python基础学习二 1.编码 utf-8编码:自动将英文保存为1个字符,中文3个字符.ASCll编码被囊括在内. unicode:将所有字符保存为2给字符,容纳了世界上所有的编码. 2.字符串内置 ...

  10. Python基础学习五

    Python基础学习五 迭代 for x in 变量: 其中变量可以是字符串.列表.字典.集合. 当迭代字典时,通过字典的内置函数value()可以迭代出值:通过字典的内置函数items()可以迭代出 ...

随机推荐

  1. 图书检索系统C版本

    原创,转载请注明出处! 程序具有一下功能窗口界面1,Input输入(读入文件,所有的文件都读入)2,Output输出(检验是否读取正确,从结构体数组读入)3,Length统计(此文件里有110本图书) ...

  2. vue 项目的文件/文件夹上传下载

    前言:因自己负责的项目(jetty内嵌启动的SpringMvc)中需要实现文件上传,而自己对java文件上传这一块未接触过,且对 Http 协议较模糊,故这次采用渐进的方式来学习文件上传的原理与实践. ...

  3. 检查cgroup v2 是否安装

    cgroup 当前包含了v1, 以及v2 版本,v2 版本相比v1 在目录组织上更加清晰,管理更加方便,很多 时候我们可能需要检查我们安装的内核当前内核版本是否支持cgroup v2 文章内容来自 h ...

  4. Python json数据写入csv json excel文件

    一.写入 写入csv和json, 可以使用csv这个包写, 我这里没有使用, 并且把写csv和json的写到一起了 具体的代码就不解释了 def write_file(file_name, items ...

  5. Codeforces 526C.Om Nom and Candies

    题目描述 一个只有两个物品的背包问题,但是范围都是1e9,需要考虑根号或者log的复杂度. 如果这两个物品中的某一个花费超过了根号C,那么我们可以直接枚举这件物品的数量,另一件物品的数量可以计算得出. ...

  6. 【loj3120】【CTS2019】珍珠

    题目 ​ $laofu $出的题 ​ \(n\)个离散型随机变量\(X_i\)可能的值为\([1,D]\) ,求有至少\(m\)对的概率 ​ $0 \le m \le 10^9  ,  1 \le n ...

  7. Spark跑在Yarn上出现错误,原因是jdk的版本问题

    ./bin/spark-shell --master yarn 2019-07-01 12:20:13 WARN NativeCodeLoader:62 - Unable to load native ...

  8. 美团-2019Q2述职总结

    述职要求: 产品对平台化的规划并不清晰:内部因素:对SaaS平台的理解不够深刻: 对公司相关脚手架,服务搭建相关需要注意的点,有更深入的认识.对做系统服务的关注点有了更深入的理解. 功能权限的话: Q ...

  9. 《JAVA程序设计》_第十周学习总结

    一.学习内容 12.1进程与进程 程序是一段静态的代码,进程是程序的一次动态执行过程,这个过程也是进程本身从产生.发展至消亡的过程. 线程不是进程,是比进程更小的执行单位.但与进程不同的是,线程的中断 ...

  10. js中isNaN和Number.isNaN的区别

    isNaN 当我们向isNaN传递一个参数,它的本意是通过Number()方法尝试将这参数转换成Number类型,如果成功返回false,如果失败返回true. 所以isNaN只是判断传入的参数是否能 ...