《Python基础教程》第1章 基础知识

作者: tangyefei | 来源:发表于2014-12-30 15:21 被阅读463次

    编程语言之间很多概念是互通的,对于和Java或者JavaScript已经重复的基础内容,不再笔记,只挑选比较常用和不同的地方予以记录。

    本章目录

    • 安装Python
    • 交互式解释器
    • 算法是什么
    • 数字和表达式
    • 变量()
    • 语句()
    • 获取用户输入
    • 函数()
    • 模块
    • 保存并执行程序
    • 字符串
    • 小结()

    安装Python

    Mac OS上默认安装了Python,除非你需要安装新版本的可以参考 官方下载。[注:Terminal上输入python发现个人版本是2.7.8。到官网上查看发布历史,也是醉了,早些时候已经到了3.4.2,而最近的版本居然是2.7.9 ]

    除了官方的发布版本外,还有很多Python的版本可供下载,每个版本侧重功能可能会有不同。因此如果听说某Python前面加个 i 或者 j 叫成 iPython 或者 jPython 八成就是其他发布版本,不要觉得新奇。

    交互式解释器

    在Terminal输入python即进入了交互式解释器,输入一些有意义的语句既可看到响应。

    算法是什么

    算法是我们为了达成目的,告诉计算机该要怎么做的一个步骤。

    数字和表达式

    使用交互式解释器可以做一些很基本的算术运算:
    >>> 2 + 2
    4
    >>> 53672 + 235253
    288925
    >>> 1/2
    0

    如上的最后一个表达式,两个整数相除结果为整数,那么要让它不按照计算机语言处理方式,而只按照日常计算的方式有两种做法:

    • 用浮点数进行运算。只要有一个数为浮点数,结果就为浮点数:
    >>> 1.0 / 2.0
    0.5
    >>> 1 / 2.0
    0.5
    >>> 1.0 / 2
    0.5
    
    • 让Python改变除法的执行方式
    >>> from __future__ import division
    >>> 1 / 2
    0.5
    

    如上,从__future__中导入了division。这个时候要用整除就要使用双斜杆了。

    >>> 1 // 2
    0
    

    还有一个取余运算符比较常用,注意的是取余运算符对浮点数也适用。

    >>> 2.75 % 0.5
    0.25
    

    最后介绍一个幂(乘方)运算符:
    >>> 3 ** 2
    9
    >>> -3 ** 2
    -9
    >>> (-3) ** 2
    9

    长整形数

    受计算机存储单位的限制,所有整数不能大于某个数(也不能小于某个数),如果超出Python会自动转换为长整型数,当然你也可以自己定义的时候就加上L在后面,如下是定义和运算的例子:

    >>> 1000000000000000000000
    1000000000000000000000L
    >>> 2987198739107239812 * 1239827389479283479283
    3703610814563136332097919362350014814796L
    
    十六进制和八进制
    >>> 0xAF
    175
    >>> 010
    8
    

    获取用户输入

    >>> x = input('x:')
    x:4
    >>> y = input('y:')
    y:3
    >>> print x*y
    12
    

    模块

    可以把模块当作导入到Python中增强功能的扩展,有两种导入形式:

    >>> import math
    >>> int(math.floor(32.99))
    32
    
    >>> from math import sqrt
    >>> sqrt(9)
    3.0
    
    cmatch和复数

    cmatch被用来处理虚数、复数之类,几乎没机会用到的吧,略。

    回到__furture__

    一些在将来会成为Python语言特性的功能会被假如到模块__furture__中,在前面已经有接触到过这个 模块。

    保存并执行程序

    将程序片段保存在py为后缀的文件后,可以通过python file.py进行执行。如下介绍配置python文件为可执行文件的做法。

    在文件的首行加上 #!usr/bin/env python,然后命令行给文件加上可执行属性 chmod a+x hello.py 就能执行命令行键入 ./hello.py 执行代码了。(注:个人PC上的Python版本是2.7.8,不同版本不同操作系统,需要添加的行首内容或执行命令可能会有不同)示例代码如下:

    #!usr/bin/python
    
    name = raw_input('What is your name ?')
    print 'Hello,' + name + '!'
    

    直接通过双击也是可以的,但是输入结果以后程序运行完毕后就直接关闭了,加入如下代码即可:

    raw_input("Press <enter>")
    

    字符串

    引号与转译
    >>> "Hello, World!"
    'Hello, World!'
    

    如上,输入的时候是用的双引号,实际输出却是单引号,在Python中两者没有区别,那么为什么不统一用单或者双引号呢,看如下例子:

    >>> "Let's go!"
    "Let's go!"
    

    在一些场合会需要输出单引号(或者双引号)的,除了单双引号交替以外,还可以使用\将引号进行转译,比如:

    >>> 'Let\' go!'
    "Let's go!"
    
    拼接字符串

    如下是拼接字符串的常规做法:

    >>> "Hello," + " World!"
    'Hello, World!'
    >>> x = "Hello,"
    >>> y = " World!"
    >>> x + y
    'Hello, World!'
    
    字符串表示str和repr
    >>> "Hello, World!" 
    'Hello, World!'
    >>> 1000L
    1000L
    >>> print "Hello, World!"
    Hello, World!
    >>> print 1000L
    1000
    

    如上示例中我们可以看到,Python打印的字符串是有引号括起来的,而print函数打印的字符串是没有。差别就在于这是用来两种不同的字符串转换机制,前者是用repr将内容转化为Python代码中的形式,后者使用str将内容转化为方便用户看的形式,上面的示例等同于下面的写法:

    >>> print repr("Hello, World!")
    'Hello, World!'
    >>> print repr(1000L)
    1000L
    >>>print str("Hello, World!")
    'Hello, World!'
    >>>print str(1000L) 
    1000
    

    另外还有一个知识点请看如下示例:

    >>> temp = 42
    >>> print "The number is: " + temp
    error
    >>> print "The number is: " + \`temp\`
    The number is: 42
    

    直接将字符串和数字拼接是会报错的(写惯了js这点还是感觉蛮意外的),而通过如上写法等同于调用了repr(temp),将temp转化为了字符串“42”所以正常拼接后输出了。

    input和raw_input的比较

    input会把用户输入当做一个合法的结果,比如命令行执行 input("What's your name ?") 用户直接输入名字Lucy是会报错的,需要输入内容裹上字符串才行,如"Lucy"。而raw_input相当于替你作了这个事情,将输入内容作为raw数据然后替你包裹成字符串。除非有特殊需要,一般很少用input来做数据输入的。

    特殊的字符串
    • 长字符串
      在文本内容跨多行的时候,可以使用三引号包裹的写法。

    • 原始字符串

    通过形如\n的方式我们可以使用一些转译字符,但是在一些路径的表示中,我们可能并不希望有些字符被转移,这时候可以通过在字符前加上r来将字符表示为原始字符串:
    >>> print "C:\nowhere"
    C:
    owhere
    >>> print r"C:\nowhere"
    C:\nowhere

    唯一要注意的是,原始字符串的最后一个字符串不能是反斜杆否则会报错。 做法是将最后一个反斜杆单独作为一个字符串来处理:

    >>> print  r"C:\nowhere\"
    error
    >>> print  r"C:\nowhere" "\\"
    C:\nowhere\
    
    Unicode字符串

    Python中的字符串是一ANSII来表示的,如果需要用Unicode的方式来存储可以使用如下写法:

    >>> u"Hello, World!"
    u'Hello, World!'
    

    相关文章

      网友评论

        本文标题:《Python基础教程》第1章 基础知识

        本文链接:https://www.haomeiwen.com/subject/whqztttx.html