Python入門學習筆記1-Python基礎

Python入門學習筆記1-Python基礎

前言:本文介紹了Python學習的前導知識概念以及必記基礎函數,如善用help方法查看幫助文檔,以及內置對象類型的概念以及常用函數的詳解。

一、Python前導知識概念
1、什麼是Python內置對象類型?

 Python已經定義的一些數據類型。

2、Python內置對象類型包括如下:

 整數、浮點數、字符串、列表、元祖、字典、集合。

3、什麼是Python內置函數?

 Python已經定義的函數。

4、Python內置函數包括如下:
在這裏插入圖片描述
更多詳細Python內置函數請參見官方文檔:

5、常用內置函數介紹:
Tip:以下代碼均是在cmd的Python交互界面書寫並運行的。“開始–>運行(cmd)–>python”進入Python交互界面

5.1 type(object)

返回一個對象類型,例如:

>>> type(2)
<class 'int'>

可以看到這個方法返回2是一個int類型的數據

5.2 help(object)

返回某對象的幫助文檔,例如
非常重要

>>> help(id)
Help on built-in function id in module builtins:

id(obj, /)
    Return the identity of an object.

    This is guaranteed to be unique among simultaneously existing objects.
    (CPython uses the object's memory address.)

返回id這個函數的相應說明。

5.3 round(number [,ndigits ] )

number ==> 數字

ndigits ==> 保留幾位數

例如:

>>> round(0.1+0.2, 2)
0.3

返回的是0.3

如果我們直接print(0.1 + 0.2),返回的結果是0.30000000000000004。

>>> print(0.1 + 0.2)
0.30000000000000004

我們知道0.1+0.2=0.3,但是由於進制轉換的原因變成了0.30000000000000004,因此我們四捨五入就能解決。

6、 四則運算

加(+)減(-)乘(*)除(/)、取餘(%)取商(//)

二、Python內置對象類型詳解

1、 字符/字符串
1.1 描述
用一對單引號或者雙引號進行包裹,例如

name="pan"
addr='gx'

tip:單引號、雙引號要成對出現。如下

'what's you name'

這樣會報語法錯誤,原因是電腦識別到了又三個單引號,前面兩個配對之後後面一個就單了,也就不符合成對出現的原則。那應該怎麼解決呢?可以這樣
“what's you name”
或這樣
‘what“s you name’
這樣就不會報錯。最外面的如果是單引號裏面就不要再使用單引號,反則也一樣。

2、字符串相關函數
2.1 在字符串裏+號是連接符/拼接符
例如:

n="python"
m="book"
n+m

輸出”pythonbook“
而這個”pythonbook“其實是一個新對象,不是n也不是m

2.2 len(str/object)
返回字符串的長度,例如

>>> n = "python"
>>> len(n)
6
>>> len("python")
6

返回結果都是 6

2.3 字符串的索引
'str' in object
返回一個boolean值,存在則返回true 否則返回false,例如

>>> n = "python"
>>> 'p' in n
True

返回true,證明n這個對象的字符串裏存在‘p’這個字符

str.index('str')
返回某字符串的下標。從左向右搜索,返回遇到的第一個對於字符的下標。如下:

>>> str = ”python book“
>>> str.index("o")
4

返回結果是一個int值,4表述‘o’在這個字符串中的位置下標,下標從0開始。

2.4 字符的切片
字符串可以通過下標直接
str[startIndex: endIndex: stepLength ]

  • str 字符串
  • startIndex 開始下標(從左邊開始下標第一個是0,從右邊開始下標第一個是-1)
  • endIndex 結束下標 (含頭不含尾,假設截取0到3的字符串,實際上只能截取到0-2的字符串)
  • stepLength 步長。(如果不填則默認是1,也就是連續的。那麼如果填個2那就是隔空截取)
    例子如下:
>>> r = "python book"
>>> r
'python book'
>>> len(r)
11
>>> r[0]
'p'
>>> r[-1]
'k'
>>> r[1:9]
'ython bo'
>>> r[0:9:1]
'python bo'
>>> r[0:9:2]
'pto o'
>>> r[:9:2]
'pto o'
>>> r[2::]
'thon book'
>>> r[:]
'python book'
>>> r[::-1]
'koob nohtyp'
>>> r[::-2]
'ko otp'
>>>

Tip:字符串切片(截取)實際上是copy創建一個新的對象,對原本的字符串對象是沒有影響的。
實現這個功能的還有一個方法,str.split(obj/str) 按照某種規則進行切割字符串,下面這個例子是按照空格進行切割的,返回的是一個字符串列表,如下:

>>> str = "python book"
>>> str
'python book'
>>> str.split(" ")
['python', 'book']

字符串佔位符

>>> "I like {0} and {1}".format("python", "phpcice")
'I like python and phpcice'

Tip:這個代碼裏的{0}和{1}就相當於一個佔位符,佔位符可以理解爲就是佔據一個空間或者位置。

設置佔位字符長度,以及設置文本對齊方式
如下:

>>> "I like {0:10} and {1:>15}".format("python", "phpcice")
'I like python     and         phpcice'
{0:10} 10代表的是字符長度。
{1: >15} >代表右對齊,^居中,<左對齊。默認就是左對齊

Tip:一個重要的函數 dir(object)
查看某對象的成員函數及對象有哪些
例如你想知道str到底還有哪些方法你可以用這個dir(str)函數進行查看,就能看到如下結果。
在這裏插入圖片描述
從上面的截圖可以看出關於字符串的函數還有很多,如果感興趣可以自己去學習。

3、列表

列表什麼元素都能裝,同一個列表可以裝各種不同的元素,但是通常只會裝一種。

列表是有序的,所以它具有序列的操作特點。

列表能通過下標賦值修改元素,而字符串不可以。如,列表lst[0]="12" 成功,字符串str[0]="12"失敗

列表的基本操作函數如索引、切片等均與字符串相同。

定義:listName = [object]如下,

lst = [1,2,3,4,5,6]

列表的常用函數

3.1 向列表中增加元素

末端增加一個元素

list.append(element)

​ 參數:list 列表名; element 要添加的元素
例子如下:

>>> lst = [1,2,3,4,5,6]
>>> lst
[1, 2, 3, 4, 5, 6]
>>> lst.append("7")
>>> lst
[1, 2, 3, 4, 5, 6, '7']
在索引前面插入一個元素

list.insert(index, element)

​ 參數:list 列表名;index要插卡位置,即下標;element被插入的元素
例子如下:

>>> lst
[1, 2, 3, 4, 5, 6, '7']
>>> lst.insert(1,12)
>>> lst
[1, 12, 2, 3, 4, 5, 6, '7']
通過可迭代的對象來擴展列表

list.extend(iterable)

​ 參數:list 源列表名;iterable可迭代元素,如字符串“12348565”
例子如下:

>>> lst
[1, 12, 2, 3, 4, 5, 6, '7']
>>> str = "abcdef"
>>> lst.extend(str)
>>> lst
[1, 12, 2, 3, 4, 5, 6, '7', 'a', 'b', 'c', 'd', 'e', 'f']

3.2 刪除列表中的元素

 刪除某個指定元素,並返回被刪除元素的值。

list.pop(element)

不填參數時默認刪除列表最後一個元素
例子如下:

>>> lst
[1, 12, 2, 3, 4, 5, 6, '7', 'a', 'b', 'c', 'd', 'e', 'f']
>>> lst.pop(7)
'7'
>>> lst
[1, 12, 2, 3, 4, 5, 6, 'a', 'b', 'c', 'd', 'e', 'f']
>>> lst.pop()
'f'
>>> lst
[1, 12, 2, 3, 4, 5, 6, 'a', 'b', 'c', 'd', 'e']
刪除某個指定的元素,沒有返回值。必須指定元素

list.remove(element)

例子如下:

>>> lst
[1, 12, 2, 3, 4, 5, 6, 'a', 'b', 'c', 'd', 'e']
>>> lst.remove('e')
>>> lst
[1, 12, 2, 3, 4, 5, 6, 'a', 'b', 'c', 'd']
刪除整個列表的元素。

list.clear()

例子如下:

>>> lst
[1, 12, 2, 3, 4, 5, 6, 'a', 'b', 'c', 'd']
>>> lst.clear()
>>> lst
[]

tip: list=[]也能達到clear的效果,但是他們是有本質的區別的。list=[]重新賦值一個空列表以達到效果,此時的這個list其實已經不是之前的那個list了,相當於是新建了一個list,其與之前的list指向的內存地址不同了。但是clear前後指向的都是同一個地址。

>>> lst = [1,2,3,4]
>>> lst = []
>>> lst
[]

3.3 列表排序

list.sort()

只能對同一種元素進行排序。默認是升序。若想降序排序需要將參數 reverse=True即可。list.sort( reverse=True)
例子如下:

>>> lst = [2,1,9,4,3,15,21,36,11,5]
>>> lst
[2, 1, 9, 4, 3, 15, 21, 36, 11, 5]
>>> lst.sort()
>>> lst
[1, 2, 3, 4, 5, 9, 11, 15, 21, 36]
>>> lst.sort(reverse=True)
>>> lst
[36, 21, 15, 11, 9, 5, 4, 3, 2, 1]

list.reverse()

反序排序,即將整個列表的元素全部反過來。

例子如下:

>>> lst
[36, 21, 15, 11, 9, 5, 4, 3, 2, 1]
>>> lst.reverse()
>>> lst
[1, 2, 3, 4, 5, 9, 11, 15, 21, 36]

4、元祖

類似列表。
列表用“[]”中括號定義,元祖用“()”小括號定義。
與列表相同元祖能放任何數據類型。
當元祖只有一個元素時,元素後必須添加一個逗號“,”,否則不是元祖,而且字符串。
元祖也是一個序列,一次元祖也具有序列的一般方法,例如index函數
元祖是不可變對象,不能像列表一樣通過下標修改元素值。可以向元祖轉成列表在修改,修改完在轉回來。

4.1 定義元祖

>>> t = (1,2,"python",[1,2,3])
>>> type(t)
<class 'tuple'>

4.2 索引與切片

與前面的列表一樣,參照前面的例子。

5、字典
5.1 字典的定義

>>> d = {'name':'pan','age':'22','city':'nanning'}
>>> d
{'name': 'pan', 'age': '22', 'city': 'nanning'}
>>> dict(a=1,b=2,c=3)
{'a': 1, 'b': 2, 'c': 3}

Tip:字典是以鍵值對(key-value)的形式進行存值的。key不能重複,key通常是不可變的一個關鍵字,並且能唯一識別一個元素的。

5.2 字典的基本操作

取值

通過key來獲取某一個鍵值對的值value,如:

>>> d['name']
'pan'
修改元素

通過key修改指定的元素值,如下:

>>> d
{'name': 'pan', 'age': '22', 'city': 'nanning'}
>>> d['name'] = "ruihe"
>>> d
{'name': 'ruihe', 'age': '22', 'city': 'nanning'}
更新/添加元素

dictName.update(object) ,例子如下:

>>> d
{'name': 'ruihe', 'age': '22', 'city': 'nanning'}
>>> d.update(sal="6000")
>>> d
{'name': 'ruihe', 'age': '22', 'city': 'nanning', 'sal': '6000'}
刪除元素

del dictName[key]
刪除指定元素,無返回值

>>> d
{'name': 'ruihe', 'age': '22', 'city': 'nanning', 'sal': '6000'}
>>> del d['sal']
>>> d
{'name': 'ruihe', 'age': '22', 'city': 'nanning'}

dictName.pop(key)
刪除指定元素,並返回刪除元素的value值。

>>> d
{'name': 'ruihe', 'age': '22', 'city': 'nanning'}
>>> d.pop('city')
'nanning'
>>> d
{'name': 'ruihe', 'age': '22'}
>>> d.pop('city','已經不存在了')
'已經不存在了'
>>> d
{'name': 'ruihe', 'age': '22'}

dictName.popitem()

刪除字典末端的元素,並返回剩下的字典元素。

Tip:這個方法在3.6之前Python版本中是隨機刪除一個元素,在3.6之後則是刪除字典中最後一個元素。

>>> d.popitem()
('age', '22')

5.3 字典的兩個重要的方法
當我們查看一個不存在的key值時,代碼會報錯,這樣可能會終止我們的程序或者出現一些不可預計的錯誤,如下:

>>> d['aa']
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
KeyError: 'aa'

該如何解決呢?

dictName.get(key,tipStr)
參數:key 字典元素的key tipStr 沒有找到key時返回給用戶的提示語。如果不填tipStr 就沒有提示語。
這樣程序不會報錯,並且也有良好的交互。

>>> d.get('aa')
>>> d.get('aa','沒有該元素')
'沒有該元素'

同樣的效果的還有一個方法,如下:
dictName.setdefault(key,tipStr)

>>> d.setdefault('aa','沒有所以創建')
'沒有所以創建'
>>> d
{'name': 'ruihe', 'age': '22', 'city': 'nanning', 'sal': '6000', 'aa': '沒有所以創建'}

不同之處在於,當沒有找到對應的key的時候,會根據搜索的key和提示語創建一個新元素。如果不填提示語也會創建一個對應的元素,值爲None。如下:

>>> d.setdefault('bb')
>>> d
{'name': 'ruihe', 'age': '22', 'city': 'nanning', 'sal': '6000', 'aa': '沒有所以創建', 'bb': None}

5.4 字典與列表的區別
字典不是序列
兩者都是容器類對象
兩者都是可變對象
Python3.6開始,字典也有順序

6、集合
6.1 集合的定義

可變集合的定義
>>> s = set([1,2,3,4,5,1,2])
>>> s
{1, 2, 3, 4, 5}
>>> type(s)
<class 'set'>
>>> s2 = {"python",2,3}
>>> type(s2)
<class 'set'>
不可變集合的定義

不可變的集合裏面有add,pop,remove等對於集合的基本操作。

>>> f3 = frozenset('panruihe')
>>> f3
frozenset({'h', 'p', 'r', 'i', 'a', 'e', 'n', 'u'})

6.2 可變集合的基本操作。

添加元素

set.add(object)例子如下:

>>> s2
{3, 2, 'python'}
>>> s2.add('php')
>>> s2
{3, 2, 'python', 'php'}
刪除元素

set.pop()
刪除首位元素,例子如下:

>>> s2
{3, 2, 'python', 'php'}
>>> s2.pop()
3
>>> s2
{2, 'python', 'php'}

set.remove(element)
刪除指定元素,例子如下:

>>> s2
{2, 'python', 'php'}
>>> s2.remove(2)
>>> s2
{'python', 'php'}

set.discard(element)
刪除指定元素,例子如下:

>>> s2
{'python', 'php'}
>>> s2.discard('php')
>>> s2
{'python'}

Tip:remove和discard都是刪除指定元素,那他們倆的區別是什麼呢?remove刪除一個不存在的元素時會不錯,而discard刪除一個不存在的元素時不會報錯。如下:

>>> s2
{'python'}
>>> s2.remove('php')
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
KeyError: 'php'
>>> s2.discard('php')
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章