一个月前,就按下决心要系统的学习下python了,虽然之前有学习过java,学习过c++,也能较为熟练的使用java做自动化测试看懂c++里的业务逻辑,但是实际上有那么多的东西自己还是不清楚,今天下定决心,开始了python的系统的学习之路,之前我是有看过廖学峰的教程的,看完收获确实也是少,但总感觉就是少了什么,后面想了下,我想应该是自己的学习方法~~~介于之前学习RF的经验,我认为看官方文档对于一个想系统学习python的人来说,真的是一个不能再好的学习方法,接下来我会开始坚持把python2.7.11的学习笔记记录在此。

今天学习了python官网的第三章,python的非正式介绍,实际也还是有点收获的~~~https://docs.python.org/2/tutorial/introduction.html

1.1 使用 python 作计算器

安装好python后,在DOS窗口下,输入python,进入python的交互模式后,就可以使用python做一个计算器了(还挺强大呢~~)

>>>  + 

>>>  - *

>>> ( - 5.0*) /
5.0
>>> / 5.0
1.6
>>> ** # to the power of

上面这类简单的操作,之前我大概我也是有所了解,但是有2点需要注意下:

第一:除法  / 操作:除法后的数据类型是由操作数决定的,如果都是int类型的数据进行除法操作,采用的是除法是 floor division得到的就是int的返回值;如果有一个操作数是float类型的,采用的是classic division得到的就是float类型的。比如:

>>>  /   # int / int -> int

>>>  / 3.0  # int / float -> float
5.666666666666667

第二:除法 // 操作:除法后的数据类型也是由操作数决定的,采用的是floor division。一般取商就使用 “//”

第三:最后一个表达式可以_用下划线替代.这个特点让python做为一个计算器就更好使用。

>>> tax = 12.5 /
>>> price = 100.50
>>> price * tax
12.5625
>>> price + _
113.0625
>>> round(_, )
113.06

1.2 Strings

String对象是用单引号或者双引号包围的,如下是经常见到的模式:

>>> 'spam eggs'  # single quotes
'spam eggs'
>>> 'doesn\'t' # use \' to escape the single quote...
"doesn't"
>>> "doesn't" # ...or use double quotes instead
"doesn't"

还有String对象常用的一些操作简介,比如:字符串的拼接,根据字符串的index(整数,或者负数)取单个字符,对字符串进行切片操作取子字符串,字符串的不可变特性,字符串的操作(重复操作符:*,拼接操作符:+,但是不适合string类型的变量)。

A.  当字符串内的字符非转义字符时,怎么处理呢?比如

>>> print 'C:\some\name'  会打印出什么结果呢? 那肯定是

      C:\some
ame
显然\n变成了换行符号了,但是实际作者的愿意不是这样的,在字符串前加上r实际就能解决问题了
 >>> print r'C:\some\name'
C:\some\name
B. 需要打印多行的又漂亮的字符串怎么表达呢?
    a =
b =
str ='loleina' print 'a is %d \nb is %d\nc is %s'%(a,b,str) print '''
a is %d
b is %d
c is %s
'''%(a,b,str)

上面有2种方式,一种是一行表达,在需要换行的地方用\n换行,第二种就是使用'''...'''格式来显示多行的问题,这样增加了代码的可读性。

1.3 Unicode Strings (仅python2系列)

从python2.0开始,就有一种新的数据类型 Unicode Strings,但是在python3的到来,这个概念已经被弱化了。python2.*的默认编码格式是ASCII码,而python3.*的默认编码格式已经换成了Unicode,所以2.*还是有必要提一下。在python2系列中,如果要操作非ASCII码的字符,就可以用这个对象进行操作。它可以跟strings进行任意的转换。比如,现在有一个字符串变量s,保存中文字符"测试",现在直接打印是会报错的,因为存在一个非ASCII码的字符,python2.*是无法进行解析的,如果在上面加个u,就能正常显示(在集成开发工具内,设置集成工具和工程的默认编码为utf-8)

# -*- coding: gbk -*-if __name__=="__main__":
s1 = '测试'
#s1 = s1.decode('gbk')
s1 = unicode(s1,'gbk')
print s1

如上代码段在JetBrains PyCharm 2016.1.2内,使用2.7.11做解释器,做了一个小测试~~

1. 不设置源文件编码格式,输入中文,后直接打印,会提示存在‘non-ascii’,编译不通过

2. 设置源文件编码格式为gbk,输入中文后,打印乱码

3.  设置源文件编码格式为gbk,输入中文s1 = u'测试'后,打印正常

4. 设置源文件编码格式为gbk,输入中文后,先将字符串解码decode或者unicode方法,后打印正常

 5. 设置源文件编码格式为utf-8,输入中文后直接输出正常

6. 设置工具和工程的默认编码为gbk,输入中文后,打印正常。

然后有点明白了~~在python2系列的IDE中声明一个非ASCII码的字符串,不声明源文件的编码格式,编译是不通过的,因为源文件python2的解析器尝试使用默认的ASCII码去编译,却发现存在非ASCII码的字符串;如果在此基础上设置源文件的编码格式为gbk,编译是可以通过了,但是打印出来的字符串是乱码的,为啥乱码呢?因为IDE是采用utf-8的编码格式,而源文件是采用gbk格式,所以会出现中文乱码现象,单纯的解决乱码有3种可行方式,一个方法是:将源文件里需要打印的字符串解码成utf-8(或者unicode)再打印;另一个方法是:修改源文件的编码格式直接为utf-8,最后一种是:修改IDE编码格式为gbk;显然第二种方法是最佳方法。

对于还不明白,神马是编码格式,ASCII码,Unicode,utf-8,GBK,GB2312,这些都编码格式之间的练习和区别是什么,我推荐可以看下廖学峰2.7教程下的字符串和编码这篇文章,看完之后应该是会有所收获的。这一章的主要内容就是以上部分啦,未完待续~~

python学习笔记系列----(一)python简介的更多相关文章

  1. python学习笔记1之-python简介及其环境安装

    python学习笔记之-python简介及其环境安装 最近几年python之火不用多说,最近开始利用时间自学python,在学习的过程中,按照自己的思路和理解记录下学习的过程,并分享出来,如果正好你也 ...

  2. Python学习笔记系列

    1.小甲鱼 python 学习系列笔记

  3. python学习笔记系列----(八)python常用的标准库

    终于学到了python手册的最后一部分:常用标准库.这部分内容主要就是介绍了一些基础的常用的基础库,可以大概了解下,在以后真正使用的时候也能想起来再拿出来用. 8.1 操作系统接口模块:OS OS模块 ...

  4. python学习笔记系列----(七)类

    7.1 python类和相关术语的简介 Python 通过最小的新语法和语义在语言中实现了类. 它是 C++ 或者 Modula-3 语言中类机制的混合.类的大多数重要特性都被完整的保留下来:类继承机 ...

  5. Python学习笔记之二——Python的运行机制,一般人肯定不会

    前言本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理.作者:XX   Python解释器简介   解释器是一种让其他程序运行起来的程 ...

  6. Python学习笔记1-搭建Python环境 和 Python Hello World!

    一.搭建Python开发环境 1.选择开发工具 首先要寻找一个Python的开发工具,Python的开发工具有很多,有pyCharm .Eclipse.Visual studio等等 ,使用最多的还是 ...

  7. Python学习笔记 (1) :python简介、工具、编码及基础运算

    学习背景: 精通一门编程语言并编写出自己喜欢的程序是我多年的梦想,一定要找时间实现.此时想起了高中时的我对编程的兴趣十分浓厚,父母给自己购买了学习机插卡式的,只能敲basic代码,同时学校有386计算 ...

  8. Python学习笔记(一)简介总览

    Class 1 一.简介 python:脚本语言.解释型语言 缩进是python语言很重要的一个标志 python3是未来的发展趋势 二.安装 windows: 1.下载安装包: https://ww ...

  9. Python学习笔记_04:Django框架简介

    目录 1 什么是Django? 2 Django框架的开发环境搭建 3 Django操作MySql数据库简介 4 功能强大的Django管理工具应用 1 什么是Django? Django是应用于We ...

随机推荐

  1. .net的五层架构

    原文章地址是http://www.360doc.com/content/11/1210/21/19147_171335782.shtml 我们刚开始学习架构的时候,首先会想到分层的概念,分层架构比较经 ...

  2. 关于iOS多线程的总结

    关于iOS多线程的总结   在这篇文章中,我将为你整理一下 iOS 开发中几种多线程方案,以及其使用方法和注意事项.当然也会给出几种多线程的案例,在实际使用中感受它们的区别.还有一点需要说明的是,这篇 ...

  3. sign in和sign up区别

    如果是网站的话sign up是注册,sign in是登录的意思,另外,sign out退出

  4. CentOS碰到两个问题,顺便解决了下

    1.弹出界面 eth0: RTNETLINK answers: File exists 执行service network restart时报的错误 因为service network start造成 ...

  5. sort将文件的每一行作为一个单位按ASCII码值进行比较

    1 sort的工作原理 sort将文件的每一行作为一个单位,相互比较,比较原则是从首字符向后,依次按ASCII码值进行比较,最后将他们按升序输出. [rocrocket@rocrocket progr ...

  6. 浅谈Service

    一.生命周期: startService()方式启动,Service是通过接受Intent并且会经历onCreate()和onStart().当用户在发出意图使之销毁时会经历onDestroy():( ...

  7. php使用 memcache 来存储 session 方法总结

    设置session用memcache来存储 方法I: 在 php.ini 中全局设置 session.save_handler = memcache session.save_path = " ...

  8. 使用 JavaScript 实现基本队列、优先队列和循环队列

    1.基本队列的实现 基本队列的方法中,包含了 ①向队列(尾部)中添加元素(enqueue).②(从队列头部)删除元素(dequeue).③查看队列头部的元素(front).④查看队列是否为空(isEm ...

  9. python logging 配置

    python logging 配置 在python中,logging由logger,handler,filter,formater四个部分组成,logger是提供我们记录日志的方法:handler是让 ...

  10. 《UML大战需求分析》阅读笔记01

    在刚学习软件开发的课程时,首先学习了UML设计,但只是学习了基本的语法,虽然在学期通过课堂练习进行了实践,但并没有真正理解其中作用.为了进一步的理解UML的用法,我阅读了<UML大战需求分析&g ...