您的位置:首页 > 编程语言 > Python开发

Python的运算符与用法

2012-10-31 16:58 197 查看
本文转自 http://my.oschina.net/junwuwei/blog/29625

Python的运算符与用法
运算符
名称
说明
例子
+两个对象相加3 + 5得到8。'a' + 'b'得到'ab'。

(注意:6+'a'这样是错误的,但在PHP里这样是可以运行的)
-得到负数或是一个数减去另一个数-5.2得到一个负数。50 - 24得到26。
*两个数相乘或是返回一个被重复若干次的字符串2 * 3得到6。'la' * 3得到'lalala'(但PHP里这样运算返值为0)。

在PHP中要实现相同功能,有函数:

str_repeat(),str_pad()
**返回x的y次幂
3 ** 4得到81(即3 * 3 * 3 * 3)
/x除以y4/3得到1(整数的除法得到整数结果)。4.0/3或4/3.0得到1.3333333333333333
//取整除返回商的整数部分4 // 3.0得到1.0
%取模返回除法的余数8%3得到2。-25.5%2.25得到1.5

(在PHP中:-8%3 = -2  与 8%-3 = 2 )
<<左移把一个数的比特向左移一定数目(每个数在内存中都表示为比特或二进制数字,即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是否大于y5 > 3返回True。如果两个操作数都是数字,它们首先被转换为一个共同的类型。否则,它总是返回False。
<=小于等于返回x是否小于等于yx = 3; y = 6; x <= y返回True。
>=大于等于返回x是否大于等于yx = 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。短路计算在这里也适用。
 

fc_lamp提醒你:Python的逻辑运算符里没有“!(非),&&(与),||(或)” 这三个表示符号(完全是英文上的表示)。

                          即 not,and,or

                        参看:http://hi.baidu.com/fc_lamp/blog/item/6a5fdf256168183ad40742a9.html

另外单独说说python的字符串运算符:

  了解PHP的人知道,在PHP里字符串的连接运算符为(“.”),它返回其左右参数连接后的字符串。如:

<?php

$a
= 55;

$str
= 'abc';

$str
.= 'def';

$str
.= $a; //在运算时,PHP自动把$a的类型转为了字符串类型

$str
= $str.'s99s';

//在PHP里变量与字符串之间连接是通过点运算来实现连接的

echo
$str;

但在python里,可能大家已从运算表里找到了,即 (“+”),但是与PHP不同的是两个对象相加,两个对象必须是同类型的,不同类型的两个对象是不能相加的。

要实现像上面PHP代码里的运算,必须保证两对象类型一致。如:

print('=============python字符串运算符================')

numa
= 3

strs
= 'This first'

strs1
= strs,numa #输出值为:('This first',3)

print(strs1)

######################

#类型对象不匹配,无法正常运算

#strs2
= strs+numa 

#print(strs2)

######################

strs3
= strs+str(numa) #改变numa的类型,使其成为字符串,或者 strs += str(numa)

print(strs3) #输出为This
first3

#另外:如果strs
= '6',则可进行:strs3 = int(strs)+numa这样的运算,输出为9

python里也没有类似"xx ? xx : xx"这样的三元运算符,可用:

charset = 'utf8' if 'charset' not in param else
param['charset'];

参看:http://chroya.iteye.com/blog/726479

Python的运算优先级
运算符
说明
lambdaLambda表达式
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,...'字符串转换
 

另注:

1 dir()函数 :

你可以使用内建的dir函数来列出模块定义的标识符。标识符有函数、类和变量。

当你为dir()提供一个模块名的时候,它返回模块定义的名称列表。如果不提供参数,它返回当前模块中定义的名称列表。

2 del 

  用于删除一个变量,这类似于PHP里的unset()

3 python的Bool值:True ,False
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: