python(1) - 字符串
前面说过了,字符串也是一种数据类型,但字符串有一个特殊的问题,就是编码。
因为计算机是美国人发明的,所以最早只有127个字符被编码到计算机里,就是大小写英文字母,数字和一些符号,这个编码表被称为ASCII码;但是我们要处理中文,这些编码肯定是不够的,所以中国制定了GB2312编码,用来把中文编进去;其它国家都有各自的编码。各自有各自的标准,如果混在一起,就会出现乱码。
因此才有了Unicode编码,Unicodeu将所有语言统一到一套编码里,这样就不会出现乱码了。
那为什么不统一使用Unicode编码呢?
因为ASCII编码用一个字节表示一个字符,Unicode编码则用两个字节表示一个字符;如果你有一个英文书写的文档,那体积可能要大很多,在存储和网络传输中需要的资源就多,十分不划算。
因此本着节约,又出现了UTF-8编码,它把一个Unicode字符根据不同的数字大小编码成1-6个字节,常用的英文字母被编码成1个字节,汉字通常是3个字节,只有很生僻的字符才会被编码成4-6个字节。如果你要传输的文本包含大量英文字符,用UTF-8编码就能节省空间。
现在计算机系统通用的字符编码工作方式:
在计算机内存中,统一使用Unicode编码,当需要保存到硬盘或者需要传输的时候,就转换为UTF-8编码。
当我们打开一个文本文件时,先将utf-8转换为unicode载入内存中,当我们需要保存或网络传输时,则再转换成utf-8.
由于python诞生在unicode标准发布之前,所以python2只支持ASCII编码,后来才添加了对unicode的支持,在字符串前加’u’,例如:
print u’中文’
encode(‘utf-8’) 函数可以将unicode编码转换成utf-8; 比如: u’中文’.encode(‘utf-8’)
decode(‘utf-8’) 函数可以将utf-8编码转换成unicode;比如:‘abc’.decode(‘utf-8’)
幸运的是,python3,我们不再需要考虑编码问题,中文直接使用即可。
字符串的格式化:
如果我们定义了一个变量 name = ‘jack’, 我们可能希望这样输出: “你好,我的名字是XXX!” XXX中的内容根据变量内容变化的。
这时候就需要对字符串进行格式化,先看两个例子:
>>> 'Hello, %s' % 'world'
Hello world >>>'Hi, %s, you have %d.' % ('jack',10000)
Hi, jack, you have 10000
没错,% 就是用来格式化字符串的,如果有多个变量,需要用()括起来。
常见的占位符有:
%d 整数
%s 字符串
%f 浮点数
%x 十六进制数
对于浮点数还要以指定是否补0,整数与小数各有多少位,例如:
>>> '%2d-%02d' % (3,1)
'3-01' >>> '%.2f' % 3.1415926
'3.14'
如果你不确定该用什么,记住%s永远起作用,它会把任何类型数据转换为字符串。
>>> 'I am %s , %s years old!' % ('jack', 25)
'I am jack , 25 years old!'
有时候我们需要输出清单,比如:
姓名 : 张三
年龄 :25
职业 :IT
可以这样进行格式化:
>>>userinfo = '''
... 姓名: %s
... 年龄: %d
... 职业: %s
...''' % ('张三',25,'IT')
>>>print(userinfo)
姓名':张三
年龄:25
职业:IT
用三个引号括起来,三引号不仅可以用来注释代码,还可以用来格式化字符串。
还有一种情况,%本身就是普通字符,比如要输出 7%
>>> print('百分比:%d%%' % 7)
百分比:7%
这时需要用两个%来表示
python(1) - 字符串的更多相关文章
- Python格式化字符串~转
Python格式化字符串 在编写程序的过程中,经常需要进行格式化输出,每次用每次查.干脆就在这里整理一下,以便索引. 格式化操作符(%) "%"是Python风格的字符串格式化操作 ...
- python学习--字符串
python的字符串类型为str 定义字符串可以用 ‘abc' , "abc", '''abc''' 查看str的帮助 在python提示符里 help(str) python基于 ...
- Python格式化字符串和转义字符
地址:http://blog.chinaunix.net/uid-20794157-id-3038417.html Python格式化字符串的替代符以及含义 符 号 说 明 ...
- [转载] python 计算字符串长度
本文转载自: http://www.sharejs.com/codes/python/4843 python 计算字符串长度,一个中文算两个字符,先转换成utf8,然后通过计算utf8的长度和len函 ...
- Python基础-字符串格式化_百分号方式_format方式
Python的字符串格式化有两种方式: 百分号方式.format方式 百分号的方式相对来说比较老,而format方式则是比较先进的方式,企图替换古老的方式,目前两者并存.[PEP-3101] This ...
- python判断字符串
python判断字符串 s为字符串s.isalnum() 所有字符都是数字或者字母s.isalpha() 所有字符都是字母s.isdigit() 所有字符都是数字s.islower() 所有字符都是小 ...
- Python格式化字符串
在编写程序的过程中,经常需要进行格式化输出,每次用每次查.干脆就在这里整理一下,以便索引. 格式化操作符(%) "%"是Python风格的字符串格式化操作符,非常类似C语言里的pr ...
- python(七)字符串格式化、生成器与迭代器
字符串格式化 Python的字符串格式化有两种方式:百分号方式.format方式 1.百分号的方式 %[(name)][flags][width].[precision]typecode (name) ...
- Python 的字符串格式化和颜色控制
(部分内容源自武神博客和网络收集.) Python的字符串格式化有两种方式: 百分号方式.format方式 百分号的方式相对来说比较老,而format方式则是比较先进的方式,企图替换古老的方式,目前两 ...
- python反转字符串(简单方法)及简单的文件操作示例
Python反转字符串的最简单方法是用切片: >>> a=' >>> print a[::-1] 654321 切片介绍:切片操作符中的第一个数(冒号之前)表示切片 ...
随机推荐
- jdk+jira配置
1.JDK.JIRA.MySQL安装完毕,停止JIRA服务 创建数据库:mysqlcreate database jiradb character set ‘UTF8′; 创建用户并赋与权限:crea ...
- 一个word合并项目的分布式架构设计
一个word合并项目的分布式架构设计 项目背景与问题起源 我们要给一个客户做word生成报告以及报告合并的工作,要合并的报告非常多,而且每个报告也比较大,一个多的报告大概有200页以上.我们用c#操作 ...
- POJ 3666 Making the Grade (DP)
题意:输入N, 然后输入N个数,求最小的改动这些数使之成非严格递增即可,要是非严格递减,反过来再求一下就可以了. 析:并不会做,知道是DP,但就是不会,菜....d[i][j]表示前 i 个数中,最大 ...
- matlab中读取txt数据文件(转)
根据txt文档不同种类介绍不同的读取数据方法 一.纯数据文件(没有字母和中文,纯数字) 对于这种txt文档,从matalb中读取就简单多了 例如test.txt文件,内容为“17.901 -1.111 ...
- TypeScript 素描 - 模块
/* 其实前面一些都是废话,因为都和C#类似.从模块开始就需要深入的去理解了 文档反复声明了 内部模块现在称做 命令空间 外部模块称为 模块 模块在其自身的作用域里执行,而不是在全局作用域里,也就是说 ...
- SuperSlidev2.1 轮播图片和无缝滚动
使用方法,狠狠的点击下面链接 http://down.admin5.com/demo/code_pop/18/562/index.html 简单使用方法如下 html <div class=&q ...
- SQL Server中如何获取当前年,月,日,时,分,秒
分类: SQL Server select GETDATE() as '当前日期',DateName(year,GetDate()) as '年',DateName(month,GetDate()) ...
- 在Windows7上搭建Cocos2d-x 3.2alpha0开发环境
在windows7上搭建COCOS2D-X开发环境并不难, 但是由于框架更新过快,很多用户都有困难.我希望你们认为这个教程有用. 建议:为了避免安全相关的问题,请以管理员权限执行所有的操作,当运行命令 ...
- mysql与java数据类型对照
类型名称 显示长度 数据库类型 JAVA类型 JDBC类型索引(int) 描述 VARCHAR L+N VARCHAR java.lang.String 12 CHAR N CHAR java.lan ...
- ADO.NET 快速入门(七):使用数据库事务
数据库事务用于控制数据提交到数据库.例如,在标准的账户程序,账户的借贷必须同时完成.由于电脑偶尔发生故障(电力中断.网络中断,等等),可能有些记录被更新或者添加,但是另外一些没有.为了避免这些情况,可 ...