提示:筆者學習python的時候更熟悉C語言,因此使用C語言的某些特性進行類比或者比較。沒有C語言基礎仍然可以學習python語言,讀者可以自行跳過。
python官方手冊把這些函數列為“Built-in Functions”,也就是說内置函數——不需要import任何庫即可調用。那麼,這些知識點你确定都掌握了嗎?那麼,我們來回顧一下吧
abs
在C、C 語言中也有abs函數,調用該函數需要預處理語句#include <math.h>或<stdlib.h>,C 語言還可以使用<cmath>或者<cstdlib>頭文件。
python中給出的定義是
即返回一個數值的絕對值。參數可以是一個整數或者浮點數。如果這個參數是複數,那麼返回這個複向量的模。
有如下例子。其中python中使用j代替i。如果對于複數3 i,在python中不可以簡寫成3 j,這樣會引起歧義,因為j有可能是一個變量。
>>> k=3 2j
>>> abs(k)
3.605551275463989
>>> k=3 1j
>>> abs(k)
3.1622776601683795
>>> k=3 4j
>>> abs(k)
5.0
>>> abs(0.3)
0.3
>>> abs(-0.3)
0.3
參數iterable,可以看作python中的list列表、元組、列表等。可以返回該對象中任何一個元素。
若任意對象中元素均為true,all函數會返回true,否則false。
下面是python官方給出的一個例子。
def all(iterable):
for element in iterable:
if not element:
return False
return True
參數和前面一樣,不同點在于對象中任意元素為true,就返回true。
下面是python官方給的一個例子。
def any(iterable):
for element in iterable:
if element:
return True
return False
返回一串文本串,對于非ascii字符,會以\x,\u,\U的方式打印。下面給出兩個例子,分别打印Daniel和Daniel談技術這兩個字符串,清晰可見被轉義到了\\u8c08、\\u6280、\\u672f。
>>> ascii("Daniel談技術")
"'Daniel\\u8c08\\u6280\\u672f'"
>>> ascii("Daniel")
"'Daniel'"
chr()函數
參數是一個整數值,返回這個整數值的對應字符。例如
chr(97) 會返回'a',chr(8364) 會返回 '€'.
當然,這個函數接受的最大整數也是有限制的。它可以接受0,但最大接受1114111(對應16進制的0x10FFFF這個數)
>>> chr(0)
'\x00'
>>> chr(10)
'\n'
>>> chr(2333)
'\u091d'
Visual Basic這個編程軟件已經成為了曆史。C語言中可以通過int和char的直接轉換得到字符或者一個字符的對應ascii值。VB中有一對cp函數,asc和chr。python這裡,chr都是一樣的,但asc這裡是ord()函數。
舉這麼個例子。
>>> ord('\u091d')
2333
這裡筆者再穿插一個小科普:每個地區銷售的計算機的鍵盤排布大多是不一樣的,不過,大同小異。同時,一個地區不同廠家的不同型号會有差異,甚至是一個地區一個廠家的不同型号都會有所差異。但是無傷大雅:全世界的計算機使用同一個标準,字符方面最基本的ASCII字符,從其不可見的各種控制字符,一直到第127個字符都是統一的。後續雖然各個地區都有不同的編碼,但仍有通用的unicode和UTF-8/16/32标準.
print()函數
這個函數非常經典,我想很多學過python的小夥伴一定對他不陌生。就如同php的echo和C的printf,python的輸出函數print()也是一樣用來輸出文本的。
print函數最簡單的一個例子就是print("hello,world!")
當然,如果隻會這麼簡單那真的太naive了。
7.1 python2中可以不加括号
print 在 python2 版本不是一個函數,隻是一個關鍵字。在python3 是一個函數,因此,不加括号無傷大雅。不過,在py3中必須加。
7.2 print()函數參數
print(*objects, sep=' ', end='\n', file=sys.stdout, flush=False)
*objects 表示要輸出的對象。多個對象要用逗号分隔表示。
sep表示分隔符,即print每個要輸出的對象中的分割
end表示結尾。即這個對象輸出後再輸出的東西。默認情況都是換行的。若想不換行,那麼隻要把end賦值為""空即可。
file表示輸出的位置對象。
flush表示是否刷新緩沖區,為布爾型邏輯值,true或者false。默認為false,如果為true則無論何種情況強制刷新緩沖區,否則不會刷新緩沖區,除非緩沖區滿了或其他情況。
format函數格式化輸出的時候,C語言在printf("")中根據“%d %c控制字符,C#中也有string.format函數。
python中,使用了 str.format()函數
這裡的str為一個string型變量,直接在後面加上.format()函數并遞交參數即可。
>>> print('{0} and {1}'.format('spam', 'eggs'))
spam and eggs
>>> print('{1} and {0}'.format('spam', 'eggs'))
eggs and spam
更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!