python部分基礎(chǔ)

name = input('please enter your name:')
print('hello,', name)   
print('please input:')
a = int(input())
if a > 0:
    print(a)
else:
    print(-a)   
print("I'm OK")
print("I\'m OK")
print('\\\n\\')
print('\\\t\\')
print(r'\\\t\\')
print('''line1
line2
line3''')
#輸出結(jié)果為:
I'm OK
I'm OK
\
\
\   \
\\\t\\
line1
line2
line3

轉(zhuǎn)義字符 \ 可以轉(zhuǎn)義很多字符柳畔,比如 \n 表示換行确沸, \t 表示制表符拉盾,字符 \本身也要轉(zhuǎn)義,所以 \ 表示的字符就是
用 r'' 表示 '' 內(nèi)部的字符串默認(rèn)不轉(zhuǎn)義
當(dāng)表示多行內(nèi)容的時(shí)候用三個(gè)單引號(hào)

變量本身不固定的語(yǔ)言稱之為動(dòng)態(tài)語(yǔ)言屎暇,也就是說(shuō)變量可以重復(fù)賦值。而與之對(duì)應(yīng)的就是靜態(tài)語(yǔ)言驻粟,靜態(tài)語(yǔ)言在定義變量的時(shí)候必須指定變量類型根悼,如果賦值的時(shí)候類型不匹配就會(huì)報(bào)錯(cuò)。與靜態(tài)語(yǔ)言相比蜀撑,動(dòng)態(tài)語(yǔ)言更靈活酷麦。

image

image

print(ord('A'))
print(ord('a'))
print(ord('中'))
print(chr(66))
print(chr(25991))   

65
97
20013
B

print(len('ABC'))
print(len('中文'))
print(len(b'ABC'))
print(len(b'\xe4\xb8\xad\xe6\x96\x87'))
print(len('中文'.encode('utf-8')))    

3
2
3
6
6

len() 函數(shù)計(jì)算的是 str 的字符數(shù)态罪,如果換成 bytes , len() 函數(shù)就計(jì)算字節(jié)數(shù)陡叠。
1 個(gè)中文字符經(jīng)過(guò) UTF-8 編碼后通常會(huì)占用 3 個(gè)字節(jié),而 1 個(gè)英文字符只占用 1 個(gè)字節(jié)岛心。

# -*- coding: utf-8 -*-   

該注釋是為了告訴 Python 解釋器旦袋,按照 UTF-8 編碼讀取源代碼,否則幸冻,在源代碼中寫的中文輸出可能會(huì)有亂碼。

print('Hello,%s' % 'world')
print('%2d-%02d' % (3, 1))
print('%.2f' % 3.1415926)
print('Age: %s. Gender: %s' % (25, True))
print('growth rate: %d %%' % 7)   

Hello,world
3-01
3.14
Age: 25. Gender: True
growth rate: 7 %

如果不太確定應(yīng)該用什么劫哼, %s 永遠(yuǎn)起作用,它會(huì)把任何數(shù)據(jù)類型轉(zhuǎn)換為字符串。

classmates = ['Michael', 'Bob', 'Tracy']
print(len(classmates))
print(classmates[0])
print(classmates[1])
print(classmates[2])
print(classmates[-1])
classmates.append('Adam')
print(classmates)
classmates.insert(1, 'Jack')
print(classmates)
print(classmates.pop())
print(classmates)
print(classmates.pop(1))
print(classmates)
classmates[1] = 'Sarah'
print(classmates)   

3
Michael
Bob
Tracy
Tracy
['Michael', 'Bob', 'Tracy', 'Adam']
['Michael', 'Jack', 'Bob', 'Tracy', 'Adam']
Adam
['Michael', 'Jack', 'Bob', 'Tracy']
Jack
['Michael', 'Bob', 'Tracy']
['Michael', 'Sarah', 'Tracy']

tuple 和 list 非常類似套才,但是 tuple 一旦初始化就不能修改炭懊。
不可變的 tuple 有什么意義谐鼎?因?yàn)?tuple 不可變星持,所以代碼更安全。如果可能,能用 tuple 代替 list 就盡量用 tuple猛们。
只有 1 個(gè)元素的 tuple 定義時(shí)必須加一個(gè)逗號(hào) , ,來(lái)消除歧義羽戒。這是因?yàn)槔ㄌ?hào) () 既可以表示 tuple枣接,又可以表示數(shù)學(xué)公式中的小括號(hào),這就產(chǎn)生了歧義缺谴,因此但惶,Python 規(guī)定,這種情況下湿蛔,按小括號(hào)進(jìn)行計(jì)算膀曾。
雖然元組的內(nèi)容不可變,但是當(dāng)元組中包含列表的時(shí)候列表的內(nèi)容是可變的煌集,要?jiǎng)?chuàng)建一個(gè)內(nèi)容也不變的 tuple 怎么做妓肢?那就必須保證 tuple 的每一個(gè)元素本身也不能變。

dict&set&不可變對(duì)象

相對(duì)于list,dict的查找方式類似于字典的索引查找苫纤,所以較快碉钠。
將數(shù)據(jù)放入dict時(shí),除了初始化指定的方法外卷拘,還可以通過(guò)key放喊废,后放的會(huì)把前面的沖掉。如果查找的時(shí)候key不存在栗弟,dict就會(huì)報(bào)錯(cuò)污筷。
要?jiǎng)h除一個(gè)一個(gè)key,使用pop乍赫,對(duì)應(yīng)的value也會(huì)被刪除瓣蛀。

set 和 dict 類似,也是一組 key 的集合雷厂,但不存儲(chǔ) value惋增。 由于 key 不能重復(fù),所以改鲫,在 set 中诈皿,沒(méi)有重復(fù)的 key。
set 是有序的像棘,重復(fù)元素在 set 中自動(dòng)被過(guò)濾稽亏。通過(guò) add(key) 方法可以添加元素到 set 中,可以重復(fù)添加缕题,但不會(huì)有效果截歉。通過(guò) remove(key) 方法可以刪除元素。set 可以看成數(shù)學(xué)意義上的無(wú)序和無(wú)重復(fù)元素的集合避除,因此怎披,兩個(gè) set 可以做數(shù)學(xué)意義上的交集胸嘁、并集等操作。

image

image

image

位置參數(shù)

def power(x, n):
    s = 1;
    while n > 0:
        n = n - 1
        s = s * x
    return s

print(power(5, 2))
print(power(5, 3))    

25
125

power(x,n)函數(shù)有兩個(gè)參數(shù)x和n凉逛,這兩個(gè)參數(shù)都是位置參數(shù)性宏,調(diào)用函數(shù)的時(shí)候,傳入的兩個(gè)值依次按照位置順序賦給參數(shù)x和n状飞。

默認(rèn)參數(shù)

def power(x, n=2):
    s = 1;
    while n > 0:
        n = n - 1
        s = s * x
    return s

print(power(5))   

25

這里將第二個(gè)參數(shù)n的默認(rèn)值設(shè)定為2毫胜,調(diào)用power(5)的時(shí)候相當(dāng)于調(diào)用了power(5,2),但是當(dāng)n不為2的時(shí)候就必須明確地傳入n诬辈,比如power(5,3)酵使。據(jù)此,設(shè)置默認(rèn)參數(shù)可以簡(jiǎn)化函數(shù)地調(diào)用焙糟,但是有幾點(diǎn)需要注意:一是必選參數(shù)在前口渔,默認(rèn)參數(shù)在后,否則python的編譯器會(huì)報(bào)錯(cuò)穿撮。 二是當(dāng)函數(shù)有多個(gè)參數(shù)的時(shí)候缺脉,把變化大的參數(shù)放在前面,變化小的參數(shù)放在后面而且可以當(dāng)作默認(rèn)參數(shù)悦穿,這樣就能最大限度地降低調(diào)用函數(shù)的難度攻礼。

默認(rèn)參數(shù)中的坑

image

image

image

image

可變參數(shù)

可變參數(shù)顧名思義就是傳入的參數(shù)個(gè)數(shù)是可變的,是任意的栗柒。
第一想法是將輸入的參數(shù)組合成一個(gè)list或者tuple礁扮,如下:

def calc(numbers):
    sum = 0
    for n in numbers:
        sum = sum + n*n
    return sum

print(calc([1, 2, 3]))
print(calc((1, 2, 3)))    

14
14

下面利用可變參數(shù)的方式可以簡(jiǎn)化上述方式:

def calc(*numbers):
    sum = 0
    for n in numbers:
        sum = sum + n*n
    return sum

print(calc(1, 2, 3))
print(calc(1, 2, 3))   

運(yùn)行結(jié)果是和上面一樣的。
當(dāng)已經(jīng)有一個(gè)list或者tuple時(shí)瞬沦,調(diào)用一個(gè)可變參數(shù)可以采用以下兩種方式太伊,其中第一種較為繁瑣,而第二種是python允許在list或tuple前面加一個(gè)*號(hào)逛钻,把list或者tuple的元素變成可變參數(shù)傳進(jìn)去倦畅。

nums = [1, 2, 3]
print(calc(nums[0], nums[1], nums[2]))
print(calc(*nums))   

運(yùn)行結(jié)果仍然和上面的一致。

關(guān)鍵字參數(shù)

可變參數(shù)允許你傳入 0 個(gè)或任意個(gè)參數(shù)绣的,這些可變參數(shù)在函數(shù)調(diào)用時(shí)自動(dòng)組裝為一個(gè) tuple。而關(guān)鍵字參數(shù)允許你傳入 0 個(gè)或任意個(gè)含參數(shù)名的參數(shù)欲账,這些關(guān)鍵字參數(shù)在函數(shù)內(nèi)部自動(dòng)組裝為一個(gè) dict 屡江。

def person(name, age, **kw):
    print('name:', name, 'age:', age, 'other:', kw)

print(person('Michael', 30))
print(person('Bob', 35, city='Beijing'))
print(person('Adam', 45, gender='M', job='Engineer'))   

name: Michael age: 30 other: {}
0
name: Bob age: 35 other: {'city': 'Beijing'}
0
name: Adam age: 45 other: {'gender': 'M', 'job': 'Engineer'}
0

關(guān)鍵字參數(shù)有什么用?它可以擴(kuò)展函數(shù)的功能赛不。比如惩嘉,在 person 函數(shù)里,我們保證能接收到 name 和 age 這兩個(gè)參數(shù)踢故,但是文黎,如果調(diào)用者愿意提供更多的參數(shù)惹苗,我們也能收到。試想你正在做一個(gè)用戶注冊(cè)的功能耸峭,除了用戶名和年齡是必填項(xiàng)外桩蓉,其他都是可選項(xiàng),利用關(guān)鍵字參數(shù)來(lái)定義這個(gè)函數(shù)就能滿足注冊(cè)的需求劳闹。
同時(shí)院究,和可變參數(shù)類似,也可以先組裝出一個(gè)dict本涕,然后把該dict轉(zhuǎn)換為關(guān)鍵字參數(shù)傳進(jìn)去业汰,方法也有兩種,其中第一種較為繁瑣菩颖,第二種更加簡(jiǎn)潔:

extra = {'city': 'Beijing', 'job': 'Engineer'}
print(person('Jack', 24, city=extra['city'], job=extra['job']))
print(person('Jack', 24, **extra))   

name: Jack age: 24 other: {'city': 'Beijing', 'job': 'Engineer'}
None
name: Jack age: 24 other: {'city': 'Beijing', 'job': 'Engineer'}
None
**extra 表示把 extra 這個(gè) dict 的所有 key-value 用關(guān)鍵字參數(shù)傳入到函數(shù)的 kw 參數(shù)样漆, kw 將獲得一個(gè) dict,注意 kw 獲得的 dict 是 extra 的一份拷貝晦闰,對(duì) kw 的改動(dòng)不會(huì)影響到函數(shù)外的 extra放祟。

命名關(guān)鍵字參數(shù)

image

image

image

image

參數(shù)組合

image

image
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市鹅髓,隨后出現(xiàn)的幾起案子舞竿,更是在濱河造成了極大的恐慌,老刑警劉巖窿冯,帶你破解...
    沈念sama閱讀 221,198評(píng)論 6 514
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件骗奖,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡醒串,警方通過(guò)查閱死者的電腦和手機(jī)执桌,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,334評(píng)論 3 398
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)芜赌,“玉大人,你說(shuō)我怎么就攤上這事缠沈”旌” “怎么了?”我有些...
    開(kāi)封第一講書人閱讀 167,643評(píng)論 0 360
  • 文/不壞的土叔 我叫張陵洲愤,是天一觀的道長(zhǎng)颓芭。 經(jīng)常有香客問(wèn)我,道長(zhǎng)柬赐,這世上最難降的妖魔是什么亡问? 我笑而不...
    開(kāi)封第一講書人閱讀 59,495評(píng)論 1 296
  • 正文 為了忘掉前任,我火速辦了婚禮肛宋,結(jié)果婚禮上州藕,老公的妹妹穿的比我還像新娘束世。我一直安慰自己,他們只是感情好床玻,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,502評(píng)論 6 397
  • 文/花漫 我一把揭開(kāi)白布毁涉。 她就那樣靜靜地躺著,像睡著了一般笨枯。 火紅的嫁衣襯著肌膚如雪薪丁。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書人閱讀 52,156評(píng)論 1 308
  • 那天馅精,我揣著相機(jī)與錄音严嗜,去河邊找鬼。 笑死洲敢,一個(gè)胖子當(dāng)著我的面吹牛漫玄,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播压彭,決...
    沈念sama閱讀 40,743評(píng)論 3 421
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼睦优,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了壮不?” 一聲冷哼從身側(cè)響起汗盘,我...
    開(kāi)封第一講書人閱讀 39,659評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎询一,沒(méi)想到半個(gè)月后隐孽,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,200評(píng)論 1 319
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡健蕊,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,282評(píng)論 3 340
  • 正文 我和宋清朗相戀三年丝里,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了姻僧。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,424評(píng)論 1 352
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡廊遍,死狀恐怖颁独,靈堂內(nèi)的尸體忽然破棺而出冷溃,到底是詐尸還是另有隱情产舞,我是刑警寧澤檬寂,帶...
    沈念sama閱讀 36,107評(píng)論 5 349
  • 正文 年R本政府宣布,位于F島的核電站势木,受9級(jí)特大地震影響动雹,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜跟压,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,789評(píng)論 3 333
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望歼培。 院中可真熱鬧震蒋,春花似錦茸塞、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書人閱讀 32,264評(píng)論 0 23
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至笋庄,卻和暖如春效扫,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背直砂。 一陣腳步聲響...
    開(kāi)封第一講書人閱讀 33,390評(píng)論 1 271
  • 我被黑心中介騙來(lái)泰國(guó)打工菌仁, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人静暂。 一個(gè)月前我還...
    沈念sama閱讀 48,798評(píng)論 3 376
  • 正文 我出身青樓济丘,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親洽蛀。 傳聞我的和親對(duì)象是個(gè)殘疾皇子摹迷,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,435評(píng)論 2 359

推薦閱讀更多精彩內(nèi)容

  • Python 是一種相當(dāng)高級(jí)的語(yǔ)言,通過(guò) Python 解釋器把符合語(yǔ)法的程序代碼轉(zhuǎn)換成 CPU 能夠執(zhí)行的機(jī)器碼...
    Python程序媛閱讀 1,911評(píng)論 0 3
  • 與或運(yùn)算 在計(jì)算 a and b 時(shí)郊供,如果 a 是 False峡碉,則根據(jù)與運(yùn)算法則,整個(gè)結(jié)果必定為 False驮审,因此...
    張文靖同學(xué)閱讀 316評(píng)論 0 1
  • 01對(duì)方?jīng)]有表達(dá)喜歡 他們相識(shí)头岔,在一個(gè)很多人的群里塔拳,一眼就發(fā)現(xiàn)了彼此。于是加了好友開(kāi)始聊天峡竣。談話很是順暢靠抑,彼此都有...
    萱小蕾閱讀 278評(píng)論 0 0
  • 人到了二十多歲之后上帝就會(huì)給你做減法 拿掉你的一些朋友 拿掉你的一些夢(mèng)想 有些人跟你分道揚(yáng)鑣你們或許都不見(jiàn)得會(huì)吵架...
    貓與你的橙子閱讀 400評(píng)論 2 3
  • 1,夢(mèng)想清單 很多人想要有錢适掰,但卻不知道自己真正想要什么颂碧。所以他們其實(shí)并沒(méi)有很強(qiáng)的動(dòng)力去追求財(cái)務(wù)自由,而真正的動(dòng)力...
    小灶兒大廚閱讀 317評(píng)論 0 0