正式開始學Python了

編程語言 Python 鏡音雙子 Google Python學習開發交流 2017-06-04

正式開始學Python了

在前面很多文章都是對於Python的一些簡單的介紹,還有一些關於要學哪些該怎麼學都是一些簡單的解析,想在朋友們開始學之前有更多的瞭解,其實大多還是對於新手的解惑。

在這裡還是說一下為什麼Python適合作為第一個學習的編程語言,Python語言設計的初衷就是容易上手,作為一門基礎語言,融會貫通後, 有助於學習其他語言,例如PHP, Perl, Ruby等,可以快速架起抽象的程序世界和顯示世界的橋樑, 可以去Amazon購買一個廉價的Raspberry Pi,自己DIY很多人工智能,機器人相關的小Project,諸多大公司(例如Google, IBM, Disney)的員工使用Python快速編寫很多小程序來輔助和優化工作流程,減輕很多不必要的重複勞動,Django是用Python編寫的一套開源Web框架, 我們所熟知的諸多網站背後的Foundation都是Django和Python。

其實今天想開始稍微詳細的說一些知識點,在此之前先測試一下大家基礎是不是學的可以了,下面有幾個基礎面試問題,你是怎麼回答的?

1. What will be the output of the code below?

list = ['a', 'b', 'c', 'd', 'e']

print list[10:]

2. As Everything in Python is an Object, Explain the characteristics of Python’s Objects.

3. What is a Python Module?

4. What is a Class? How do you create it in Python?


【現在覺得是不是要學的還多著呢

正式開始學Python了

那麼今天正式開始詳細的說說Python中的一些知識點

語法

以#開頭的語句是註釋,註釋是給人看的,可以是任意內容,解釋器會忽略掉註釋。

冒號:結尾時,縮進的語句視為代碼塊。

Python使用縮進來組織代碼塊,請務必遵守約定俗成的習慣,堅持使用4個空格的縮進。Python程序是大小寫敏感的,如果寫錯了大小寫,程序會報錯。

整數

Python可以處理任意大小的整數,當然包括負整數

浮點數

浮點數也就是小數

字符串

字符串是以單引號'或雙引號"括起來的任意文本,比如'abc',"xyz"等等。

如果字符串內部既包含'又包含"怎麼辦?可以用轉義字符\來標識

轉義字符\可以轉義很多字符,比如\n表示換行,\t表示製表符,字符\本身也要轉義,所以\\表示的字符就是\

如果字符串裡面有很多字符都需要轉義,就需要加很多\,為了簡化,Python還允許用r''表示''內部的字符串默認不轉義

如果字符串內部有很多換行,用\n寫在一行裡不好閱讀,為了簡化,Python允許用'''...'''的格式表示多行內容

布爾值

布爾值和布爾代數的表示完全一致,一個布爾值只有True、False兩種值,要麼是True,要麼是False

布爾值可以用and、or和not運算。

and運算是與運算,只有所有都為True,and運算結果才是True:

or運算是或運算,只要其中有一個為True,or運算結果就是True

not運算是非運算,它是一個單目運算符,把True變成False,False變成True

空值

空值是Python裡一個特殊的值,用None表示。None不能理解為0,因為0是有意義的,而None是一個特殊的空值。

變量

變量名必須是大小寫英文、數字和_的組合,且不能用數字開頭

在Python中,等號=是賦值語句,可以把任意數據類型賦值給變量,同一個變量可以反覆賦值,而且可以是不同類型的變量

a = 123# a是整數

print(a)

a = 'ABC'# a變為字符串

print(a)

list 列表,用[]

Python內置的一種數據類型是列表:list。list是一種可變的有序的集合,可以隨時添加和刪除其中的元素。

比如,列出班裡所有同學的名字,就可以用一個list表示:

>>> classmates = ['Michael', 'Bob', 'Tracy']
>>> classmates
['Michael', 'Bob', 'Tracy']

用len()函數可以獲得list元素的個數

用索引來訪問list中每一個位置的元素,記得索引是從0開始

當索引超出了範圍時,Python會報一個IndexError錯誤,所以,要確保索引不要越界,記得最後一個元素的索引是len(classmates)- 1。

如果要取最後一個元素,除了計算索引位置外,還可以用-1做索引,直接獲取最後一個元素

>>> classmates[-1]
'Tracy'

追加元素到末尾:

>>> classmates.append('Adam')

>>> classmates

['Michael', 'Bob', 'Tracy', 'Adam']

把元素插入到指定的位置,比如索引號為1的位置:

>>> classmates.insert(1, 'Jack')

>>> classmates

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

刪除list末尾的元素,用pop()方法:

>>> classmates.pop()

'Adam'

>>> classmates

['Michael', 'Jack', 'Bob', 'Tracy']

刪除指定位置的元素,用pop(i)方法,其中i是索引位置:

>>> classmates.pop(1)

'Jack'

>>> classmates

['Michael', 'Bob', 'Tracy']

把某個元素替換成別的元素,可以直接賦值給對應的索引位置:

>>> classmates[1] = 'Sarah'

>>> classmates

['Michael', 'Sarah', 'Tracy']

list裡面的元素的數據類型也可以不同,比如:

>>> L = ['Apple', 123, True]

list元素也可以是另一個list,比如:

>>> s = ['python', 'java', ['asp', 'php'], 'scheme']

>>> len(s)

4

tuple,元組,用()

另一種有序列表叫元組:tuple。tuple和list非常類似,但是tuple一旦初始化就不能修改,比如同樣是列出同學的名字:

>>> classmates = ('Michael', 'Bob', 'Tracy')

dict 字典,{}鍵值對,無序

使用鍵-值(key-value)存儲,具有極快的查找速度。

>>> d = {'Michael': 95, 'Bob': 75, 'Tracy': 85}
>>> d['Michael']
95

通過key放入,如果已經存在就修改:

>>> d['Adam'] = 67

>>> d['Adam']

67

如果key不存在,dict就會報錯:

>>> d['Thomas']

Traceback (most recent call last):

File "<stdin>", line 1, in <module>

KeyError: 'Thomas'

要避免key不存在的錯誤,有兩種辦法,一是通過in判斷key是否存在:

>>> 'Thomas'in d

False

二是通過dict提供的get方法,如果key不存在,可以返回None,或者自己指定的value:

>>> d.get('Thomas')

>>> d.get('Thomas', -1)

-1

注意:返回None的時候Python的交互式命令行不顯示結果。

要刪除一個key,用pop(key)方法,對應的value也會從dict中刪除:

>>> d.pop('Bob')

75

>>> d

{'Michael': 95, 'Tracy': 85}

set,濾重

set和dict類似,也是一組key的集合,但不存儲value。由於key不能重複,所以,在set中,沒有重複的key。

要創建一個set,需要提供一個list作為輸入集合:

>>> s = set([1, 2, 3])
>>> s
{1, 2, 3}

通過add(key)方法可以添加元素到set中,可以重複添加,但不會有效果

通過remove(key)方法可以刪除元素

set和dict的唯一區別僅在於沒有存儲對應的value

條件判斷

if <條件判斷1>:
 <執行1>
elif <條件判斷2>:
 <執行2>
elif <條件判斷3>:
 <執行3>
else:
 <執行4>

注意不要少寫了冒號:。

循環

Python的循環有兩種,一種是for...in循環,依次把list或tuple中的每個元素迭代出來

names = ['Michael', 'Bob', 'Tracy']
for name in names:
 print(name)

第二種循環是while循環,只要條件滿足,就不斷循環,條件不滿足時退出循環。

sum = 0
n = 99
while n > 0:
 sum = sum + n
 n = n - 2
print(sum)

循環

要計算1+2+3,我們可以直接寫表達式:

>>> 1 + 2 + 3
6

要計算1+2+3+...+10,勉強也能寫出來。

但是,要計算1+2+3+...+10000,直接寫表達式就不可能了。

為了讓計算機能計算成千上萬次的重複運算,我們就需要循環語句。

Python的循環有兩種,一種是for...in循環,依次把list或tuple中的每個元素迭代出來,看例子:

names = ['Michael', 'Bob', 'Tracy']
for name in names:
 print(name)

執行這段代碼,會依次打印names的每一個元素:

Michael
Bob
Tracy

所以for x in ...循環就是把每個元素代入變量x,然後執行縮進塊的語句。

再比如我們想計算1-10的整數之和,可以用一個sum變量做累加:

sum = 0
for x in [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]:
 sum = sum + x
print(sum)

如果要計算1-100的整數之和,從1寫到100有點困難,幸好Python提供一個range()函數,可以生成一個整數序列,再通過list()函數可以轉換為list。比如range(5)生成的序列是從0開始小於5的整數:

>>> list(range(5))
[0, 1, 2, 3, 4]

range(101)就可以生成0-100的整數序列,計算如下:

sum = 0
for x in range(101):
 sum = sum + x
print(sum)

請自行運行上述代碼,看看結果是不是當年高斯同學心算出的5050。

第二種循環是while循環,只要條件滿足,就不斷循環,條件不滿足時退出循環。比如我們要計算100以內所有奇數之和,可以用while循環實現:

sum = 0
n = 99
while n > 0:
 sum = sum + n
 n = n - 2
print(sum)

在循環內部變量n不斷自減,直到變為-1時,不再滿足while條件,循環退出。

break

在循環中,break語句可以提前退出循環。

continue

在循環過程中,也可以通過continue語句,跳過當前的這次循環,直接開始下一次循環

正式開始學Python了

相關推薦

推薦中...