python学习(4),,按位运算按位 & |


按位运算

按位 & | ^ ~

>> 3&3
3
>> 3&1
1
>> 2|1
3

异或
^
相同为0,不用为1

Is
判断两个对象是否相等,两个对象的id()值相等才相等

Python缓存 -5~256的较小值,指向其的变量对象id值相等

operator

#coding=utf-8import  operatorprint  (operator.add(1,1))print  (operator.sub(2,1))print  (operator.mul(2,3))print  (operator.truediv(6,2))print  (operator.contains("ab","a"))print  (operator.pow(2,3))print  (operator.ge(1,1))print  (operator.gt(2,1))print  (operator.le(1,2))print  (operator.eq(1,1))

python 3.4.3 的版本中已经没有cmp函数,被operator模块代替,在交互模式下使用时,需要导入模块。

eval()
表达式求值,只能执行单行表达式,有返回值

>> s = "1+2+3"
>> eval(s)
6
>> su = eval(s)
>> su
6
>> eval("1+2")
3

exec()
exec函数和eval函数类似,也是执行动态语句,只不过eval函数只用于执行表达式求值,而exec函数主要用于执行语句块,可以执行多行语句,没有返回值;

>> e =‘print("hello")‘
>> exec(e)
Hello

>> exec("a = 2+3")
>> a
5

>> s = """
... for i in list(range(10)):
... print(i+1)
... """
>> exec(s)
1
2
3
4
5
6
7
8
9
10

标准输出
sys.stdout.write()

>> import sys
>> sys.stdout.write("d")
d1
>> sys.stdout.write("dd")
dd2

标准错误输出

>> sys.stderr.write("Error")
5
Error>>>

标准输入

>> a = sys.stdin.read()
353
^Z
>> a
‘353\n‘

print(‘hello:?‘,end=‘‘)hi=sys.stdin.readline()[:-1] 

打印内容保存到文件

import sysprint(‘Fatal error: invali input!‘,file=open("e:\\log.out","w"))print(‘Fatal error: invali input! ‘,file=sys.stderr)#打印错误

math.pi

>> import math
>> math.pi
3.141592653589793

练习题:

1、把字符串中的所有数字去掉。

#coding=utf-8s = "a1b2c3b4d5dddddd"letters_list = []for v in s:    if v not in "0123456789":        letters_list.append(v)print("".join(letters_list))print("".join([v  for v in s  if v.isalpha()]))print("".join(filter(lambda x:x not in "0123456789",s)))print("".join(filter(lambda x:x.isalpha(),s)))

2、三个数排序
#coding=utf-8

def sort_2(a,b,c):    if a > b:        a,b = b,a    if a > c:        a,c = c,a    if b > c:        b,c =c,b    return a,b,cprint(sort_2(3,1,9))

3、求一个列表中的最大值

def max(a):    #找到列表的最大值    max_num = a[0]    for i in a:        if i > max_num:            max_num =ireturn max_numa = [1,2,3,4,5]print(max(a))

python学习(4)

评论关闭