2.1、常量

  以字面意义来理解,数2总代表它自己,不能改变它的值,这种具备字面意义的通常被称作常量。如123、1.23、1.23e-3这样的数,或者'This is a string'这样的字符串。

2.2、数

  Python中有4种类型的数:

  整数: 2

  长整数:大一些的整数

  浮点数:2.34、52.3E-4(E标记表示10的幂 52.3E-4表示52.3 * 10-4

  复数:(-5+4j)、(2.3-4.6j)

2.3、字符串

  字符串是字符的序列,基本上就是一组单词。

  Python中可以使用单引号(')、双引号(")和三引号(''')指示字符串。

  单引号和双引号没有使用上的区别,三引号可以指示多行字符串,同时可以在三引号中自由使用单引号或者双引号。

  实例 string.py:

#!/usr/bin/python

print ('What\'s your name?')
print ("What's your name?")
print ('''This is a multi-line string. This is a first line.
This is the second line.
"What's your name?," I asked.
He said "Bourne,Jason Bourne." \n
''')
print ("This is the first sentence. \
This is the second sentence.\n
")
print (r"Newlines are indicated by \n")
print (R"Newlines are indicated by \n")
print (u"Newlines are indicated by \n")
print ('What\'s' " " 'your name?')
print ("What's"' '"your name?")

输出结果:

[root@test Public]# python string.py
What's your name?
What's your name?
This is a multi-line string. This is a first line.
This is the second line.
"What's your name?," I asked.
He said "Bourne,Jason Bourne."

This is the first sentence. This is the second sentence.

Newlines are indicated by \n
Newlines are indicated by \n
Newlines are indicated by

What's your name?
What's your name?
[root@test Public]#

注:'\' 为转义符,行末的单独一个反斜杠表示字符串在下一行继续,而不是开始一个新的行。

如果你想要指示某些不需要如转义符那样的特别处理的字符串,那么你需要指定一个自然字符串。自然字符串通过给字符串加上前缀rR来指定(用自然字符串处理正则表达式非常有用)。

Python允许你处理Unicode文本——你只需要在字符串前加上前缀uU,处理文本文件的时候使用Unicode字符串,特别是当你知道这个文件含有用非英语的语言写的文本。

把两个字符串按字面意义相邻放着,他们会被Python自动级连。

2.4、变量

  仅仅使用字面意义上的常量很快就会引发烦恼——我们需要一种既可以储存信息 又可以对它们进行操作的方法。这是为什么要引入 变量 。变量就是我们想要的东西——它们的值可以变化,即你可以使用变量存储任何东西。变量只是你的计算机中存储信息的一部分内存。与字面意义上的常量不同,你需要一些能够访问这些变量的方法,因此你给变量名字。

2.5、标识符的命名

  变量是标识符的例子。 标识符 是用来标识 某样东西 的名字。在命名标识符的时候,你要遵循这些规则:

  • 标识符的第一个字符必须是字母表中的字母(大写或小写)或者一个下划线(' _ ')。

  • 标识符名称的其他部分可以由字母(大写或小写)、下划线(' _ ')或数字(0-9)组成。

  • 标识符名称是对大小写敏感的。例如,mynamemyName不是一个标识符。注意前者中的小写n和后者中的大写N。

  • 有效 标识符名称的例子有i__my_namename_23a1b2_c3

  • 无效 标识符名称的例子有2thingsthis is spaced outmy-name

2.6、数据类型

  变量可以处理不同类型的值,称为数据类型。基本的类型是数和字符串。

2.7、对象

  Python把在程序中用到的任何东西都称为对象,数、字符串、函数、类、模块 等等都是对象。

2.8、逻辑行与物理行

  物理行是在编写程序时所 看见 的。逻辑行是Python 看见 的单个语句。Python假定每个 物理行 对应一个 逻辑行

  默认地,Python希望每行都只使用一个语句,这样使得代码更加易读。

  如果想要在一个物理行中使用多于一个逻辑行,那么你需要使用分号(;)来特别地标明这种用法。分号表示一个逻辑行/语句的结束。

2.9、缩进

  空白在Python中是重要的。事实上行首的空白是重要的。它称为缩进。在逻辑行首的空白(空格和制表符)用来决定逻辑行的缩进层次,从而用来决定语句的分组。

这意味着同一层次的语句必须有相同的缩进。每一组这样的语句称为一个

2.10、运算符

运算符与它们的用法

运算符名称说明例子
+ 两个对象相加 3 + 5得到8。'a' + 'b'得到'ab'。
- 得到负数或是一个数减去另一个数 -5.2得到一个负数。50 - 24得到26。
* 两个数相乘或是返回一个被重复若干次的字符串 2 * 3得到6。'la' * 3得到'lalala'。
**

返回x的y次幂

3 ** 4得到81(即3 * 3 * 3 * 3)
/ x除以y 4/3得到1(整数的除法得到整数结果)。4.0/3或4/3.0得到1.3333333333333333
// 取整除 返回商的整数部分 4 // 3.0得到1.0
% 取模 返回除法的余数 8%3得到2。-25.5%2.25得到1.5
<< 左移 把一个数的比特向左移一定数目(每个数在内存中都表示为比特或二进制数字,即0和1) 2 << 2得到8。——2按比特表示为10
>> 右移 把一个数的比特向右移一定数目 11 >> 1得到5。——11按比特表示为1011,向右移动1比特后得到101,即十进制的5。
& 按位与 数的按位与 5 & 3得到1。
| 按位或 数的按位或 5 | 3得到7。
^ 按位异或 数的按位异或 5 ^ 3得到6
~ 按位翻转 x的按位翻转是-(x+1) ~5得到6。
< 小于 返回x是否小于y。所有比较运算符返回1表示真,返回0表示假。这分别与特殊的变量True和False等价。注意,这些变量名的大写。 5 < 3返回0(即False)而3 < 5返回1(即True)。比较可以被任意连接:3 < 5 < 7返回True。
> 大于 返回x是否大于y 5 > 3返回True。如果两个操作数都是数字,它们首先被转换为一个共同的类型。否则,它总是返回False。
<= 小于等于 返回x是否小于等于y x = 3; y = 6; x <= y返回True。
>= 大于等于 返回x是否大于等于y x = 4; y = 3; x >= y返回True。
== 等于 比较对象是否相等 x = 2; y = 2; x == y返回True。x = 'str'; y = 'stR'; x == y返回False。x = 'str'; y = 'str'; x == y返回True。
!= 不等于 比较两个对象是否不相等 x = 2; y = 3; x != y返回True。
not 布尔“非” 如果x为True,返回False。如果x为False,它返回True。 x = True; not y返回False。
and 布尔“与” 如果x为False,x and y返回False,否则它返回y的计算值。 x = False; y = True; x and y,由于x是False,返回False。在这里,Python不会计算y,因为它知道这个表达式的值肯定是False(因为x是False)。这个现象称为短路计算。
or 布尔“或” 如果x是True,它返回True,否则它返回y的计算值。 x = True; y = False; x or y返回True。短路计算在这里也适用。

 如果你有一个如2 + 3 * 4那样的表达式,是先做加法呢,还是先做乘法?我们的中学数学告诉我们应当先做乘法——这意味着乘法运算符的优先级高于加法运算符。

下面这个表给出Python的运算符优先级,从最低的优先级(最松散地结合)到最高的优先级(最紧密地结合)。这意味着在一个表达式中,Python会首先计算表中较下面的运算符,然后在计算列在表上部的运算符。

下面这张表(与Python参考手册中的那个表一模一样)已经顾及了完整的需要。事实上,我建议你使用圆括号来分组运算符和操作数,以便能够明确地指出运算的先后顺序,使程序尽可能地易读。例如,2 + (3 * 4)显然比2 + 3 * 4清晰。与此同时,圆括号也应该正确使用,而不应该用得过滥(比如2 + (3 + 4))。

运算符优先级

运算符描述
lambda Lambda表达式
or 布尔“或”
and 布尔“与”
not x 布尔“非”
in,not in 成员测试
is,is not 同一性测试
<,<=,>,>=,!=,== 比较
| 按位或
^ 按位异或
& 按位与
<<,>> 移位
+,- 加法与减法
*,/,% 乘法、除法与取余
+x,-x 正负号
~x 按位翻转
** 指数
x.attribute 属性参考
x[index] 下标
x[index:index] 寻址段
f(arguments...) 函数调用
(experession,...) 绑定或元组显示
[expression,...] 列表显示
{key:datum,...} 字典显示
'expression,...' 字符串转换

其中我们还没有接触过的运算符将在后面的章节中介绍。在表中列在同一行的运算符具有 相同优先级 。例如,+-有相同的优先级。

计算顺序

默认地,运算符优先级表决定了哪个运算符在别的运算符之前计算。然而,如果你想要改变它们的计算顺序,你得使用圆括号。例如,你想要在一个表达式中让加法在乘法之前计算,那么你就得写成类似(2 + 3) * 4的样子。

结合规律

运算符通常由左向右结合,即具有相同优先级的运算符按照从左向右的顺序计算。例如,2 + 3 + 4被计算成(2 + 3) + 4。一些如赋值运算符那样的运算符是由右向左结合的,即a = b = c被处理为a = (b = c)

2.11、表达式

例:expression.py

#!/usr/bin/python

length
= 4
breadth
= 2
area
= length*breadth
print 'Area is',area
print "perimeter is", 2*(length+breadth)

s
='I am a string'
print "%s" %s
print s

输出结果:

Area is 8
perimeter is 12
I am a string
I am a string

2.12、获取帮助

[root@test ~]# python
Python 2.6.5 (r265:79063, Jun 25 2011, 08:36:25)
[GCC 4.4.4 20100726 (Red Hat 4.4.4-13)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> help('print')
...
 

posted on 2011-08-15 14:33  xunya  阅读(850)  评论(0编辑  收藏  举报