这个笔记主要是关于python语言本身的一些概念。
在Python中有4种类型的数——整数、长整数、浮点数和复数。如:2是一个整数的例子。 3.23和52.3E-4是浮点数的例子。E标记表示10的幂。在这里,52.3E-4表示52.3 * 10-4。 (-5+4j)和(2.3-4.6j)是复数的例子。
你可以用单引号指示字符串,就如同'Quote me on this'这样。所有的空白,即空格和制表符都照原样保留。在双引号中的字符串与单引号中的字符串的使用完全相同。使用三引号('''或""")可以指示一个多行的字符串。可以在三引号中自由的使用单引号和双引号。转义符是\,可以用\'来指示单引号—注意这个反斜杠。
变量的名字就是标识符。在命名标识符的时候,你要遵循这些规则:
● 标识符的第一个字符必须是字母表中的字母(大写或小写)或者一个下划线(‘ _’)。
● 标识符名称的其他部分可以由字母(大写或小写)、下划线(‘ _ ’)或数字(0-9)组成。
● 标识符名称是对大小写敏感的。例如,myname和myName不是一个标识符。注意前者中
的小写n和后者中的大写N。
● 有效 标识符名称的例子有i、__my_name、name_23和a1b2_c3。
● 无效 标识符名称的例子有2things、this is spaced out和my-name。
使用变量时只需要给它们赋一个值。不需要声明或定义数据类型。
物理行是你在编写程序时所看见的。逻辑行是Python 看见的单个语句。Python假定每个物理行对应一个逻辑行。如果你想要在一个物理行中使用多于一个逻辑行,那么你需要使用分号(;)来特别地标明这种用法。分号表示一个逻辑行/语句的结束。
Python程序中行首的空白称为缩进,是非常重要的,它用来决定逻辑行的缩进层次,从而用来决定语句的分组。类似于C++中的花括号。同一层次的语句必须有相同的缩进,每一组这样的语句称为一个块(Block)。
表2.1 运算符与它们的用法
运算符 |
名称 |
说明 |
例子 |
+ |
加 |
两个对象相加 |
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.2 运算符优先级
运算符 |
描述 |
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,...' |
字符串转换 |
Format |
Meaning |
"c" |
Single character (i.e., string of length 1) |
"B" |
Unsigned 8-bit integer |
"h" |
Short (16-bit) integer |
"i" |
32-bit integer |
"f" |
32-bit float |
"d" |
Double-precision (64-bit) float |
"2" |
String of fixed size (see below) |
Table 18.2: Packing Format Specifiers |
在Python中有三种控制流语句——
if
、
for
和
while,
Python中if-elif-else语句类似于C++中的if-elseif-else;
Python中for i in range(0,5)等价于
C/C++中的for (int i = 0; i < 5; i++)
。程序中使用内建的range
函数生成这个数的序列。range
返回一个序列的数。这个序列从第一个数开始到第二个数为止。例如,range(1,5)
给出序列[1, 2, 3, 4]
。默认地,range
的步长为1。如果我们为range
提供第三个数,那么它将成为步长。例如,range(1,5,2)
给出[1,3]
。记住,range 向上 延伸到第二个数,即它不包含第二个数。
while语句是循环语句,while
语句有一个可选的else
从句。
break
语句是用来 终止 循环语句的,即哪怕循环条件没有称为False
或序列还没有被完全递归,也停止执行循环语句。
一个重要的注释是,如果你从for
或while
循环中终止 ,任何对应的循环else
块将不执行。
posted on 2009-07-14 22:36
鹰击长空 阅读(288)
评论(0) 编辑 收藏 引用