1 python中的數據類型:數字(整數型 int , 浮點數型 float, 布爾型 bool , 復數 complex ),字符串,元組(只讀列表,只能查詢,不可更改),集合,列表,字典
可變數據類型:列表list[ ]、字典dict{ } 數據發生改變,但內存地址不變
不可變數據類型:整型int、字符串str’ '、元組tuple() 當該數據類型的對應變量的值發生了改變,那么它對應的內存地址也會改變
2 有一段python的編碼程序如下:urllib.quote(line.decode(“gbk”).encode(“utf-16”)),請問經過該編碼的字符串的解碼順序是
url解碼 utf16 gbk
3 一種統計素數個數的方法
import math
def sieve(size):
# 初始化一個待判斷統計列表,用于表示該位置的索引是否為素數
sieve = [True] * size
# 眾所周知,0和1都不是素數,所以為False
sieve[0] = False
sieve[1] = False
# 循環找到所有的非素數,賦值False
for i in range(2, int(math.sqrt(size)) + 1):
k = i * 2
while k < size:
sieve[k] = False
k += i
# 統計所有為True的元素個數,也就是素數的個數
return sum(1 for x in sieve if x)
# 一千億之內的素數個數
# 4118054813
print(sieve(100000000000))
4 python中主要存在四種命名方式:
1、object #公用方法
2、_object #半保護
#被看作是“protect”,意思是只有類對象和子類對象自己能訪問到這些變量, 在模塊或類外不可以使用,不能用’from module import *’導入。
#
object 是為了避免與子類的方法名稱沖突, 對于該標識符描述的方法,父類的方法不能輕易地被子類的方法覆蓋,他們的名字實際上是
classname__methodname。
3、
_ object #全私有,全保護
#私有成員“private”,意思是只有類對象自己能訪問,連子類對象也不能訪問到這個數據,不能用’from module import *’導入。
4、
_ object
_ #內建方法,用戶不要這樣定義 前后雙下劃線的命名方式用于python里的特殊方法。
5 a = ‘123’
b = ‘123’
a is b a,b為字符串不可變類型,所以指向相同地址,所以 a is b is指地址相同
內容相同
123是int類型,而a的值為字符a+b=‘123123’ a
"123"
6 Python定義參數
python函數的幾種參數可以任意組合,但必須按順序寫,否則會報錯,順序為(位置參數,默認參數,可變參數,命名關鍵字參數,關鍵字參數)
位置參數 def fn1(a): def fn2(a,b):
默認參數 def enroll(name, gender,
age=6, city=‘Beijing’
): 默認參數必須指向不變對象!
可變參數 傳入參數的個數是可變的 *args是可變參數,args接收的是一個tuple;
關鍵字參數 可變參數允許你傳入0個或任意個參數,這些可變參數在函數調用時自動組裝為一個tuple。而關鍵字參數允許你傳入0個或任意個含參數名的參數,這些關鍵字參數在函數內部自動組裝為一個dict。 **kw是關鍵字參數,kw接收的是一個dict。
命名關鍵字參數 如果要限制關鍵字參數的名字,就可以用命名關鍵字參數,例如,只接收city和job作為關鍵字參數。
def f1(a, b, c=0, *args, **kw):
7
x = 1
def change(a):
x += 1
print x
change(x) 報錯 change(a) 函數內的局部變量 x 在使用前未定義。
8 Python中的閉包
在一個外函數中定義了一個內函數,內函數里運用了外函數的臨時變量,并且外函數的返回值是內函數的引用。這樣就構成了一個閉包。
一般情況下,如果一個函數結束,函數的內部所有東西都會釋放掉,還給內存,局部變量都會消失。但是閉包是一種特殊情況,如果外函數在結束的時候發現有自己的臨時變量將來會在內部函數中用到,就把這個臨時變量綁定給了內部函數,然后自己再結束。
#閉包函數的實例
# outer是外部函數 a和b都是外函數的臨時變量
def outer( a ):
b = 10
# inner是內函數
def inner():
#在內函數中 用到了外函數的臨時變量
print(a+b)
# 外函數的返回值是內函數的引用
return inner
if __name__ == '__main__':
# 在這里我們調用外函數傳入參數5
#此時外函數兩個臨時變量 a是5 b是10 ,并創建了內函數,然后把內函數的引用返回存給了demo
# 外函數結束的時候發現內部函數將會用到自己的臨時變量,這兩個臨時變量就不會釋放,會綁定給這個內部函數
demo = outer(5)
# 我們調用內部函數,看一看內部函數是不是能使用外部函數的臨時變量
# demo存了外函數的返回值,也就是inner函數的引用,這里相當于執行inner函數
demo() # 15
demo2 = outer(7)
demo2()#17
在基本的python語法當中,一個函數可以隨意讀取全局數據,但是要修改全局數據的時候有兩種方法:1 global 聲明全局變量 2 全局變量是可變類型數據的時候可以修改。在閉包內函數也是類似的情況。在內函數中想修改閉包變量(外函數綁定給內函數的局部變量)的時候:
在python3中,可以用nonlocal 關鍵字聲明 一個變量, 表示這個變量不是局部變量空間的變量,需要向上一層變量空間找這個變量。
#修改閉包變量的實例
# outer是外部函數 a和b都是外函數的臨時變量
def outer( a ):
b = 10 # a和b都是閉包變量
# inner是內函數
def inner():
#內函數中想修改閉包變量
#nonlocal關鍵字聲明
nonlocal b
b+=1
# 外函數的返回值是內函數的引用
return inner
if __name__ == '__main__':
demo = outer(5)
demo() # 6 11
8 正則表達式
正則表達式也叫做匹配模式(Pattern),它由一組具有特定含義的字符串組成,通常用于匹配和替換文本。
re模塊 廖雪峰
9 python my.py v1 v2 命令運行腳本,通過 from sys import argv如何獲得v2的參數值?
argv[2] sys.argv是命令參數表,包括文件名 argv[0]為該腳本自身路徑,其余為命令行參數
10
1)解釋性語言:
運行一句代碼,就翻譯一句,因此效率比較低。常見的解釋性語言:javascript、matlab、python 非獨立 效率低
2)編譯性語言:
先一次性的將代碼翻譯成機器語言,形成一個執行文件。運行時就直接調用執行文件,因此效率比較高。常見的編譯性語言:c,Object-C,c++,c#,java
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
