97干视频,99国产精品懂色,亚洲精品99久久久久中文字幕,伊人五月丁香综合AⅤ,国产精品成人免费999

當(dāng)前位置: 移動(dòng)互聯(lián)網(wǎng)學(xué)院 > python人工智能 > python入門 > Python入門筆記 看看各路大神都是如何入門的
Python入門筆記 看看各路大神都是如何入門的 時(shí)間:2018-01-24     來源:Python入門筆記分享

Python入門是每一位Python學(xué)習(xí)人員經(jīng)常談?wù)摰降膯栴},有些人認(rèn)為Python入門十分的困難,所以一直徘徊在學(xué)習(xí)Python的邊緣,今天小編匯總一些Python入門學(xué)習(xí)筆記,今天的這份Python入門筆記主要圍繞Python函數(shù)、切片、迭代、列表生成式幾個(gè)方面來寫的,正在入門的小朋友可以過來參考一下的。

Python入門筆記

一、函數(shù)

要調(diào)用一個(gè)函數(shù),需要知道函數(shù)的名稱和參數(shù)

例如調(diào)用絕對(duì)值 **abs **函數(shù):

abs(100)

abs(-20)

數(shù)據(jù)類型轉(zhuǎn)換函數(shù)

int('123') # 123

str(1.23) # '1.23'

定義函數(shù)

在Python中,定義一個(gè)函數(shù)要使用** def 語(yǔ)句,依次寫出函數(shù)名、括號(hào)、括號(hào)中的參數(shù)和冒號(hào):,然后,在縮進(jìn)塊中編寫函數(shù)體,函數(shù)的返回值用 return **語(yǔ)句返回。

例如定義一個(gè)絕對(duì)值函數(shù)

def my_abs(x):

if x >= 0:

return x

else:

return -x

請(qǐng)注意,函數(shù)體內(nèi)部的語(yǔ)句在執(zhí)行時(shí),一旦執(zhí)行到return時(shí),函數(shù)就執(zhí)行完畢,并將結(jié)果返回。因此,函數(shù)內(nèi)部通過條件判斷和循環(huán)可以實(shí)現(xiàn)非常復(fù)雜的邏輯。

如果沒有return語(yǔ)句,函數(shù)執(zhí)行完畢后也會(huì)返回結(jié)果,只是結(jié)果為 None。

return None可以簡(jiǎn)寫為return。

返回值,函數(shù)可以返回多個(gè)值 例如

import math

def move(x, y, step, angle):

nx = x + step * math.cos(angle)

ny = y - step * math.sin(angle)

return nx, ny

實(shí)際返回的是一個(gè)tuble,在語(yǔ)法上,返回一個(gè)tuple可以省略括號(hào),而多個(gè)變量可以同時(shí)接收一個(gè)tuple,按位置賦給對(duì)應(yīng)的值,所以,Python的函數(shù)返回多值其實(shí)就是返回一個(gè)tuple,但寫起來更方便。

定義參數(shù)

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

由于函數(shù)的參數(shù)按從左到右的順序匹配,所以默認(rèn)參數(shù)只能定義在必需參數(shù)的后面:

def power(x, n=2):

s = 1

while n > 0:

n = n - 1

s = s * x

return s

可變參數(shù)

可變參數(shù)的名字前面有個(gè) *** **號(hào),我們可以傳入0個(gè)、1個(gè)或多個(gè)參數(shù)給可變參數(shù):

def average(*args):

sum=0.0

n=0

for x in args:

sum=sum+x

n+=1

if n==0:

return 0.0

return sum/n

print average()

print average(1, 2)

print average(1, 2, 2, 3, 4)

二、切片

對(duì)list切片

取一個(gè)list的部分元素是非常常見的操作。對(duì)這種經(jīng)常取指定索引范圍的操作,用循環(huán)十分繁瑣,因此,Python提供了切片(Slice)操作符,能大大簡(jiǎn)化這種操作。

L[0:3]

#如果第一個(gè)索引是0,還可以省略

L[:3]

切片操作還可以指定第三個(gè)參數(shù):

L[::2]

L[0:3]表示,從索引0開始取,直到索引3為止,但不包括索引3。即索引0,1,2,正好是3個(gè)元素。

第三個(gè)參數(shù)表示每N個(gè)取一個(gè),上面的 L[::2] 會(huì)每?jī)蓚(gè)元素取出一個(gè)來,也就是隔一個(gè)取一個(gè)。

把list換成tuple,切片操作完全相同,只是切片的結(jié)果也變成了tuple。

字符串切片

字符串 'xxx'和 Unicode字符串 u'xxx'也可以看成是一種list,每個(gè)元素就是一個(gè)字符。因此,字符串也可以用切片操作,只是操作結(jié)果仍是字符串:

def firstCharUpper(s):

first=s[0]

rest=s[1:]

return first.upper()+rest

print firstCharUpper('hello')

print firstCharUpper('sunday')

print firstCharUpper('september')

三、迭代

在Python中,迭代是通過 for ... in 來完成的,而很多語(yǔ)言比如C或者Java,迭代list是通過下標(biāo)完成的,比如Java代碼:

for (i=0; i

n = list[i];

}

** Python 的 for循環(huán)不僅可以用在list或tuple上,還可以作用在其他任何可迭代對(duì)象上。**

因此,迭代操作就是對(duì)于一個(gè)集合,無(wú)論該集合是有序還是無(wú)序,我們用 for 循環(huán)總是可以依次取出集合的每一個(gè)元素。

注意: 集合是指包含一組元素的數(shù)據(jù)結(jié)構(gòu),我們已經(jīng)介紹的包括:

1. 有序集合:list,tuple,str和unicode;

2. 無(wú)序集合:set

3. 無(wú)序集合并且具有 key-value 對(duì):dict

迭代dict的value

dict 對(duì)象有一個(gè) values() 方法,這個(gè)方法把dict轉(zhuǎn)換成一個(gè)包含所有value的list,這樣,我們迭代的就是 dict的每一個(gè) value

values() 方法實(shí)際上把一個(gè) dict 轉(zhuǎn)換成了包含 value 的list。

但是 itervalues() 方法不會(huì)轉(zhuǎn)換,它會(huì)在迭代過程中依次從 dict 中取出 value,所以 itervalues() 方法比 values() 方法節(jié)省了生成 list 所需的內(nèi)存。

迭代dict的key和value

dict有一個(gè)items方法,items() 方法把dict對(duì)象轉(zhuǎn)換成了包含tuple的list,我們對(duì)這個(gè)list進(jìn)行迭代,可以同時(shí)獲得key和value:

d = { 'Adam': 95, 'Lisa': 85, 'Bart': 59, 'Paul': 74 }

for key, values in d.items():

print key,':',values

和 values() 有一個(gè) itervalues() 類似, **items() **也有一個(gè)對(duì)應(yīng)的 iteritems(),iteritems() 不把dict轉(zhuǎn)換成list,而是在迭代過程中不斷給出 tuple,所以, iteritems() 不占用額外的內(nèi)存。

四、列表生成式

如果要生成[1x1, 2x2, 3x3, ..., 10x10]怎么做?方法一是循環(huán),不給出代碼了。

但是循環(huán)太繁瑣,而列表生成式則可以用一行語(yǔ)句代替循環(huán)生成上面的list:

>>> [x * x for x in range(1, 11)]

[1, 4, 9, 16, 25, 36, 49, 64, 81, 100]

寫列表生成式時(shí),把要生成的元素 x * x 放到前面,后面跟 for 循環(huán),就可以把list創(chuàng)建出來。

任務(wù)

請(qǐng)利用列表生成式生成列表 [1x2, 3x4, 5x6, 7x8, ..., 99x100]

提示:range(1, 100, 2) 可以生成list [1, 3, 5, 7, 9,...]

print [x*(x+1) for x in range(1,101,2)]

復(fù)雜表達(dá)式

在生成的表格中,對(duì)于沒有及格的同學(xué),請(qǐng)把分?jǐn)?shù)標(biāo)記為紅色。
d = { 'Adam': 95, 'Lisa': 85, 'Bart': 59 }
def generate_tr(name, score):
    if score<60:
        return'<tr><td>%s</td><td style="color:red">%s</td></tr>' % (name, score)
    return '<tr><td>%s</td><td>%s</td></tr>' % (name, score)
tds = [generate_tr(d) for name, score in d.iteritems()]
print '<table border="1">'
print '<tr><th>Name</th><th>Score</th><tr>'
print '\n'.join(tds)
print '</table>'

字符串可以通過 % 進(jìn)行格式化,用指定的參數(shù)替代** **%s。字符串的join()方法可以把一個(gè) list 拼接成一個(gè)字符串。

把打印出來的結(jié)果保存為一個(gè)html文件,就可以在瀏覽器中看到效果了

條件過濾

列表生成式的 for 循環(huán)后面還可以加上 if 判斷。例如:我們只想要偶數(shù)的平方,不改動(dòng) range()的情況下,可以加上 if 來篩選

[x * x for x in range(1, 11) if x % 2 == 0]

請(qǐng)編寫一個(gè)函數(shù),它接受一個(gè) list,然后把list中的所有字符串變成大寫后返回,非字符串元素將被忽略。

def toUppers(L):

return [x.upper() for x in L if isinstance(x,str)]

print toUppers(['Hello', 'world', 101])

isinstance(x, str) 可以判斷變量 x 是否是字符串;

字符串的 upper() 方法可以返回大寫的字母。

多層表達(dá)式

for循環(huán)可以嵌套,因此,在列表生成式中,也可以用多層 for 循環(huán)來生成列表。

>>> [m + n for m in 'ABC' for n in '123']

['A1', 'A2', 'A3', 'B1', 'B2', 'B3', 'C1', 'C2', 'C3']

任務(wù)

利用 3 層for循環(huán)的列表生成式,找出對(duì)稱的 3 位數(shù)。例如,121 就是對(duì)稱數(shù),因?yàn)閺挠业阶蟮惯^來還是 121。

題目要求的寫法:

print [x*100+y*10+z for x in range(1,10) for y in range(0,10) for z in range(1,10) if x==z]

簡(jiǎn)化寫法:

print [x*100+y*10+x for x in range(1,10) for y in range(0,10)]

前臺(tái)專線:010-82525158 企業(yè)培訓(xùn)洽談專線:010-82525379 院校合作洽談專線:010-82525379 Copyright © 2004-2022 北京華清遠(yuǎn)見科技發(fā)展有限公司 版權(quán)所有 ,京ICP備16055225號(hào)-5,京公海網(wǎng)安備11010802025203號(hào)