免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2800 | 回复: 0
打印 上一主题 下一主题

Python 语法之操作符和表达式 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2009-10-23 18:44 |只看该作者 |倒序浏览


  Normal
  0
  
  
  
  7.8 磅
  0
  2
  
  false
  false
  false
  
  EN-US
  ZH-CN
  X-NONE
  
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
  
  
   
   
   
   
   
   
   
   
   
   
   
  

  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  

/* Style Definitions */
table.MsoNormalTable
        {mso-style-name:普通表格;
        mso-tstyle-rowband-size:0;
        mso-tstyle-colband-size:0;
        mso-style-noshow:yes;
        mso-style-priority:99;
        mso-style-qformat:yes;
        mso-style-parent:"";
        mso-padding-alt:0cm 5.4pt 0cm 5.4pt;
        mso-para-margin:0cm;
        mso-para-margin-bottom:.0001pt;
        mso-pagination:widow-orphan;
        font-size:10.5pt;
        mso-bidi-font-size:11.0pt;
        font-family:"Calibri","sans-serif";
        mso-ascii-font-family:Calibri;
        mso-ascii-theme-font:minor-latin;
        mso-hansi-font-family:Calibri;
        mso-hansi-theme-font:minor-latin;
        mso-font-kerning:1.0pt;}
Python 语法之操作符和表达式
File information
2009-10-23
磁针石:xurongzhong#gmail.com
博客:
oychw.cublog.cn
参考资料:
《Python Essential Reference 4th
Edition 2009》
《beginning python from novice to
professional second edition 2008》


*数值运算符
      
      
x + y 加法
x - y 减法
x * y 乘法
x / y 除法
x // y 整除
x ** y 乘方
x % y 取模
–x Unary minus
+x Unary plus

       Python 2,两个整数相除结果为取模,Python 3,7/4得1,Python 3中改为用浮点运算,得1.75。Python 2导入:from __future__ import division,强制转换。Future一般用于调用以后版本会实现的功能。

>>>
2.75 % 0.5
0.25

>>>
-3 ** 2
-9
>>>
(-3) ** 2
9

长整数的处理:
>>>
1000000000000000000
1000000000000000000L
       2.2及以前版本处理的范围:2147483647 (or smaller than –2147483648)

      
       16进制:
       >>> 0xAF
175
八进制:
>>>
010
8
变量必须赋值才能使用。


位操作符:
              x
              x >> y Right shift
              x & y Bitwise and
              x | y Bitwise or
              x ^ y Bitwise xor (exclusive or)
              ~x Bitwise negation
       python在位运算不会自动截断,要注意到是否会产生巨长的结果。

       其他运算符:
              abs(x) Absolute value
              divmod(x,y) Returns (x // y, x %
y)
              pow(x,y [,modulo]) Returns (x **
y) % modulo
              round(x,[n]) Rounds to the nearest
multiple of 10-n (floating-point numbers
              only)
       注意pow可以作为三元运算符,一般用于加密算法。
       round以远离0为目标:round(0.5)得1,round(-0.5)得-1。Python 3中有点怪异:round(0.5)和round(0.5)得0,round(1.5)得2, round(-1.5)得-2。


       算数比较符:
              x
              x > y Greater than
              x == y Equal to
              x != y Not equal to
              x >= y Greater than or equal to
              x

       它们的连接,比如w ,理解为w
       python中的隐式转换并不多。

*复合运算符
x +=y
x -=y
x *=y
x /=y
x //=y
x **=y
x %=y
x
&=y
x |=y
x ^=y
x
>>=y
x

              a = 3
              b = [1,2]
              c = "Hello %s %s"
              a += 1 # a = 4
              b[1] += 10 # b = [1, 12]
              c %= ("Monty",
"Python") # c = "Hello Monty Python"

*点号

*函数调用()
def
foo(x,y,z):
    return x+y+z
from
functools import partial
f =
partial(foo,1,2)
f(3)

       这个东东和currying进程很类似。

*函数调用()
def
foo(x,y,z):
    return x+y+z
from
functools import partial
f =
partial(foo,1,2)
f(3)

       这个东东和currying进程很类似。

*类型转换
       int(x [,base]) Converts x to an integer.
base specifies the base if x
is a
string.
float(x)
Converts x to a floating-point number.
complex(real
[,imag]) Creates a complex number.
str(x)
Converts object x to a string representation.
repr(x)
Converts object x to an expression string.
format(x
[,format_spec]) Converts object x to a formatted string.
eval(str)
Evaluates a string and returns an object.
tuple(s)
Converts s to a tuple.
list(s)
Converts s to a list.
set(s)
Converts s to a set.
dict(d)
Creates a dictionary. d must be a sequence of
(key,value)
tuples.
frozenset(s)
Converts s to a frozen set.
chr(x)
Converts an integer to a character.
unichr(x)
Converts an integer to a Unicode character (Python 2
only).
ord(x)
Converts a single character to its integer value.
hex(x)
Converts an integer to a hexadecimal string.
bin(x)
Converts an integer to a binary string.
oct(x)
Converts an integer to an octal string.

a =
int("34") # a = 34
b =
long("0xfe76214", 16) # b = 266822164L (0xfe76214L)
b =
float("3.1415926") # b = 3.1415926
c =
eval("3, 5, 6") # c = (3,5,6)
      
*布尔类型操作符

x or y
If x is false, return y; otherwise, return x.
x and y
If x is false, return x; otherwise, return y.
not x If
x is false, return 1; otherwise, return 0.

*对象相等
相等:(x == y)
是同一对象:is

*运算顺序
       除了乘方以外,都是由左至右的。
优先级由高到低:
(...),
[...], {...} Tuple, list, and dictionary creation
s,
s[i:j] Indexing and slicing
s.attr
Attributes
f(...)
Function calls
+x, -x,
~x Unary operators
x ** y
Power (right associative)
x * y, x
/ y, x // y, x % y Multiplication, division, floor division, modulo
x + y, x
- y Addition, subtraction
x
> y Bit-shifting
x &
y Bitwise and
x ^ y
Bitwise exclusive or
x | y
Bitwise or
x
tests
x >
y, x >= y,
x == y,
x != y
x is y,
x is not y
x in s,
x not in s
not x
Logical negation
x and y
Logical and
x or y
Logical or
lambda
args: expr Anonymous function

*条件表达式
if a
minvalue
= a
else:
minvalue
= b

等同于:
minvalue
= a if a

values =
[1, 100, 45, 23, 73, 37, 69 ]
clamped
= [x if x
print(clamped)
# [1, 50, 45, 23, 50, 37, 50]

               
               
               

本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u/21908/showart_2076986.html
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP