Python基础学习:字符串认知与应用
一.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基础学习:字符串认知与应用的更多相关文章
- Day2 Python基础学习——字符串、列表、元组、字典、集合
Python中文学习大本营:http://www.pythondoc.com/ 一.字符串操作 一.用途:名字,性格,地址 name = 'wzs' #name = str('wzs')print(i ...
- Python基础学习----字符串的常用方法
# Python字符串 # 大多数的语言定义字符串是双引号,Python既可以双引号,也可以单引号.但使用也有区别 # 单双引号的使用 My_name="bai-boy" Demo ...
- python基础学习-字符串常见操作
字符串常见操作 索引 s = "abcdefg" # 字符串数据,切片后取出的数据都是字符串类型 # 从左至右取值:从0开始 # 从右向左取值:从-1开始 print(" ...
- Day1 Python基础学习
一.编程语言分类 1.简介 机器语言:站在计算机的角度,说计算机能听懂的语言,那就是直接用二进制编程,直接操作硬件 汇编语言:站在计算机的角度,简写的英文标识符取代二进制去编写程序,本质仍然是直接操作 ...
- 0003.5-20180422-自动化第四章-python基础学习笔记--脚本
0003.5-20180422-自动化第四章-python基础学习笔记--脚本 1-shopping """ v = [ {"name": " ...
- Day1 Python基础学习——概述、基本数据类型、流程控制
一.Python基础学习 一.编程语言分类 1.简介 机器语言:站在计算机的角度,说计算机能听懂的语言,那就是直接用二进制编程,直接操作硬件 汇编语言:站在计算机的角度,简写的英文标识符取代二进制去编 ...
- (一)python基础学习
根据廖雪峰老师的python教程写一些学习总结! Python基础学习 1.使用list和tuple (1)list Python内置的一种数据类型是列表:list.list是一种有序的集合,可以随时 ...
- python基础学习(起步)
目录 python基础学习(起步) 变量 常量 变量的内存管理 python垃圾回收机制 变量的其他赋值方式 今日编程小题 本人能力有限,若有偏颇之处请读者大大不吝赐教! 祝大家每天都在成长! pyt ...
- Python基础学习二
Python基础学习二 1.编码 utf-8编码:自动将英文保存为1个字符,中文3个字符.ASCll编码被囊括在内. unicode:将所有字符保存为2给字符,容纳了世界上所有的编码. 2.字符串内置 ...
- Python基础学习五
Python基础学习五 迭代 for x in 变量: 其中变量可以是字符串.列表.字典.集合. 当迭代字典时,通过字典的内置函数value()可以迭代出值:通过字典的内置函数items()可以迭代出 ...
随机推荐
- 在WinDbg里使用MEX调试扩展
简介 针对WinDbg的MEX调试扩展可以帮助您简化常见的调试器任务,并为调试器提供强大的文本筛选功能.此扩展被Microsoft支持工程师广泛用于解决流程应用程序的故障. 下载&安装 下载m ...
- 控制论模型&心流模型&波模型
1.控制论模型 这是对设定的目标,通过多次输入和输出,反馈调节,最终达成目标的方法.广泛运用于自然科学与社会科学中.反馈的周期长短决定了调节精度的大小以及达到目标的速度.反馈结果与目标背离的立即纠正, ...
- Codevs 1305 Freda的道路(矩阵乘法 DP优化)
1305 Freda的道路 时间限制: 1 s 空间限制: 128000 KB 题目等级 : 大师 Master 题目描述 Description Freda要到Rainbow的城堡去玩了.我们可以认 ...
- 【数位DP】数字统计
题目 给定两个正整数a和b,求在[a,b]中的所有整数中,每个数码(digit)各出现了多少次. 数位DP (1)分情况,逐位讨论. (2)模型:计算在[L,R]中有多少个数满足条件. (3)套路:将 ...
- JavaScript高级程序编程(三)
2017-06-24 更新 北京连续三天下雨啦 乘性操作符 1.ECMA中定义了三种操作符,乘法 除法 和求模 并与其他语言相应操作符相同,再计算之前如果不是数值,会先去调用number()方法转 ...
- js MD5加密与 java MD5加密不一致
因为该项目会部署到多台机器,所以需要用字符生成唯一的MD5,但是js生成的MD5和java生成的MD5不一致.经过博主查阅资料发现java生成MD5用的是utf-8的编码,而且js用的是2进制.那我就 ...
- 第12组 Alpha冲刺(5/6)
Header 队名:To Be Done 组长博客 作业博客 团队项目进行情况 燃尽图(组内共享) 展示Git当日代码/文档签入记录(组内共享) 注: 由于GitHub的免费范围内对多人开发存在较多限 ...
- 手把手实例对比String、StringBuilder字符串的连接效率及StringBuilder和StringBuffer线程安全的比较
一.字符串连接的效率问题 使用String连接字符串时为什么慢? 小知识点 java中对数组进行初始化后,该数组所占的内存空间.数组长度都是不可变的. 创建一个字符串,为字符串对象分配内存空间,会耗费 ...
- hdu1002 A + B Problem II[大数加法]
目录 题目地址 题干 代码和解释 参考 题目地址 hdu1002 题干 代码和解释 由题意这是一个涉及到大数的加法问题.去看了一眼大数加法的方法感觉头很大,然后突然发现Java可以流氓解决大数问题,毅 ...
- 2019_软工实践_Beta(1/5)
队名:955 组长博客:点这里! 作业博客:点这里! 组员情况 组员1(组长):庄锡荣 过去两天完成了哪些任务 文字/口头描述 检测网站不合理的地方,给组员定下相应时间进度的安排 展示GitHub当 ...