Python之基礎

1.數據類型和變量php

  

2.字符串和編碼java

  對於單個字符的編碼,Python提供了ord()函數獲取字符的整數表示,chr()函數把編碼轉換爲對應的字符:python

  >>> ord('A')app

  65函數

 相似於C語言ASCII碼轉換ui

Python對bytes類型的數據用帶b前綴的單引號或雙引號表示:編碼

  x=b'ABC'spa

要把bytes轉變爲str,就須要用decode()方法:命令行

>>> b'ABC'.decode('ascii')
'ABC'
>>> b'\xe4\xb8\xad\xe6\x96\x87'.decode('utf-8')
'中文'
code

要計算str包含多少個字符,能夠用len()函數:

>>> len('ABC')
3
>>> len('中文')
2

格式化

在python中,採用格式化方式和c語言一致的,用%實現:

>>> 'Hello, %s' % 'world'
'Hello, world'
>>> 'Hi, %s, you have $%d.' % ('Michael', 1000000)
'Hi, Michael, you have $1000000.'

 %運算符就是用來格式化字符串的。在字符串內部,%s表示用字符串替換,%d表示用整數替換,有幾個%?佔位符,後面就跟幾個變量或者值,順序要對應好。若是隻有一個%?,括號能夠省略。

常見的佔位符有:

%d                                整數

%f                                浮點數

%s           字符串

%x            十六進制整數

格式化整數和浮點數還能夠指定是否補0和整數與小數的位數:

>>> '%2d-%02d' % (3, 1)
' 3-01'
>>> '%.2f' % 3.1415926
'3.14'

若是不知道應該用什麼,%s永遠是最佳選擇

>>> 'Age: %s. Gender: %s' % (25, True)
'Age: 25. Gender: True'

使用list和tuple

list是一種有序的集合能夠隨時添加和刪除其中的元素。

例如:

>>> classmates = ['Michael', 'Bob', 'Tracy']
>>> print(classmates)

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

計算len()函數能夠得到list元素個數:

>>>print(len(classmates))

3

>>>print(classmates[1])

'Bob'

list是一個可變的有序表,因此,能夠往list中追加元素到末尾:

>>>classmates.append('Adam')

>>>print(classmates)

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

用insert()插入指定位置元素

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

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

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

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

>>>print(classmates)

>>>classmates.pop(1)
'Jack'
>>> classmates
['Michael', 'Bob', 'Tracy']

list元素也能夠有另一個list,好比:

>>> s = ['python', 'java', ['asp', 'php'], 'scheme']
>>> len(s)
4

>>>print(s[2])

['asp', 'php'],

tuple

tuple和list很是相似,可是tuple一旦初始化就不能被修改。

>>>tuple(1,2,3)

>>>print(t)

123

當tuple中存在list時,list中的數據能夠被修改。

>>> t = ('a', 'b', ['A', 'B'])
>>> t[2][0] = 'X'
>>> t[2][1] = 'Y'
>>> print(t)
('a', 'b', ['X', 'Y'])

條件判斷

若是if語句判斷是True,就把縮進兩行的print語句執行了,不然,什麼也不作。

也能夠給if添加一個else語句,意思是,若是if判斷是false,不執行if內容,去把else執行了:

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

例如:
age = 20
if age >= 6:
    print('teenager')
elif age >= 18:
    print('adult')
else:
    print('kid')

循環:

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

names = ['a','b','c']

for name in names:

  print(name)

a

b

c

for x in ...循環就是把每一個元素帶入變量x,而後執行縮進塊的語句。

python提供了一個range()函數,能夠生成一個整數序列,在經過list()函數能夠轉換成list。

print(list(range(5)))

[0,1,2,3,4]

while循環

只要知足條件就不斷的循環,條件不知足時退出循環。

eg:

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

 break提早跳出循環

continue

在循環過程當中,也能夠經過continue語句,跳過當前的此次循環,直接開始下一個循環。

使用dict和set

dict的全稱是dictionary相似使用map,使用鍵-值存儲(key-value)存儲,具備極快的查找速度。

names = ['Michael','Bob','Tracy']

scores = [92,88,90]

<=>

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

也能夠使用

>>> d['Adam'] = 67
>>> d['Adam']
67

因爲一個key只能對應一個value,因此,屢次對一個key放入value,後面的值會把前面的值沖掉:

>>> d['Jack'] = 90
>>> d['Jack']
90
>>> d['Jack'] = 88
>>> d['Jack']
88

若是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方法,若是不存在,能夠返回None,或者本身指定的value:

>>>d.get('a')

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

-1

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

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

>>> d.pop('Bob')
75
>>> d
{'Michael': 95, 'Tracy': 85}

請務必注意,dict內部存放的順序和key放入的順序沒有關係的

和list比較,dict有如下幾個特色:

  查找和插入的速度極快,不會隨着key的增長而變慢;

  須要佔用大量的內存,內存浪費多。

而ist相反:

  查找和插入的時間隨着元素的增長而增長;

  佔用空間小,浪費內存不多。

正確使用dict很是重要,須要牢記的第一條就是dict的key必須是不可變對象

set

set和dict相似,也是一組key的集合,但不存儲value。因爲key不能重複,因此,在set中,沒有重複的key。

要建立一個set,須要提供一個list做爲輸入集合:

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

>>>s

{1,2,3}

注意,傳入的參數[1, 2, 3]是一個list,而顯示的{1, 2, 3}只是告訴你這個set內部有1,2,3這3個元素,顯示的順序也不表示set是有序的。。

重複元素在set中自動被過濾:

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

>>>s

{1,2,3}

經過add(key)方法能夠添加元素到set中,能夠重複添加可是不會有效果,經過remove(key)方法能夠刪除元素:

set和dict的惟一區別僅在於沒有存儲對應的value,可是,set的原理和dict同樣,因此,一樣不能夠放入可變對象,由於沒法判斷兩個可變對象是否相等,也就沒法保證set內部「不會有重複元素」。試試把list放入set,看看是否會報錯。

sort()排序函數,能夠進行內部排序。

相關文章
相關標籤/搜索