python學習(4)
按位 & | ^ ~
>> 3&3
3
>> 3&1
1
>> 2|1
3
異或
^
相同為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)
>> 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 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.pi
3.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))
python學習(4)