1. 程式人生 > >python學習日記:day15:------內置函數

python學習日記:day15:------內置函數

八進制 一個 end bin cal sum 除法 open() 空間

1,作用域相關

1)locals()---------獲取執行本方法所在命名空間內的局部變量的字典

#返回本地作用域中的所有名字

2)globals()——獲取全局變量的字典

#返回全局作用域中的所有名字

2,字符串類型的代碼執行

eval() 將字符串類型的代碼執行並返回結果

print(eval(1+2+3+4)

exec()將自字符串類型的代碼執行

print(exec("1+2+3+4"))
exec("print(‘hello,world‘)")
compile編譯
#流程語句使用exec
code1 = for i in range(0,10): print (i)
compile1 = compile(code1,‘‘,exec) exec (compile1)
 #簡單求值表達式用eval
code2 = 1 + 2 + 3 + 4
compile2 = compile(code2,‘‘,eval)
eval(compile2)
#交互語句用single
code3 = name = input("please input your name:")
compile3 = compile(code3,‘‘,single)
name #執行前name變量不存在
exec(compile3) #執行時顯示交互命令,提示輸入
 

 3、叠代器/生成器相關(3)

#叠代器.__next__()
# next(叠代器)
# 叠代器 = iter(可叠代的)
# 叠代器 = 可叠代的.__iter__()

4,輸入輸出相關
input() 輸入
s = input("請輸入內容 : ")  #輸入的內容賦值給s變量
print(s)  #輸入什麽打印什麽。數據類型是str

 print() 輸出源碼解析

def print(self, *args, sep= , end=\n, file=None): # known special case of print
    """
    print(value, ..., sep=‘ ‘, end=‘\n‘, file=sys.stdout, flush=False)
    file:  默認是輸出到屏幕,如果設置為文件句柄,輸出到文件
    sep:   打印多個值之間的分隔符,默認為空格
    end:  每一次打印的結尾,默認為換行符
    flush: 立即把內容輸出到流文件,不作緩存
    
"""

5,數據類型相關:

type(a) 返回變量a的數據類型

6,內存相關:

id(o) o是參數,返回一個變量的內存地址

hash(o) o是參數,返回一個可hash變量的哈希值,不可hash的變量被hash之後會報錯。

#hash - 對於相同可hash數據的hash值在一次程序的執行過程中總是不變的
# - 字典的尋址方式
t = (1,2,3)
l = [1,2,3]
print(hash(t))  #可hash
print(hash(l))  #會報錯

‘‘‘
結果:
TypeError: unhashable type: ‘list‘
‘‘‘

hash實例

7,文件操作相關

open() 打開一個文件,返回一個文件操作符(文件句柄)

操作文件的模式有r,w,a,r+,w+,a+ 共6種,每一種方式都可以用二進制的形式操作(rb,wb,ab,rb+,wb+,ab+)

可以用encoding指定編碼.

8,模塊操作相關

__import__導入一個模塊

9,幫助方法

help

在控制臺執行help()進入幫助模式。可以隨意輸入變量或者變量的類型。輸入q退出

或者直接執行help(o),o是參數,查看和變量o有關的操作。。。

#help與dir的區別:(自己總結的)
dir() 查看方法名(不是很詳細的幫助) help 查看方法名和用法(更詳細的幫助) 10,和調用相關

callable(o),o是參數,看這個變量是不是可調用。

如果o是一個函數名,就會返回True

def func():pass
print(callable(func))  #參數是函數名,可調用,返回True
print(callable(123))   #參數是數字,不可調用,返回False

11,和數字相關

數字——數據類型相關:bool,int,float,complex

數字——進制轉換相關:bin,oct,hex

數字——數學運算:abs,divmod,min,max,sum,round,pow# print(bin(10))--二進制# print(oct(10))--八進制

# print(hex(10))--十六進制
#abs()求絕對值
#divmod() 除余 ->div 除法,mod 取余
#pow(2,3)->2**3求冪運算
#pow(2,3,4)-->2*3%4,最後一個數取余。冪運算之後取余
12,max
print(max([1,2,3,4]))
print(max(1,2,3,4))
print(max(1,2,3,-4))
print(max(1,2,3,-4,key = abs))

13,min

print(min([1,2,3,4]))
print(min(1,2,3,4))
print(min(1,2,3,-4))
print(min(1,2,3,-4,key = abs))

 

python學習日記:day15:------內置函數