python 拾遗(一)
1、在 Python 中沒有字符類型 char,只有字符串類型 str,即字符也是用 str 類型表示。
2、python標識符可以使用下劃線 字母 數字組成但是數字不允許作為標識符的開頭出現,這也是普遍編程語言的通用規則。
3、python語x=(y=z+1)中右半部分括起來后,相當于把一個賦值表達式賦值給變量想,因此出現語法錯誤。正確的賦值語法應把括號去掉,即:x=y=z+1。這種賦值方式可稱為連續賦值、批量賦值、多元賦值、多變量賦值 等。
4、python中三元運算符的使用。基本語法為:a? if? condition else b? 該語句當 condition 為真時等于 a,為假時等于 b。
例如:min = x? if? x>y? else? = y
在C 和java中格式為:? min = x > y? ?? x : y
5、字母與數字的ASCII 碼大小范圍是 "a-z" > "A-Z" > "0-9"
6、字典中鍵必須是唯一的,鍵值需要為不可變類型 。例:dict4 = {(1,2,3): “uestc”}
7、range()函數的語法如下:range (start, end, step )
??? 參數說明:
- start: 計數從 start 開始。默認是從 0 開始。例如 range(5) 等價于 range(0, 5);
- end: 計數到 end 結束,但不包括 end。例如:range(0, 5) 等于 [0, 1, 2, 3, 4],沒有5;
- step:步長,默認為1。例如:range(0, 5) 等價于 range(0, 5, 1)
8、python中,字符串編譯的過程:gbk==>unicode==>utf16==>url解碼
??????????????????????? 字符串解碼順序為:url解碼==>utf16==>unicode==>gbk
9、解釋性語言和編譯性語言的定義: 計算機不能直接理解高級語言,只能直接理解機器語言,所以必須要把高級語言翻譯成機器語言,計算機才能執行高級語言編寫的程序。
翻譯的方式有兩種,一個是編譯,一個是解釋。兩種方式只是翻譯的時間不同。
解釋性語言的定義:
解釋性語言的程序不需要編譯,在運行程序的時候才翻譯,每個語句都是執行的時候才翻譯。這樣解釋性語言每執行一次就需要逐行翻譯一次,效率比較低。現代解釋性語言通常把源程序編譯成中間代碼,然后用解釋器把中間代碼一條條翻譯成目標機器代碼,一條條執行。(需要解釋器,非獨立性)
編譯性語言的定義:
編譯性語言寫的程序在被執行之前,需要一個專門的編譯過程,把程序編譯成為機器語言的文件,比如exe文件,以后要運行的話就不用重新翻譯了,直接使用編譯的結果就行了(exe文件),因為翻譯只做了一次,運行時不需要翻譯,所以編譯型語言的程序執行效率高。(不需要解釋器,具有獨立性)
10、和數學運算不同的地方是,Python的整數運算結果仍然是整數,浮點數運算結果仍然是浮點數
例如:2.5+10/4? #>>>4.5???????????? 2.5+10.0/4? #>>>5
11、在Python中,布爾類型還可以與其他數據類型做 and、or和not運算,請看下面的代碼:
a = True print a and 'a=T' or 'a=F'計算結果不是布爾類型,而是字符串 'a=T',這是為什么呢?
因為Python把0、空字符串''和None看成false,其他數值和非空字符串都看成?True,所以:
True and 'a=T' 計算結果是 'a=T' 繼續計算 'a=T' or 'a=F' 計算結果還是 'a=T'要解釋上述結果,又涉及到 and 和 or 運算的一條重要法則:短路計算。
在計算?a and b?時,如果 a 是 False,則根據與運算法則,整個結果必定為 False,因此返回 a;如果 a 是 True,則整個計算結果必定取決與 b,因此返回 b。
在計算?a or b?時,如果 a 是 True,則根據或運算法則,整個計算結果必定為 True,因此返回 a;如果 a 是 False,則整個計算結果必定取決于 b,因此返回 b。
所以Python解釋器在做布爾運算時,只要能提前確定計算結果,它就不會往后算了,直接返回結果。
12、元組包含 0 個元素的 tuple,也就是空tuple,直接用 ()表示:
>>> t = () >>> print t ()創建包含1個元素的 tuple 呢?來試試:
>>> t = (1) >>> print t 1好像哪里不對!t 不是 tuple ,而是整數1。為什么呢?
因為()既可以表示tuple,又可以作為括號表示運算時的優先級,結果 (1) 被Python解釋器計算出結果 1,導致我們得到的不是tuple,而是整數 1。
正是因為用()定義單元素的tuple有歧義,所以 Python 規定,單元素 tuple 要多加一個逗號“,”,這樣就避免了歧義:
>>> t = (1,) >>> print t (1,)Python在打印單元素tuple時,也自動添加了一個“,”,為了更明確地告訴你這是一個tuple。多元素 tuple 加不加這個額外的“,”效果是一樣的:
>>> t = (1, 2, 3,) >>> print t (1, 2, 3)13、python列表字母操作
capitalize() 首字母大寫,其余全部小寫
upper() 全轉換成大寫
lower() 全轉換成小寫
title() 標題首字大寫,如"i love python".title() "I love python"
如果字符串里面有很多字符都需要轉義,就需要加很多\,為了簡化,Python還允許用r' '表示‘ ’內部的字符串默認不轉義。
>>> print('\\\t\\') \ \ >>> print(r'\\\t\\') \\\t\\15、下列對象的布爾值都是False:
NONE;
False(布爾類型)
所有的值為零的數
?????? 0(整型)
?????? 0.0(浮點型)
?????? 0L(長整型)
?????? 0.0+0.0j(復數)
""(空字符串)(" "空格的布爾值為True)
[](空列表)
()(空元組)
{}(空字典)
16、python中復數不能比較大小,python2中表達式:a>b>c 相當于 a>b and b>c.
tuple 類型的比較是元素多的大于元素少的,若元素個數相等,則從第一個元素開始依次向后比較,直到兩個元素不相等才結束。(字符串貌似永遠比數字大,文檔沒找到說明,試出來的)
| 1 2 3 4 5 | <CODE>(1,9) < (2,3) #True (8,9) < (1,2,3) #True (1,2,3) == (1,2,3) #True (3,2) < ('a','b') #True </CODE> |
# append()用法 >>>a = [1, 2, 3, 4, 5] >>>a.append([6, 7, 8]) >>>len(a) 6 >>>a [1, 2, 3, 4, 5, [6, 7, 8]]#extend()用法 >>>a.extend([6, 7, 8]) >>>len(a) 8 >>>a [1, 2, 3, 4, 5, 6, 7, 8] 18、Python 中復數的表示方法:real + image j
復數的實部與虛部均為浮點數;虛部的后綴可以是 “j” 或者 “J”;復數的 conjugate 方法可以返回該復數的共軛復數。
19、cmp(x,y)
如果 x < y 返回 -1, 如果 x == y 返回 0, 如果 x > y 返回 1。
Python 3 已廢棄 。使用 使用 (x>y)-(x<y) 替換。
20、python標識符
在 Python 里,標識符由字母、數字、下劃線組成。
在 Python 中,所有標識符可以包括英文、數字以及下劃線(_),但不能以數字開頭。
Python 中的標識符是區分大小寫的。
以下劃線開頭的標識符是有特殊意義的。以單下劃線開頭 _foo 的代表不能直接訪問的類屬性,需通過類提供的接口進行訪問,不能用 from xxx import * 而導入;
以雙下劃線開頭的 __foo 代表類的私有成員;以雙下劃線開頭和結尾的 __foo__ 代表 Python 里特殊方法專用的標識,如 __init__() 代表類的構造函數。
Python 可以同一行顯示多條語句,方法是用分號 ; 分開
總結
以上是生活随笔為你收集整理的python 拾遗(一)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 一些机器学习数据集(Dataset)
- 下一篇: Python矩阵的用法(使用numpy)