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基础学习笔记二之列表
1.列表 ①列表的创建: ②列表的查询(索引): ③列表的切片操作: 此处要注意到:返回索引0到3的元素,顾头不顾尾. ④列表的增加: s.append() #直接在结尾追加 s.insert() ...
- 0003.5-20180422-自动化第四章-python基础学习笔记--脚本
0003.5-20180422-自动化第四章-python基础学习笔记--脚本 1-shopping """ v = [ {"name": " ...
- Python基础学习笔记(二)变量类型
参考资料: 1. <Python基础教程> 2. http://www.runoob.com/python/python-chinese-encoding.html 3. http://w ...
- Python基础学习笔记(十二)文件I/O
参考资料: 1. <Python基础教程> 2. http://www.runoob.com/python/python-files-io.html ▶ 键盘输入 注意raw_input函 ...
- python 基础学习笔记(1)
声明: 本人是在校学生,自学python,也是刚刚开始学习,写博客纯属为了让自己整理知识点和关键内容,当然也希望可以通过我都博客来提醒一些零基础学习python的人们.若有什么不对,请大家及时指出, ...
- Python 基础学习笔记(超详细版)
1.变量 python中变量很简单,不需要指定数据类型,直接使用等号定义就好.python变量里面存的是内存地址,也就是这个值存在内存里面的哪个地方,如果再把这个变量赋值给另一个变量,新的变量通过之前 ...
- Python基础学习笔记(一)安装以及IDE的配置
一.初识Python Python官方网站:www.python.org 版本:python-3.4.3.amd64 初次接触Python,没有使用Python 2.x进行开发真实项目的经历.所以不知 ...
- Python基础学习笔记(十三)异常
参考资料: 1. <Python基础教程> 2. http://www.runoob.com/python/python-exceptions.html Python用异常对象(excep ...
- Python基础学习笔记(十一)函数、模块与包
参考资料: 1. <Python基础教程> 2. http://www.runoob.com/python/python-functions.html 3. http://www.liao ...
- Python基础学习笔记(十)日期Calendar和时间Timer
参考资料: 1. <Python基础教程> 2. http://www.runoob.com/python/python-date-time.html 3. http://www.liao ...
随机推荐
- java 基础one ---运算符and流程控制
首先java这个了解下java的基础 首先java文件都是以.java结尾的 然后 他所有的内容都是有一个入口的就是放在了public static void main(String [] args ...
- Wampserver虚拟机配置记录
原文地址:http://blog.csdn.net/clj9017/article/details/12705725 第一步 在http.conf 文件里面找到 ,开启 Virtual hosts # ...
- 解决MySQL Workbench导出乱码问题
1.导出数据 2.默认CSV格式 3.乱码 4.解决 文件->另存为,会发现编码为UTF-8,正是MySQL表的编码方式.我们选择编码方式为ANSI,保存类型为所有,覆盖源文件
- 习题 6 字符串(string)和文本
虽然你已经在程序中写过字符串了,你还没学过它们的用处.在这章习题中我们将使用复杂的字符串来建立一系列的变量,从中你将学到它们的用途.首先我们解释一下字符串是什么 东西. 字符串通常是指你想要展示给别人 ...
- UVa 11846 - Finding Seats Again
链接: https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem& ...
- 记录清除wnTKYg挖矿工木马(守护进程ddg.xxxx)的过程
起因,阿里云多次提醒我的一台服务器有恶意发包行为,且给出了一些解决办法.之前也没太在意,就按照解决办法处理了一下.然后过一段时间,还是提示有此行为. 猜肯定是中了木马了,开始以为是被肉鸡了拿来做DDo ...
- Spring Boot中Web应用的统一异常处理
我们在做Web应用的时候,请求处理过程中发生错误是非常常见的情况.Spring Boot提供了一个默认的映射:/error,当处理中抛出异常之后,会转到该请求中处理,并且该请求有一个全局的错误页面用来 ...
- 卡尔曼滤波跟踪 opencv
0 卡尔曼OPENCV 预测鼠标位置 卡尔曼滤波不要求信号和噪声都是平稳过程的假设条件.对于每个时刻的系统扰动和观测误差(即噪声),只要对它们的统计性质作某些适当的假定,通过对含有噪声的观测信号进行处 ...
- js 格式为2018-08-25 11:46:29 的日期比较方法
//判断日期,时间大小 function compareTime(startDate, endDate) { if (startDate.length > 0 && endDat ...
- mysql数据类型介绍(含text,longtext,mediumtext说明)
转自http://m.blog.csdn.net/sipsir/article/details/12343581 转载,文章原连接已经失效,百度快照找到的. MySQL支持大量的列类型,它可以被分为3 ...