python第一课:python特性(1)

本篇内容主要快速介绍python的基本特性,对python的基本语法有一个全面的了解,结合学过的语言对python有一个清晰的认识。

一、介绍

在本系列笔记中,我们是参考了经典书籍python核心编程第二版,这本书是一本非常好的书,是python2.x系列的。虽然现在大多数都使用python3.x系列。但是个人觉得,知道一些2.x与3.x的不同对学习python是很有帮助的。

我们可以下载一个python2.x的python解释器。我们先说一下python解释器的两种提示符。

  • 主提示符(>>>):解释器告诉你它在等待输入下一个语句
  • 次提示符(...):解释器正在等待输入当前语句的其他部分

python有两种主要的方式来完成我们的要求:

语句:使用关键字来组成命令

>>> print 'hello world'
hello world

表达式:表达式没有关键字,可以是数学运算符构成的算数表达式,也可以是使用括号调用的函数

hello world
>>> abs(4)
4
>>> abs(-4)
4

二、输入

使用raw_input()内建函数,获取用户输入的数据,无论输入的是什么数据,我们得到的都是字符串,我们可以使用int()函数等,来转换数据的格式。

>>> data = raw_input("输入:")
输入:guo
>>> print data
guo

 注意:当我们要使用一个陌生函数的时候,不知道它具体的参数,我们可以使用help()函数查看。

>>> help(raw_input)
Help on built-in function raw_input in module __builtin__:

raw_input(...)
    raw_input([prompt]) -> string

    Read a string from standard input.  The trailing newline is stripped.
    If the user hits EOF (Unix: Ctl-D, Windows: Ctl-Z+Return), raise EOFError.
    On Unix, GNU readline is used if enabled.  The prompt string, if given,
    is printed without a trailing newline before reading.

三、输出

输出语句使用print语句,可以使用print语句显示变量的字符串表示,或仅使用变量名查看该变量的原始值

>>> myString = 'I Love You'
>>> print myString
I Love You
>>> myString
'I Love You'

 可以看到,使用变量名时输出的字符串被单引号括起来了,这是让非字符串对象也能以字符串的方式显示在屏幕上。

扩展:

下划线(_):在解释器中有特别的含义:表示最后一个表达式的值。

>>> _
'I Love You'

格式化输出:python的print语句可以和字符串格式运算符(%)结合使用。实现字符串替换。

>>> print "%d + %d = %d" % (1,2,(1+2))
1 + 2 = 3

输出从定向到文件:符号 >> 用来重定向输出。

>>> import sys
>>> print >> sys.stderr, 'Fatal error:invalid input!'
Fatal error:invalid input!

四、注释

python使用 # 符号标示注释。

>>> # 这是一行注释
... print ‘’hello' # 这还是一个注释


>>>

在python2.x中有一宗文档字符串的特备注释 ,起到在线文档的功能,与普通注释不同,文档字符串可以在运行时访问,也可以用来自动生成文档。

>>> def foo():
...     "这是一个文档注释"
...     return True
...
>>>

此处有一个很重要的地方,就是当你在函数中输入下一行代码时,要注意缩进,后面我们会说到python代码的缩进。 

五、运算符

算术运算符:+   -   *   /   //   %   **

加减乘取余都是我们熟悉的标准运算符,python有两种除法运算符,单斜杠为传统除法,双斜杠为浮点除法。

传统除法是指两个操作数都是整数的情况下,执行的是地板除(取比商小的最大整数

浮点除法是真正的除法。

双星号(**)则表示乘方,也就是对一个数进行平方操作。算数运算符在使用的过程中,要注意优先级,可以结合括号使用

>>> 4 * 5
20
>>> -1 * 4 + 3 ** 2
5

比较运算符:<   <=   >   >=   ==   !=   <>

!= 和 <> 这两个符号都表示不等于,后者慢慢被淘汰了,所以用前面那个

>>> 2 == 4
False
>>> 1 > 2
False

 逻辑运算符:and   or   not 

>>> 2 < 4 and 2 == 4
False
>>> not 6.2 <= 6
True
>>> not 3
False
>>> 1 and 2
2
>>> 3 or 4
3

 逻辑运算符要注意两边一般情况下都是布尔类型,但是注意,如果都是两个数,也是可以计算的

六、变量与赋值

变量的命名规则,由字母、数字和下划线组成,并且不能以数字开头,python中是区分字母大小写的。python是动态类型语言,也就是不需要预先声明变量的类型。变量的类型和值在复制一刻就被初始化。

>>> count = 0
>>> name = 'bob'
>>> height = 1.78
>>> print type(count)
<type 'int'>
>>> print type(name)
<type 'str'>

上边是给变量赋值的例子,可以看出变量的类型已经被初始化了,python支持增量赋值

n = n * 10 等价于 n *= 10

但是python不支持自增1或自减1的运算。 

七、数字

python有五种基本数字类型,有三种是整数类型

  • int(有符号整数)
  • long(长整数)
  • bool(布尔值)
  • float(浮点值)
  • complex(复数)

注意,python的长整型将会与整型结合。布尔值是true和false,但是与数值放在一起就是1和0.

还有一宗类型是decimal,用于十进制浮点数,但是他不是内建类型,需要先导入decimal模块才可以使用。

八、字符串

字符串可以用成对的单引号和双引号,三引号用来包含特殊字符,使用索引运算符([])和切片运算符([:])得到子字符串,第一个字符的下标为0,最后一个字符的索引是-1.

(+)号用于字符串连接,(*)号则用于字符串重复

>>> pystr = 'python'
>>> iscool = 'is cool'
>>> pystr[0]
'p'
>>> iscool[-1]
'l'
>>> iscool[3:-1]
'coo'
>>> pystr + iscool
'pythonis cool'
>>> pystr * 2
'pythonpython'

九、列表和元祖

列表和元组有点类似于普通的“数组”,能保存任意数字数量任意类型的Python对象。可以从0开始的数字索引访问对象,列表和元祖与数组不同之处是可以存储不同类型的对象

列表:使用([])包裹元素,元素的个数及元素的值都可以改变

>>> aList = [1, 2, 3, 4]
>>> aList
[1, 2, 3, 4]
>>> aList[1]
2
>>> aList[1:-1]
[2, 3]
>>> aList[0] = 5
>>> aList
[5, 2, 3, 4]

元组:使用(())包裹元素,不可以改变元组的元素,元组可以看作只读的列表,可以通过切片运算和索引运算得到子集。

>>> aTuple = ('robots',77,93,'try')
>>> aTuple
('robots', 77, 93, 'try')
>>> aTuple[:3]
('robots', 77, 93)
>>> aTuple[1] = 5
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: 'tuple' object does not support item assignment

十、字典

字典是python中的映射数据类型,由键值(key-value)对构成。键和值可以为任意类型的python对象,字典元素用大括号({})包裹元素

>>> aDict = {'host':'earth'}
>>> aDict['port'] = 80 # 增加元素
>>> aDict
{'host': 'earth', 'port': 80}
>>> aDict.keys()
['host', 'port']
>>> aDict.values()
['earth', 80]
>>> aDict['host']
'earth'

本篇文章是简要的介绍一些python的特性,之后会具体讲到每一部分的具体内容,注意,本书的内容来自《python核心编程》第二版。因此,所有的内容是基于python2的,但是python2和python3的基础内容差别不是很大。清楚知道python2和python3的不同,更有助于python的学习。 

猜你喜欢

转载自blog.csdn.net/gyt15663668337/article/details/84678497