按位运算
按位 & | ^ ~
>> 3&33>> 3&11>> 2|13
异或 ^ 相同为 0, 不用为 1
Is 判断两个对象是否相等, 两个对象的 id() 值相等才相等
Python 缓存 -5~256 的较小值, 指向其的变量对象 id 值相等
- operator
- #coding=utf-8
- import operator
- print (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)>> su6>> eval("1+2")3
exec()exec 函数和 eval 函数类似, 也是执行动态语句, 只不过 eval 函数只用于执行表达式求值, 而 exec 函数主要用于执行语句块, 可以执行多行语句, 没有返回值;
- >> e ='print("hello")'>> exec(e)Hello
- >> exec("a = 2+3")>> a5
- >> s = """... for i in list(range(10)):... print(i+1)...""">> exec(s)12345678910
标准输出 sys.stdout.write()
>> import sys>> sys.stdout.write("d")d1>> sys.stdout.write("dd")dd2
标准错误输出
>> sys.stderr.write("Error")5Error>>>
标准输入
- >> a = sys.stdin.read()353^Z>> a'353\n'
- print('hello:?',end='')
- hi=sys.stdin.readline()[:-1]
打印内容保存到文件
- import sys
- print('Fatal error: invali input!',file=open("e:\\log.out","w"))
- print('Fatal error: invali input!',file=sys.stderr)# 打印错误
- math.pi
- >> import math>> math.pi3.141592653589793
练习题:
1, 把字符串中的所有数字去掉.
- #coding=utf-8
- s = "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,c
- print(sort_2(3,1,9))
3, 求一个列表中的最大值
- def max(a):
- #找到列表的最大值
- max_num = a[0]
- for i in a:
- if i> max_num:
- max_num =i
- return max_num
- a = [1,2,3,4,5]
- print(max(a))
来源: http://www.bubuko.com/infodetail-2745503.html