Python_003(字符串的神操作)
一.编码问题
1.编码:计算机最早是ACSII码,美国人创造的,包含了英文字母(大写字母,小写字母)数字,标点等特殊符号;
:共有7位0和1组成,表示128个ACSII码,但是计算机对7这个数字不敏感,所以在每一个ACSII码前面加了一个0
所以补充到8位(bit)比特,8位构成一个字节(byte)
2.GBK:国标码,由于计算机的传播,ACSII只有256个位置,所以国标码设置成了2个字节,有16位
3.Unicode:万国码,升级到了32位,有4个字节,造成了浪费
4.utf-8:根据文字内容进行具体编码:英文:一个字节;欧洲文字:16位,2byte;中文:32位:3byte,24位
二.数据类型
1.int:简要操作:a = 3 print(a.bit_length())主要是看3占多少位二进制位 输出结果为 2 因为3用二进制表示为11;
2.bool:转换时,Ture = 1 ,False = 0
int转换bool类型时,0表示False, 1表示True; 所以在写循环时:while True = while 1
str转换bool类型时,空的为False(None也是空,深坑请留意),非空为True;
3.str:一些常用操作:
3.1 str索引和切片
索引:就是下标(从0开始,深坑请留意) s = "***" print(s[count])就会直接打印下标为count的字符;
如果count为负值,代表从后往前找,-1代表最后一个;
多个字符截取:s = "***" print(s[起始位置:结束位置:步长]) 如果没有步长,代表步长为1,截取字符串中的起始位置和结束位置-1
内的所有字符,这叫顾头不顾腚! 如果有步长,步长为n,每n位截取一个,截取的是第一位!
如果步长为负:起始位置>结束位置,并且从右往左截取! 若下标超出字符串长度时,会报错!
3.2 str常用操作字母大小写
s1 = s.capitalize()首位字母大写,其他字母全小写
s1 = s.upper/lower()全部变成大写/小写 s1 = s.swapcase()大小写互相转换
s1 = s.title()每个被特殊字符隔开的字母首字母大写,中文也算是特殊字符!
3.3 str常用操作对字符的切割
s1 = "字符串" newstr = s1.center(拉长到几位,"填充元素")
s1 = " 字符串 " newstr = s1.strip()(去除字符串两边的元素)lstrip:去左边的元素; rstrip:去右边的元素;
(如果你的字符串是这样的"aaaaaa哈哈哈aaaaaaaaaaaaaa",s1.strip("a")输出结果为:哈哈哈,会一直消除,它只管两边),也可以消制表符(\t)换行符(\n)
s1 = " 字符串 " s1 = s1.replace("字符串","替换字符串",替换个数)(这里等号左边的s1是被赋值成了一个新字符串返回,
而不是在原字符串上添加了进行了操作!)
s1 = "字符串" s1 = s1.split("用什么来切") 你用什么切,什么就没有了.切完之后变成了一个列表,
(如果你的刀切在边缘,你会得到一个空字符,并不是什么都没有了,深坑请留意)
4. 字符串查找
s1 = "字符串" newstr = s1.startswith/endswith("元素")判断是不是以元素开头/结尾
s1 = "字符串" newstr = s1.count("元素")查找字符串中有几个"元素"
s1 = "字符串" newstr = s1.find("元素",起始位置,结束位置)查找"元素"出现的位置,如果没有,返回-1;可以切片找
例:s1 = "欢迎来到英雄联盟" newstr = s1.find("英雄")这里它查找时是按两位为一位查找的(欢迎:0! 迎来:1! 来到:2!...)结果为4
s1 = "字符串" newstr = s1.index("元素")这个查找不到,会报错!
5. 遍历
for循环:for c in s: print(c)意思是把s中的每一个字符交给前面的c循环,这个c是一个自定义的变量,从s中取出什么c就为什么
缺点:没有索引,c只能代表从s取出来的字符,赋值给变量c,不是索引!
语法: for 变量 in 可迭代对象: 循环体
注意:字符串的一切操作对原字符串无影响,只有重新赋值,变成新字符串,而列表是在原列表的基础上进行的操作
Python_003(字符串的神操作)的更多相关文章
- StackExchange.Redis帮助类解决方案RedisRepository封装(字符串类型数据操作)
本文版权归博客园和作者本人共同所有,转载和爬虫请注明原文链接 http://www.cnblogs.com/tdws/tag/NoSql/ 目录 一.基础配置封装 二.String字符串类型数据操作封 ...
- swift学习(二)--基本运算符、字符串、集合操作
在这一篇博客里面,我想要介绍一下swift里面一些常用的基本运算符,还有涉及到的字符串,集合操作.你会发现在swift里面还是有许多其他语言所不具有的特性运算操作的. 首先最基本的+,-,*,/,&g ...
- C对字符串的部分操作
字符串分割(C++) 经常碰到字符串分割的问题,这里总结下,也方便我以后使用. 一.用strtok函数进行字符串分割 原型: char *strtok(char *str, const char ...
- Python第一天——入门Python(2)字符串的简单操作
数据的操作 字符串的一些常用操作: 1 1 #!/usr/bin/env python 2 # #coding=utf-8 3 # 4 # test='hello world' 5 # print(t ...
- shell脚本中字符串的常见操作及"command not found"报错处理(附源码)
简介 昨天在通过shell脚本实现一个功能的时候,由于对shell处理字符串的方法有些不熟悉导致花了不少时间也犯了很多错误,因此将昨日的一些错误记录下来,避免以后再犯. 字符串的定义与赋值 # 定义S ...
- 可以让你神操作的手机APP推荐 个个都是爆款系列
手机在我们的生活中显得日益重要,根据手机依赖度调查显示,69%的人出门时必带手机,20%的人经常在吃饭睡觉.上卫生间时使用手机:43%的人早上起床第一件事就是查看手机,不用多说,我们对于手机的依赖性越 ...
- c/c++再学习:常用字符串转数字操作
c/c++再学习:常用字符串转数字操作 能实现字符串转数字有三种方法,atof函数,sscanf函数和stringstream类. 具体demo代码和运行结果 #include "stdio ...
- Python字符串的相关操作
1.大小写转换 判断字符串 s.isalnum() #所有字符都是数字或者字母 s.isalpha() #所有字符都是字母 s.isdigit() #所有字符都是数字 s.islower() #所有字 ...
- linux内核里的字符串转换 ,链表操作常用函数(转)
1.对双向链表的具体操作如下: list_add ———向链表添加一个条目 list_add_tail ———添加一个条目到链表尾部 __list_del_entry ———从链表中删除相应的条目 l ...
随机推荐
- 阶段1 语言基础+高级_1-3-Java语言高级_06-File类与IO流_01 File类_5_File类获取功能的方法
获取的方法 GetAbsolutepath 传递一个相对路径进去,查看输出的结果 输出的还是绝对的路径 getPath 获取的就是构造方法中传递的路径,可以传递绝对路径也可以传递相对路径 实际上toS ...
- 07 归档模式 Active redo log丢失或损坏的恢复
环境同上一篇 模拟处于active状态的redo log损坏 sesion 1 SYS@ orcl >/ GROUP# THREAD# SEQUENCE# BYTES BLOCKSIZE MEM ...
- springboot An incompatible version [1.1.32] of the APR based Apache Tomcat Native library is installed, while Tomcat requires version [1.2.14]
1.错误 An incompatible version [1.1.32] of the APR based Apache Tomcat Native library is installed, wh ...
- python3.5+django2.0快速入门(二)
昨天写了python3.5+django2.0快速入门(一)今天将讲解配置数据库,创建模型,还有admin的后台管理. 配置数据库 我们打开mysite/mysite/settings.py这个文件. ...
- Leading and Trailing LightOJ - 1282 题解
LightOJ - 1282 Leading and Trailing 题解 纵有疾风起 题目大意 题意:给你一个数n,让你求这个数的k次方的前三位和最后三位. \(2<=n<2^{31} ...
- BZOJ 1878(离散化+线段树)
题面 传送门 分析 首先我们观察到区间范围较大,而区间个数较少,考虑离散化,将所有询问按照右端点进行排序 离散化之后研究区间颜色个数变化的规律 当我们处理到第a[i]个段时,设a[i]上一次出现的地方 ...
- BlockingQueue 阻塞队列(生产/消费者队列)
1:BlockingQueue的继承关系 java.util.concurrent 包里的 BlockingQueue是一个接口, 继承Queue接口,Queue接口继承 Collection Blo ...
- js如何实现上拉加载更多...
我们在项目中经常使用到下拉加载更多,之前要么是底部写加载按钮,要么是引入插件.今天终于有时间手写一个了,之前感觉挺麻烦,明白原理后,其实很简单... scrollTop:滚动视窗的高度距离window ...
- Python 爬虫 校花网
爬虫:是一种按照一定的规则,自动地抓取万维网信息的程序或者脚本. 福利来了 校花网 ,首先说为什么要爬这个网站呢,第一这个网站简单爬起来容易,不会受到打击,第二呢 你懂得.... 1.第一步,需要下 ...
- ElasticSearch 入门介绍
tags: 第三方 lucene [toc] 1. what Elastic Search(ES)是什么 全文检索和lucene 全文检索 优点:高效,准确,分词全文检索允许用户输入一些关键字,从数据 ...