python字符串操作

python编码问题(2)

谁都会走 提交于 2020-03-24 19:32:36
1 编码、解码   如同密码领域一样,从明文到密码是加密,从密码到明文是解密。在python中,(编码:unicode-->str;) 解码(str-->unicode). 既然是编码,那么就和密码领域一样,编码和解码自然涉及到编码/解码方案(对应加密或者解密算法),unicode相当于明文。在python中,编码函数是encode(),解码函数是decode()。需要注意的一点是,如果我们调用str.encode(),这里涉及到一个隐士的类型转化,会现将str转化成unicode,才能进行编码,这也是不太容易理解的地方。所以,str.encode()实际上就等价于str.decode(sys.defaultencoding).encode().而sys.defaultencoding一般是ascii,它是不能用来编码中文字符的。  字符串在Python内部的表示是unicode编码,因此,在做编码转换时,通常需要以unicode作为中间编码,即先将其他编码的字符串解码(decode)成unicode,再从unicode编码(encode)成另一种编码。   decode的作用是将其他编码的字符串转换成unicode编码,如str1.decode('gb2312'),表示将gb2312编码的字符串str1转换成unicode编码

python基础笔记

假如想象 提交于 2020-03-22 11:44:14
1 基本配置及基础语法(1, 2 章) 1 Python.exe 的解释器 options: 1.1 –d 提供调试输出 1.2 –O 生成优化的字节码(生成.pyo 文件) 1.3 –S 不导入 site 模块以在启动时查找 python 路径 1.4 –v 冗余输出(导入语句详细追踪) 1.5 –m mod 将一个模块以脚本形式运行 1.6 –Q opt 除法选项(参阅文档) 1.7 –c cmd 运行以命令行字符串心事提交的 python 脚本 1.8 file 以给定的文件运行 python 脚本 2 _在解释器中表示最后一个表达式的值. 3 print 支持类 c 的 printf 格式化输出: print “%s is number %d!” % (“python”, 1) 4 print 的输入内容后面加逗号, 就会使其输入不换行 5 把输出重定向到日志文件: logfile = open(“c:/1.log”, “a”); //打开文件 c:/1.log 使用 a 模式..即 add, 添加. print >> logfile, “Fatal error: invalid input!”; >>为重定向..将 print 的结果重定向到 logfile, 输 出内容是”Fatal error: invalid input!”… logfile.close(); /

模块和常用内置模块

故事扮演 提交于 2020-03-22 07:31:07
什么是模块? 常见的场景:一个模块就是一个包含了python定义和声明的文件,文件名就是模块名字加上.py的后缀。 但其实import加载的模块分为四个通用类别: 1 使用python编写的代码(.py文件) 2 已被编译为共享库或DLL的C或C++扩展 3 包好一组模块的包 4 使用C编写并链接到python解释器的内置模块 为何要使用模块? 如果你退出python解释器然后重新进入,那么你之前定义的函数或者变量都将丢失,因此我们通常将程序写到文件中以便永久保存下来,需要时就通过python test.py方式去执行,此时test.py被称为脚本script。 随着程序的发展,功能越来越多,为了方便管理,我们通常将程序分成一个个的文件,这样做程序的结构更清晰,方便管理。这时我们不仅仅可以把这些文件当做脚本去执行,还可以把他们当做模块来导入到其他的模块中,实现了功能的重复利用, 模块的导入和使用 模块的导入应该在程序开始的地方。 常用语法 我们可以在py文件中按照如下方式导入模块: import a from xx import b 当然还可以再导入模块的时候给模块起别名 from xx import heiheihei as yue __name__ 当做脚本运行: __name__ 等于'__main__' 当做模块导入: __name__= 模块名

字符串操作

江枫思渺然 提交于 2020-03-21 15:36:55
1.字符串定义 如单引号('...')或双引号("..."),多行可以用 '''.....''' 或者 """ ......""" 表示 >>> s= "zhangwei 2" >>> s 'zhangwei 2' >>> s = ''' kkk ... sss ... dd ... ii''' >>> s ' kkk\nsss\ndd\nii' 2. 字符串方法 str . split ( str = "" , num = string . count ( str )) str分隔符,默认为所有的空字符,包括空格、换行(\n)、制表符(\t)等。 num -- 分割次数。 返回一个列表 str.title() 首字母大写 str.upper() 大写 str.lower() 小写 str.isalnum() 判断是不是由字母和字符组成 如果 string 至少有一个字符并且所有字符都是字母或数字则返回 True,否则返回 False str.isalpha() 如果字符串至少有一个字符并且所有字符都是字母则返回 True,否则返回 False str.isdigit() 如果字符串只包含数字则返回 True 否则返回 False "-".join("GNU/Linux is great".split()) 使用 ’-‘ 链接字符串 >>> s= "zhangwei 2" >>>

python基础第二天(day14)

爷,独闯天下 提交于 2020-03-20 05:12:16
参考 https://www.cnblogs.com/alex3714/articles/5465198.html 多行注释 ''' '''变成字符串 """ """ 单引号,双引号没有区别,只适用于单行 三个单引号,双引号 多行 #是真正的被注释掉 数据类型初识 1、数字 int(整型) long(长整型) python3没有长整型的概念,自动变 float(浮点型) 复数 2、布尔值   真或假 True false   1 或 0 3、字符串 "hello world" 万恶的字符串拼接:   python中的字符串在C语言中体现为是一个字符数组,每次创建字符串时候需要在内存中开辟一块连续的空,并且一旦需要修改字符串的话,就需要再次开辟空间,万恶的+号每出现一次就会在内从中重新开辟一块空间。 字符串格式化输出 1 2 3 4 name = "alex" print "i am %s " % name #输出: i am alex PS: 字符串是 %s;整数 %d;浮点数%f 字符串常用功能: 移除空白 分割 长度 索引 切片 字符串切片 从左到右,顾头不顾尾 name = "9 wo shi; ni lao zi" print(name) print(name.strip("9")) # Python strip() 脱掉 方法用于移除字符串头尾指定的字符(默认为空格

python中的字符串 列表 字典

醉酒当歌 提交于 2020-03-19 21:43:46
字符串 一个有序的字符集合 不可变 1,可以使用for in语句进行迭代循环,返回元素 2,in类是于str.find()方法但是是返回布尔结果 str.find()返回的是位置 操作 查找字符串: find 找不到返回-1 rfind 从右边 index 报错 都是从左边开始查找 rindex 从右边 统计字符串个数 count 替换字符串 replace 原字符串不变 切割 split 不包含隔开符,切割为一个列表 splitslines 按换行符去隔开 partition 包含隔开符 partition 首字母 capitaize 第一个位 首字母 大写 title 所有单词首字母 大小写变换 upper lower 判断开头结尾 startswith endswith 对齐 ljust rjust center 删除空白符 lstrip 左边 rstrip 右边 strip 两边 判断字符串的组成 isalpha 全为字母 isdigit 全为数子 isalnum 全为字母或数字 isspace 全为空格 将列表转换为字符串 join L=['s','p','a','n'] 例如: S=".join(L) s='span' 列表操作 lisst[0] =值 操作 增加 append 在后面追加 原处修改,返回值None extend 两个集合合并 insert 某

Python 数据类型及其用法

删除回忆录丶 提交于 2020-03-19 21:41:46
本文总结一下Python中用到的各种数据类型,以及如何使用可以使得我们的代码变得简洁。 基本结构 我们首先要看的是几乎任何语言都具有的数据类型,包括字符串、整型、浮点型以及布尔类型。这些基本数据类型组成了基本控制块,从而创建我们的Python应用程序。 字符串 字符串(String) 是一段文本字符,通常以某种形式向用户输出。如果我们打开Python的解释器,我们试着最常见的输出“Hello World!”应用: >>> print ("Hello, world!")Hello, world! Python 中的数据类型不需要像Java或C语言那样显示的定义,这就意味着在Python中字符串就是简单地用引号括起来来标识,向上面的“Hello, world!”那样。我们也可以使用单引号而不是双引号,当我们字符串中就有双引号时,使用单引号来表示整个字符串更加方便,如: >>> print ("This is David's program")This is David's program>>> print ('"Hello", said David')"Hello", said David 从上面你就可以看出在不同的条件下如何交叉使用不同的引号。 字符串提供了许多内置的函数,这些在很多Python程序中很有用处,它们包括: endswith() - 检查字符串是否以给定字符串结尾

mysql之零碎知识

泪湿孤枕 提交于 2020-03-18 23:33:53
一 视图  什么是视图:视图就是一张虚拟表。方便查看。  创建视图:create view 起名 as sql语句 #两张有关系的表 mysql> select * from course; +-----+--------+------------+ | cid | cname | teacher_id | +-----+--------+------------+ | 1 | 生物 | 1 | | 2 | 物理 | 2 | | 3 | 体育 | 3 | | 4 | 美术 | 2 | +-----+--------+------------+ 4 rows in set (0.00 sec) mysql> select * from teacher; +-----+-----------------+ | tid | tname | +-----+-----------------+ | 1 | 张磊老师 | | 2 | 李平老师 | | 3 | 刘海燕老师 | | 4 | 朱云海老师 | | 5 | 李杰老师 | +-----+-----------------+ 5 rows in set (0.00 sec) #查询李平老师教授的课程名 mysql> select cname from course where teacher_id = (select tid from

Python 变量类型

泪湿孤枕 提交于 2020-03-18 22:20:05
Python 中的变量赋值不需要类型声明。 每个变量在内存中创建,都包括变量的标识,名称和数据这些信息。 每个变量在使用前都必须赋值,变量赋值以后该变量才会被创建。 等号(=)用来给变量赋值。 等号(=)运算符左边是一个变量名,等号(=)运算符右边是存储在变量中的值。例如: counter = 100 # 赋值整型变量 miles = 1000.0 # 浮点型 name = "John" # 字符串 print counter print miles print name 100 1000.0 John 多个变量赋值 Python允许你同时为多个变量赋值。例如: a = b = c = 1 a, b, c = 1, 2, "john" 标准数据类型 在内存中存储的数据可以有多种类型。 例如,一个人的年龄可以用数字来存储,他的名字可以用字符来存储。 Python 定义了一些标准类型,用于存储各种类型的数据。 Python有五个标准的数据类型: Numbers(数字) String(字符串) List(列表) Tuple(元组) Dictionary(字典) Python数字 数字数据类型用于存储数值。 他们是不可改变的数据类型,这意味着改变数字数据类型会分配一个新的对象。 当你指定一个值时,Number对象就会被创建: var1 = 1 var2 = 10

TypeError: a bytes-like object is required, not 'str'--引申出bytes和str类型详细说明

て烟熏妆下的殇ゞ 提交于 2020-03-17 22:55:04
####本篇文章摘录了Chown-Jane-Y 和 singularity的文章#### TypeError: a bytes-like object is required, not 'str' 问题分析 该问题主要是由于当前操作的字符串是bytes类型的字符串对象,并对该bytes类型的字符串对象进行按照str类型的操作。 如下面图所示,s 为bytes类型字符串对象。 当对s进行按照str类型的操作(split)时,会弹出一下错误提示。因为split函数传入的参数是str类型的字符串,而党鞭的s为bytes编码类型的字符串对象 解决方法 此时的解决办法是,将s转码成为str类型的或者是将对s进行str类型操作转化为对bytes类型的操作。 方法1:bytes-->str 方法2:对s进行str类型操作转化为对bytes类型的操作 由于split里面用到分解字符串中的是空格‘ ’,但是该‘ ’是按照str编码的,需要转化成为bytes类型的,然后再直接对s进行对bytes类型的操作。 str和bytes类型之间的常用转码方式: 1、str to bytes:(3种方式) 2、bytes to str (3种方式) Python3中的bytes和str类型 Python 3最重要的新特性之一是对字符串和二进制数据流做了明确的区分。文本总是 Unicode ,由 str 类型表示