python基础教程(二)
继续第一篇的内容,讲解,python的一些基本的东西。
注释
为了让别人能够更容易理解程序,使用注释是非常有效的,即使是自己回头再看旧代码也是一样。
>>> #获得用户名:
>>> user_name = raw_input("what is your name?")
在python 中用井号(#)表示注释。井号(#)右边的内存将不被程序执行。即使没有注释,也应该让代码本身易于理解。幸好!Python是一门出色的语言,它能帮助程序员编写易于理解的程序。^_^
字符串
单引号字符串和转义引号

>>> "hello,world"
'hello,world' >>> '"hello ,world" she said'
'"hello ,world" she said' >>> "'hello,world' she said"
"'hello,world' she said"

第一个输出,明明是双引号( “” ) ,怎么输入变成了单引号( ‘’ )。这有什么区别呢?事实上,没有区别。
再看第二个,单引导(‘’)里面包含了一对双引号(“”),这次完整输出了。难道只有双引号输出会变成单引号么?
再看第三个,双引号(“”)号里面包含了一对单引号(‘’),这次为什么没把最外面的双引号变成单引号输出? 这编译器比较情绪化,呵呵!

>>> "Let's go"
"Let's go" >>>'Let's go'
SyntaxError: invalid syntax >>> 'Let\'s go'
"Let's go"

第一个输出,双引号包含一个单引号(实际上应该叫撇(‘) ,因为它不是成对出现的。)可以正常输出。
第二个输出,一对单引号里面包含了一个单引号(这应该是输入者的本意)。编译器不知道怎么识别了。
第三个输出,为了达到这个目的,我们需要把中间的单引号用斜杠(\)进行转义。这次又不一样了,单引号输出之后变成了双引号。编译器,你真调皮。
拼接字符串
下面试试加号(+)来拼接一个字符

>>> "helle,"+"world!"
'helle,world!' >>> x="hello,"
>>> y="world!"
>>> x+y
'hello,world!'

字符串表示,str 和 repr
前面的例子读者可能注意到,所有通过python打印的字符串还是被引号括起来的。这是因为python打印值的时候会保持该值在python代码中的状态,而不是你希望 用户所看到的状态。如果用print语句,结果就不一样了:

>>> "hello,world!"
'hello,world!'
>>> 10000L
10000L >>> print "hello,world!"
hello,world!
>>> print 10000L
10000

可以看到,长整型数10000L被转换成了数字10000 ,而且在显示给用户的时候也如此。
我们在这里讨论的实际上是值被转为字符的两种机制。可以通过以下两个函数来使用这两种机制:

>>> print str("hello,world!")
hello,world!
>>> print str(10000L)
10000 >>> print repr("hello,world!")
'hello,world!'
>>> print repr(10000L)
10000L

str()函数 ,它会把值转换为合理形式的字符串,以例用户可以理解;
repr()函数,它会创建一个字符串,它以合法的python表达式的形式来表示值。
input 和 raw_input 的比较
上一章的最后一个例子用到了raw_input 函数,那它与 input 有什么不用? 下面我们用input函数,再试试那个例子。

>>> name = input("what is your name?")
what is your name?huhu Traceback (most recent call last):
File "<pyshell#0>", line 1, in <module>
name = input("what is your name?")
File "<string>", line 1, in <module>
NameError: name 'huhu' is not defined >>> name = input("what is name?")
what is name?"huhu"
>>> print "hello, " + name + " !"
hello, huhu !

input()函数会假设用户输入的是合法的python表达式。所以直接输入huhu 系统会提示错误,但是如果加上引号(“huhu”)就会是一个合法的字符,程序运行是没有问题的。
然而,要求用户带着引号输入他们的名字有点过份,因此,就这需要使用raw_input函数。

>>> input("enter a namber:")
enter a namber:3
3
>>> raw_input("enter a namber:")
enter a namber:3
'3'

当然input有特别的需要,比如要求用户输入数字时。
长字符串
如果需要写一个非常非常长的字符串,它需要跨多行,那么,可以使用三个引号带点普通引号。

>>> print ''' this is a very long string.
It continues here.
and it's not over yet.
'''
this is a very long string.
It continues here.
and it's not over yet.

普通字符串也可以跨行。如果一行之中最后一个字符是反斜线,那么,换行符本身就“转义”了,也就是被忽略了。

>>> print " Hello.\
world!"
Hello.world!
>>> 1+2+\
4+5
12

原始字符串
>>> path ='C:\abc'
>>> print path
C:bc
怎么会这样呢,我想输入的是一个路径,却被换行了。
>>> print 'C:\\abc'
C:\abc
>>> print 'C:\\Program Files\\fnord\\foo\\bar\\baz\\frozz'
C:\Program Files\fnord\foo\bar\baz\frozz
通过上面的双斜线(\\)解决了路径问题,但如果路径很长的话会不会太麻烦了。
>>> print r'C:\Program Files\fnord\foo\bar\baz\frozz'
C:\Program Files\fnord\foo\bar\baz\frozz >>> print r'Let\'s go !'
Let\'s go !
原始字符串不会把反斜线当作特殊字符。可以看到,原始字符串以r开头。
Unicode字符串
字符串常量的最后一种类型就是Unicode 字符串(或者称为Unicode 对象---与字符串并不是同一个类型)。Python中的普通字符串在内部是以8位ASCII码形成存储的,而Unicode字符串则存储为16位Unicode字符,这样就能够表示更多的字符集了,包括世界上大多数语言的特殊字符。
如果你不短简什么是Unicode ,可以访问Unicode网站:http://www.unicode.org
>>> u'hello, world!'
u'hello, world!'
可以看到,Unicode字符串使用u前缀,就像原始字符串使用r 一样。
注意:在python 3.0中,所有字符串都是Unicode字符串。
python基础教程(二)的更多相关文章
- (Python基础教程之十二)Python读写CSV文件
Python基础教程 在SublimeEditor中配置Python环境 Python代码中添加注释 Python中的变量的使用 Python中的数据类型 Python中的关键字 Python字符串操 ...
- (Python基础教程之二十二)爬虫下载网页视频(video blob)
Python基础教程 在SublimeEditor中配置Python环境 Python代码中添加注释 Python中的变量的使用 Python中的数据类型 Python中的关键字 Python字符串操 ...
- 改写《python基础教程》中的一个例子
一.前言 初学python,看<python基础教程>,第20章实现了将文本转化成html的功能.由于本人之前有DIY一个markdown转html的算法,所以对这个例子有兴趣.可仔细一看 ...
- .Net程序员之Python基础教程学习----列表和元组 [First Day]
一. 通用序列操作: 其实对于列表,元组 都属于序列化数据,可以通过下表来访问的.下面就来看看序列的基本操作吧. 1.1 索引: 序列中的所有元素的下标是从0开始递增的. 如果索引的长度的是N,那么所 ...
- python基础教程1:入门基础知识
写在系列前,一点感悟 没有梳理总结的知识毫无价值,只有系统地认真梳理了才能形成自己的知识框架,否则总是陷入断片儿似的学习-遗忘循环中. 学习方法真的比刻苦"傻学"重要多了,而最重要 ...
- Python基础教程(第2版 修订版) pdf
Python基础教程(第2版 修订版) 目录 D11章快速改造:基础知识11.1安装Python11.1.1Windows11.1.2Linux和UNIX31.1.3苹果机(Macintosh)41. ...
- Python 基础教程 —— 网络爬虫入门篇
前言 Python 是一种解释型.面向对象.动态数据类型的高级程序设计语言,它由 Guido van Rossum 于 1989 年底发明,第一个公开发行版发行于 1991 年.自面世以后,Pytho ...
- Python 基础教程 —— Pandas 库常用方法实例说明
目录 1. 常用方法 pandas.Series 2. pandas.DataFrame ([data],[index]) 根据行建立数据 3. pandas.DataFrame ({dic}) ...
- Python 基础语法(二)
Python 基础语法(二) --------------------------------------------接 Python 基础语法(一) ------------------------ ...
- python基础教程笔记—即时标记(详解)
最近一直在学习python,语法部分差不多看完了,想写一写python基础教程后面的第一个项目.因为我在网上看到的别人的博客讲解都并不是特别详细,仅仅是贴一下代码,书上内容照搬一下,对于当时刚学习py ...
随机推荐
- ES6解构赋值
前面的话 我们经常定义许多对象和数组,然后有组织地从中提取相关的信息片段.在ES6中添加了可以简化这种任务的新特性:解构.解构是一种打破数据结构,将其拆分为更小部分的过程.本文将详细介绍ES6解构赋值 ...
- (转)log4j(三)——如何控制不同级别的日志信息的输出?
一:测试环境与log4j(一)——为什么要使用log4j?一样,这里不再重述 1 老规矩,先来个栗子,然后再聊聊感受 package test.log4j.test3; import org.apac ...
- Mybatis源码解析-MapperRegistry注册mapper接口
知识储备 SqlsessionFactory-mybatis持久层操作数据的根本,具体的解析是通过SqlSessionFactoryBean生成的,具体的形成可见>>>Spring ...
- 【CSS】盒子模型 之 IE 与W3C的盒子模型对比
摘要 主要看这两种盒子模型的优缺点及适用场景 一.区别 标准 W3C 盒子模型的 content 部分不包含其他部分. IE 盒子模型的 content 部分包含了 border 和 padding. ...
- 【PHP】数据类型转换
PHP的数据类型转换属于强制转换,允许转换的PHP数据类型有: (int).(integer):转换成整形 (float).(double).(real):转换成浮点型 (string):转换成字符串 ...
- OpenCV探索之路(二十一)如何生成能在无opencv环境下运行的exe
我们经常遇到这样的需求:我们在VS写好的程序,需要在一个没有装opencv甚至没有装vs的电脑下运行,跑出效果.比如,你在你的电脑用opencv+vs2015写出一个程序,然后老师叫你把程序发给他,他 ...
- SSE图像算法优化系列十:简单的一个肤色检测算法的SSE优化。
在很多场合需要高效率的肤色检测代码,本人常用的一个C++版本的代码如下所示: void IM_GetRoughSkinRegion(unsigned char *Src, unsigned char ...
- Qt5.8以上版本编译Oracle数据库的OCI驱动教程
在前一篇的文章中我已经发过一个相似的文章,详情请点击:Qt5编译oracle驱动教程. 在那一篇文章中已经可以解决了Qt5的常用版本的Oracle数据库驱动的支持,但是在新的Qt开发工具中那种方法竟然 ...
- React Native 系列(九) -- Tab标签组件
前言 本系列是基于React Native版本号0.44.3写的.很多的App都使用了Tab标签组件,例如QQ,微信等等,就是切换不同的选项,显示不同的内容.那么这篇文章将介绍RN中的Tab标签组件. ...
- 社交系统ThinkSNS+ APP更新至V0.8.3---新增打赏、用户认证
一.ThinkSNS简介 目前社交系统ThinkSNS(简称TS)有两个版本并行: ThinkSNS V4----最新版本ThinkSNS V4.6.1,第一次发布时间为2015年7月15日,最近更新 ...