国产一级a片免费看高清,亚洲熟女中文字幕在线视频,黄三级高清在线播放,免费黄色视频在线看

打開APP
userphoto
未登錄

開通VIP,暢享免費電子書等14項超值服

開通VIP
零基礎(chǔ)學(xué)python,看完這篇文章,你的python基礎(chǔ)就差不多了!

Python基礎(chǔ)語法

1. 認識Python

1.1 Python 簡介

Python 的創(chuàng)始人為吉多·范羅蘇姆(Guido van Rossum)。

Python 的設(shè)計目標:

  • 一門

    簡單直觀的語言

    并與主要競爭者一樣強大
  • 開源

    ,以便任何人都可以為它做貢獻
  • 代碼

    像純英語那樣容易理解

  • 適用于

    短期

    開發(fā)的日常任務(wù)

Python 的設(shè)計哲學(xué):

  • 優(yōu)雅、明確、簡單

Python 開發(fā)者的哲學(xué)是:用一種方法,最好是只有一種方法來做一件事

Python 是完全面向?qū)ο蟮恼Z言,在 Python 中一切皆對象。

可擴展性:如果需要一段關(guān)鍵代碼運行得更快或者希望某些算法不公開,可以把這部分程序用 C 或 C 編寫,然后在 Python 程序中使用它們。

1.2. 第一個Python程序

執(zhí)行 Python 程序的三種方式:

解釋器、交互式運行、IDE運行

Python 是一個格式非常嚴格的程序設(shè)計語言。

python 2.x 默認不支持中文。

  • ASCII 字符只包含 256 個字符,不支持中文
  • Python 2.x 的解釋器名稱是

    python

  • Python 3.x 的解釋器名稱是

    python3

為了照顧現(xiàn)有的程序,官方提供了一個過渡版本 —— Python 2.6。

提示:如果開發(fā)時,無法立即使用 Python 3.0(還有極少的第三方庫不支持 3.0 的語法),建議

  • 先使用 Python 3.0 版本進行開發(fā)
  • 然后使用 Python 2.6、Python 2.7 來執(zhí)行,并且做一些兼容性的處理

IPython 是一個 python 的 交互式 shell,比默認的 python shell 好用得多,它支持 bash shell 命令,適合于學(xué)習(xí)/驗證 Python 語法或者局部代碼。

集成開發(fā)環(huán)境(IDE,Integrated Development Environment)—— 集成了開發(fā)軟件需要的所有工具,一般包括以下工具:

  • 圖形用戶界面
  • 代碼編輯器(支持

    代碼補全

    自動縮進

  • 編譯器/解釋器
  • 調(diào)試器(

    斷點

    單步執(zhí)行

  • ……

1.3. PyCharm 的設(shè)置

PyCharm 的 配置信息 是保存在 用戶家目錄下 的 .PyCharmxxxx.x 目錄下的,xxxx.x 表示當(dāng)前使用的 PyCharm 的版本號

1.3.1 恢復(fù) PyCharm 的初始設(shè)置:

  1. 關(guān)閉正在運行的 PyCharm
  2. 在終端中執(zhí)行以下終端命令,刪除 PyCharm 的配置信息目錄:
$ rm -r ~/.PyCharm2016.3
  1. 重新啟動 PyCharm

1.3.2 PyCharm 安裝和啟動步驟:

  1. 執(zhí)行以下終端命令,解壓縮下載后的安裝包
$ tar -zxvf pycharm-professional-2017.1.3.tar.gz
  1. 將解壓縮后的目錄移動到 /opt 目錄下,可以方便其他用戶使用

/opt 目錄用戶存放給主機額外安裝的軟件

$ sudo mv pycharm-2017.1.3/ /opt/
  1. 切換工作目錄
$ cd /opt/pycharm-2017.1.3/bin
  1. 啟動 PyCharm
$ ./pycharm.sh

1.3.3 設(shè)置啟動圖標

  • 在專業(yè)版中,選擇菜單

    Tools

    /

    Create Desktop Entry...

    可以設(shè)置任務(wù)欄啟動圖標
  • 注意:設(shè)置圖標時,需要勾選 Create the entry for all users
  • 快捷方式文件

  • /usr/share/applications/jetbrains-pycharm.desktop

在 ubuntu 中,應(yīng)用程序啟動的快捷方式通常都保存在 /usr/share/applications 目錄下

1.3.4 卸載之前版本的 PyCharm

要卸載 PyCharm 只需要做以下兩步工作:

  1. 刪除解壓縮目錄
$ sudo rm -r /opt/pycharm-2016.3.1/
  1. 刪除家目錄下用于保存配置信息的隱藏目錄
$ rm -r ~/.PyCharm2016.3/

如果不再使用 PyCharm 還需要將 /usr/share/applications/ 下的 jetbrains-pycharm.desktop 刪掉

1.4. 多文件項目的演練

  • 開發(fā)

    項目

    就是開發(fā)一個

    專門解決一個復(fù)雜業(yè)務(wù)功能的軟件

  • 通常每

    一個項目

    就具有一個

    獨立專屬的目錄

    ,用于保存

    所有和項目相關(guān)的文件

  • 在 PyCharm 中,要想讓哪一個 Python 程序能夠執(zhí)行,必須首先通過

    鼠標右鍵的方式執(zhí)行

    一下
  • 對于初學(xué)者而言,在一個項目中設(shè)置多個程序可以執(zhí)行,是非常方便的,可以方便對不同知識點的練習(xí)和測試
  • 對于商業(yè)項目而言,通常在一個項目中,只有一個

    可以直接執(zhí)行的 Python 源程序

2. 注釋

  • 注釋的作用
  • 使用用自己熟悉的語言,在程序中對某些代碼進行標注說明,增強程序的可讀性

2.1 單行注釋(行注釋)

  • 以 # 開頭,# 右邊的所有東西都被當(dāng)做說明文字,而不是真正要執(zhí)行的程序,只起到輔助說明作用
print('hello python') # 輸出 `hello python`

為了保證代碼的可讀性,# 后面建議先添加一個空格,然后再編寫相應(yīng)的說明文字;為了保證代碼的可讀性,注釋和代碼之間 至少要有 兩個空格。

2.2 多行注釋(塊注釋)

  • 要在 Python 程序中使用多行注釋,可以用 一對 連續(xù)的 三個 引號(單引號和雙引號都可以)
'''這是一個多行注釋在多行注釋之間,可以寫很多很多的內(nèi)容……''' print('hello python')

提示:

  1. 注釋不是越多越好

    ,對于一目了然的代碼,不需要添加注釋
  2. 對于

    復(fù)雜的操作

    ,應(yīng)該在操作開始前寫上若干行注釋
  3. 對于

    不是一目了然的代碼

    ,應(yīng)在其行尾添加注釋(為了提高可讀性,注釋應(yīng)該至少離開代碼 2 個空格)
  4. 絕不要描述代碼,假設(shè)閱讀代碼的人比你更懂 Python,他只是不知道你的代碼要做什么

2.3 代碼規(guī)范:

  • Python 官方提供有一系列 PEP(Python Enhancement Proposals) 文檔,其中第 8 篇文檔專門針對

    Python 的代碼格式

    給出了建議,也就是俗稱的

    PEP 8

  • 文檔地址:https://www.python.org/dev/peps/pep-0008/
  • 谷歌有對應(yīng)的中文文檔:http://zh-google-styleguide.readthedocs.io/en/latest/google-python-styleguide/python_style_rules/

3. 運算符

3.1 算數(shù)運算符

是完成基本的算術(shù)運算使用的符號,用來處理四則運算,而“ ”和“*”還可以用來處理字符串。

3.2 比較(關(guān)系)運算符

  • Python 2.x 中判斷

    不等于

    還可以使用 <> 運算符
  • != 在 Python 2.x 中同樣可以用來判斷

    不等于

3.3 賦值運算符

  • 在 Python 中,使用 = 可以給變量賦值。在算術(shù)運算時,為了簡化代碼的編寫,Python 還提供了一系列的 與

    算術(shù)運算符

    對應(yīng)的

    賦值運算符

    ,注意:

    賦值運算符中間不能使用空格

    。

3.4 身份運算符

身份運算符比較兩個對象的內(nèi)存位置。常用的有兩個身份運算符,如下所述:

辨析

  • is 用于判斷 兩個變量引用的

    對象

    是否為同一個
  • == 用于判斷 引用變量的

    是否相等

3.5 成員運算符

Python成員運算符測試給定值是否為序列中的成員。 有兩個成員運算符,如下所述:

3.6 邏輯運算符

3.7 運算符優(yōu)先級

  • 以下表格的算數(shù)優(yōu)先級由高到最低順序排列:

  1. 操作系統(tǒng)會首先讓

    CPU

    Python 解釋器

    的程序復(fù)制到

    內(nèi)存

  2. Python 解釋器

    根據(jù)語法規(guī)則,

    從上向下

    CPU

    翻譯

    Python 程序中的代碼

  3. CPU

    負責(zé)執(zhí)行翻譯完成的代碼

Python 的解釋器有多大?

  • 執(zhí)行以下終端命令可以查看 Python 解釋器的大小
# 1. 確認解釋器所在位置$ which python# 2. 查看 python 文件大小(只是一個軟鏈接)$ ls -lh /usr/bin/python# 3. 查看具體文件大小$ ls -lh /usr/bin/python2.7

4. 變量

4.1 變量定義

  • 在 Python 中,每個變量

    在使用前都必須賦值

    ,變量

    賦值以后

    該變量

    才會被創(chuàng)建

  • 可以用

    其他變量的計算結(jié)果

    來定義變量
  • 變量名 只有在

    第一次出現(xiàn)

    才是

    定義變量

變量名 = 值

使用交互式方式,如果要查看變量內(nèi)容,直接輸入變量名即可,不需要使用 print 函數(shù)

使用解釋器執(zhí)行,如果要輸出變量的內(nèi)容,必須要要使用 print 函數(shù)

4.2 變量的類型

  • 在 Python 中定義變量是

    不需要指定類型

    (在其他很多高級語言中都需要),Python 可以根據(jù) = 等號右側(cè)的值,自動推導(dǎo)出變量中存儲數(shù)據(jù)的類型
  • 數(shù)據(jù)類型可以分為

    數(shù)字型

    非數(shù)字型

    數(shù)字型
  • 整型 (int):Python3中的所有整數(shù)都表示為長整數(shù)。 因此,長整數(shù)沒有單獨的數(shù)字類型。
  • 浮點型(float)
  • 布爾型(bool) :真 True 非 0 數(shù) —— 非零即真,假 False 0。
  • 復(fù)數(shù)型 (complex):復(fù)數(shù)是由x yj表示的有序?qū)Φ膶崝?shù)浮點數(shù)組成,其中x和y是實數(shù),j是虛數(shù)單位。
  • 非數(shù)字型:有些運算符還支持這些數(shù)據(jù)類型,詳見4.4.5.3 運算符。
  • 字符串(str):加號( )是字符串連接運算符,星號(*)是重復(fù)運算符。
  • 列表(list)
  • 元組(tuple)
  • 字典(dict)

提示:在 Python 2.x 中,整數(shù) 根據(jù)保存數(shù)值的長度還分為:

  • int(整數(shù))
  • long(長整數(shù))
  • 使用 type 函數(shù)可以查看一個變量的類型
In [1]: type(name)

<補>不同類型變量之間的計算

  1. 數(shù)字型變量

    之間可以直接計算
  • 在 Python 中,兩個數(shù)字型變量是可以直接進行 算數(shù)運算的
  • 如果變量是 bool 型,在計算時
  • True 對應(yīng)的數(shù)字是 1
  • False 對應(yīng)的數(shù)字是 0
  1. 字符串變量

    之間使用 拼接字符串
  2. 字符串變量

    可以和

    整數(shù)

    使用 * 重復(fù)拼接相同的字符串
  3. 數(shù)字型變量

    字符串

    之間

    不能進行其他計算

<補>從鍵盤獲取輸入信息:input

  • 在 Python 中可以使用 input 函數(shù)從鍵盤等待用戶的輸入
  • 用戶輸入的

    任何內(nèi)容

    Python 都認為是一個

    字符串

字符串變量 = input('提示信息:')

<補>類型轉(zhuǎn)換函數(shù)

price = float(input('請輸入價格:'))

<補>格式化輸出:print

  • 如果希望輸出文字信息的同時,

    一起輸出

    數(shù)據(jù)

    ,就需要使用到

    格式化操作符

  • % 被稱為

    格式化操作符

    ,專門用于處理字符串中的格式
  • 包含 % 的字符串,被稱為

    格式化字符串

  • % 和不同的

    字符

    連用,

    不同類型的數(shù)據(jù)

    需要使用

    不同的格式化字符

  • 語法格式如下:
print('格式化字符串' % 變量1)print('格式化字符串' % (變量1, 變量2...))

4.3 變量的命名

4.3.1 標識符和關(guān)鍵字

標示符就是程序員定義的 變量名函數(shù)名

  • 標示符可以由

    字母

    、

    下劃線

    數(shù)字

    組成
  • 不能以數(shù)字開頭

  • 不能與關(guān)鍵字重名

關(guān)鍵字 就是在 Python 內(nèi)部已經(jīng)使用的標識符

  • 關(guān)鍵字

    具有特殊的功能和含義
  • 開發(fā)者

    不允許定義和關(guān)鍵字相同的名字的標識符

  • 通過以下命令可以查看 Python 中的關(guān)鍵字
In [1]: import keywordIn [2]: print(keyword.kwlist)

4.3.2 變量的命名規(guī)則

命名規(guī)則 可以被視為一種 慣例,并無絕對與強制

目的是為了 增加代碼的識別和可讀性

注意 Python 中的 標識符區(qū)分大小寫的

  1. 在定義變量時,為了保證代碼格式,= 的左右應(yīng)該各保留一個空格
  2. 在 Python 中,如果 變量名 需要由 二個 或 多個單詞 組成時,可以按照以下方式命名:每個單詞都使用小寫字母,單詞與單詞之間使用

    _下劃線

    連接,例如:first_name、last_name、qq_number、qq_password。

當(dāng)然,還有駝峰命名法:

小駝峰式命名法:第一個單詞以小寫字母開始,后續(xù)單詞的首字母大寫,例如:firstName、lastName。

大駝峰式命名法,每一個單詞的首字母都采用大寫字母,例如:FirstName、LastName、CamelCase 。

4.4 高級變量類型

在 Python 中,所有 非數(shù)字型變量 都支持以下特點:

1. 都是一個 序列 sequence,也可以理解為 容器

2. 取值 []

3. 遍歷 for in

4. 計算長度len、最大/最小值max/min、比較、刪除del

5. 鏈接重復(fù) *

6. 切片

4.4.1 列表(list)

  • List(列表) 是 Python 中使用

    最頻繁

    的數(shù)據(jù)類型,在其他語言中通常叫做

    數(shù)組

    ,專門用于存儲

    一串 信息

    ,列表用 [] 定義,

    數(shù)據(jù)

    之間使用 , 分隔,列表的

    索引

    從 0 開始。

索引 就是數(shù)據(jù)在 列表 中的位置編號,索引 又可以被稱為 下標

注意:從列表中取值時,如果 超出索引范圍,程序會報錯

name_list = ['zhangsan', 'lisi', 'wangwu']

<補>del 關(guān)鍵字

  • 使用 del 關(guān)鍵字(delete) 同樣可以刪除列表中元素
  • del 關(guān)鍵字本質(zhì)上是用來

    將一個變量從內(nèi)存中刪除的

  • 如果使用 del 關(guān)鍵字將變量從內(nèi)存中刪除,后續(xù)的代碼就不能再使用這個變量了
In [1]: l = [1,2,3,4]In [2]: del l[1]In [3]: l[1]Out[3]: 3

在日常開發(fā)中,要從列表刪除數(shù)據(jù),建議 使用列表提供的方法

<補>函數(shù)與方法

  • 函數(shù)

    封裝了獨立功能,可以直接調(diào)用
函數(shù)名(參數(shù))

函數(shù)需要死記硬背

  • 方法

    和函數(shù)類似,同樣是封裝了獨立的功能
  • 方法

    需要通過

    對象

    來調(diào)用,表示針對這個

    對象

    要做的操作
對象.方法名(參數(shù))

在變量后面輸入 .,然后選擇針對這個變量要執(zhí)行的操作,記憶起來比函數(shù)要簡單很多

<補>循環(huán)遍歷

  • 遍歷

    就是

    從頭到尾

    依次

    列表

    中獲取數(shù)據(jù),在

    循環(huán)體內(nèi)部

    針對

    每一個元素

    ,執(zhí)行相同的操作。
  • 在 Python 中為了提高列表的遍歷效率,使用 for 就能夠?qū)崿F(xiàn)迭代遍歷。
# for 循環(huán)內(nèi)部使用的變量 in 列表for name in name_list: 循環(huán)內(nèi)部針對列表元素進行操作 print(name)

for-in循環(huán)流程圖

  • 盡管 Python 的

    列表

    中可以

    存儲不同類型的數(shù)據(jù)

  • 但是在開發(fā)中,更多的應(yīng)用場景是
  1. 列表

    存儲相同類型的數(shù)據(jù)
  2. 通過

    迭代遍歷

    ,在循環(huán)體內(nèi)部,針對列表中的每一項元素,執(zhí)行相同的操作

4.4.2 元組(tuple)

  • Tuple(元組)與列表類似,不同之處在于元組的

    元素不能修改元組

    表示多個元素組成的序列
  • 元組

    在 Python 開發(fā)中,有特定的應(yīng)用場景
  • 用于存儲

    一串 信息

    ,

    數(shù)據(jù)

    之間使用 , 分隔
  • 元組用 () 定義,元組的

    索引

    從 0 開始,

    索引

    就是數(shù)據(jù)在

    元組

    中的位置編號。
info_tuple = ('zhangsan', 18, 1.75)

創(chuàng)建空元組:

info_tuple = ()

元組中 只包含一個元素 時,需要 在元素后面添加逗號

info_tuple = (50, )

元組示意圖

  • 在 Python 中,可以使用 for 循環(huán)遍歷所有非數(shù)字型類型的變量:

    列表

    元組

    、

    字典

    以及

    字符串

  • 提示:在實際開發(fā)中,除非

    能夠確認元組中的數(shù)據(jù)類型

    ,否則針對元組的循環(huán)遍歷需求并不是很多
  • 在開發(fā)中,更多的應(yīng)用場景是:
  • 函數(shù)的 參數(shù) 和 返回值

    ,一個函數(shù)可以接收

    任意多個參數(shù)

    ,或者

    一次返回多個數(shù)據(jù)

  • 格式字符串

    ,格式化字符串后面的 () 本質(zhì)上就是一個元組
  • 讓列表不可以被修改

    ,以保護數(shù)據(jù)安全

<補>元組和列表之間的轉(zhuǎn)換

  • 使用 list 函數(shù)可以把元組轉(zhuǎn)換成列表
list(元組)
  • 使用 tuple 函數(shù)可以把列表轉(zhuǎn)換成元組
tuple(列表)

4.4.3 字典(dict)

dict(字典) 是 除列表以外 Python 之中 最靈活 的數(shù)據(jù)類型。

字典同樣可以用來 存儲多個數(shù)據(jù),通常用于存儲 描述一個 物體 的相關(guān)信息

  • 和列表的區(qū)別:
  • 列表

    有序

    的對象集合
  • 字典

    無序

    的對象集合
  • 字典用 {} 定義。
  • 字典使用

    鍵值對

    存儲數(shù)據(jù),鍵值對之間使用

    逗號

    , 分隔:
  • key 是索引
  • value 是數(shù)據(jù)
  • 之間使用

    冒號

    : 分隔
  • 鍵必須是唯一的

  • 可以取任何數(shù)據(jù)類型,但

    只能使用

    字符串

    、

    數(shù)字

    元組

xiaoming = {'name': '小明', 'age': 18, 'gender': True, 'height': 1.75}

  • 字典的遍歷 就是 依次 從 字典 中獲取所有鍵值對:
# for 循環(huán)內(nèi)部使用的 `key 的變量` in 字典for k in xiaoming: print('%s: %s' % (k, xiaoming[k]))

提示:在實際開發(fā)中,由于字典中每一個鍵值對保存數(shù)據(jù)的類型是不同的,所以針對字典的循環(huán)遍歷需求并不是很多

  • 盡管可以使用 for in 遍歷

    字典

  • 但是在開發(fā)中,更多的應(yīng)用場景是:
  • 使用

    多個鍵值對

    ,存儲

    描述一個 物體 的相關(guān)信息

    —— 描述更復(fù)雜的數(shù)據(jù)信息
  • 多個字典

    放在

    一個列表

    中,再進行遍歷,在循環(huán)體內(nèi)部針對每一個字典進行

    相同的處理

card_list = [{'name': '張三',

'qq': '12345',

'phone': '110'},

{'name': '李四',

'qq': '54321',

'phone': '10086'}

]

4.4.4 字符串(str)

  • 字符串

    就是

    一串字符

    ,是編程語言中表示文本的數(shù)據(jù)類型
  • 在 Python 中可以使用

    一對雙引號

    ' 或者

    一對單引號

    ' 定義一個字符串
  • 雖然可以使用 \' 或者 \' 做字符串的轉(zhuǎn)義,但是在實際開發(fā)中:
  • 如果字符串內(nèi)部需要使用 ',可以使用 ' 定義字符串
  • 如果字符串內(nèi)部需要使用 ',可以使用 ' 定義字符串
  • 可以使用

    索引

    獲取一個字符串中

    指定位置的字符

    ,索引計數(shù)從

    0

    開始
  • 也可以使用 for

    循環(huán)遍歷

    字符串中每一個字符

大多數(shù)編程語言都是用 ' 來定義字符串

string = 'Hello Python'for c in string: print(c)

提示:在 python 中對字符串操作,內(nèi)置提供的方法足夠多,使得在開發(fā)時,能夠針對字符串進行更加靈活的操作!應(yīng)對更多的開發(fā)需求!

1) 判斷類型 - 9

2) 查找和替換 - 7

3) 大小寫轉(zhuǎn)換 - 5

4) 文本對齊 - 3

5) 去除空白字符 - 3

6) 拆分和連接 - 5

<補>字符串的切片

  • 切片

    方法適用于

    字符串

    、

    列表

    元組切片

    使用

    索引值

    來限定范圍,從一個大的

    字符串

    切出

    小的

    字符串

  • 列表

    元組

    都是

    有序

    的集合,都能夠

    通過索引值

    獲取到對應(yīng)的數(shù)據(jù)
  • 字典

    是一個

    無序

    的集合,是使用

    鍵值對

    保存數(shù)據(jù)

字符串[開始索引:結(jié)束索引:步長]

注意

  • 指定的區(qū)間屬于

    左閉右開

    型 [開始索引, 結(jié)束索引) => 開始索引 <= 范圍 < 結(jié)束索引從 起始 位開始,到

    結(jié)束位的前一位

    結(jié)束(

    不包含結(jié)束位本身

    )
  1. 從頭開始,

    開始索引

    數(shù)字可以省略,冒號不能省略

  2. 到末尾結(jié)束,

    結(jié)束索引

    數(shù)字可以省略,冒號不能省略

  3. 步長默認為 1,如果連續(xù)切片,

    數(shù)字和冒號都可以省略

<補>索引的順序和倒序

  • 在 Python 中不僅支持

    順序索引

    ,同時還支持

    倒序索引

  • 所謂倒序索引就是

    從右向左

    計算索引:最右邊的索引值是

    -1

    ,依次遞減。
num_str = '0123456789'# 1. 截取從 2 ~ 5 位置 的字符串print(num_str[2:6])# 2. 截取從 2 ~ `末尾` 的字符串print(num_str[2:])# 3. 截取從 `開始` ~ 5 位置 的字符串print(num_str[:6])# 4. 截取完整的字符串print(num_str[:])# 5. 從開始位置,每隔一個字符截取字符串print(num_str[::2])# 6. 從索引 1 開始,每隔一個取一個print(num_str[1::2])# 倒序切片# -1 表示倒數(shù)第一個字符print(num_str[-1])# 7. 截取從 2 ~ `末尾 - 1` 的字符串print(num_str[2:-1])# 8. 截取字符串末尾兩個字符print(num_str[-2:])# 9. 字符串的逆序(面試題)print(num_str[::-1])

4.4.5 公共方法和變量的高級應(yīng)用

4.4.5.1 內(nèi)置函數(shù)

Python 包含了以下內(nèi)置函數(shù):

注意字符串 比較符合以下規(guī)則: '0' < 'A' < 'a'。

4.4.5.2 切片

  • 切片

    使用

    索引值

    來限定范圍,從一個大的

    字符串

    切出

    小的

    字符串

  • 列表

    元組

    都是

    有序

    的集合,都能夠

    通過索引值

    獲取到對應(yīng)的數(shù)據(jù)
  • 字典

    是一個

    無序

    的集合,是使用

    鍵值對

    保存數(shù)據(jù)

4.4.5.3 運算符

注意

  • in 在對

    字典

    操作時,判斷的是

    字典的鍵

  • in 和 not in 被稱為

    成員運算符

4.4.5.4 內(nèi)置函數(shù)完整的 for 循環(huán)語法

  • 在 Python 中完整的 for 循環(huán) 的語法如下:
for 變量 in 集合: 循環(huán)體代碼else: 沒有通過 break 退出循環(huán),循環(huán)結(jié)束后,會執(zhí)行的代碼

應(yīng)用場景:

  • 迭代遍歷

    嵌套的數(shù)據(jù)類型時,例如

    一個列表包含了多個字典

  • 需求:要判斷 某一個字典中 是否存在 指定的 值
  • 如果

    存在

    ,提示并且退出循環(huán)
  • 如果

    不存在

    ,在

    循環(huán)整體結(jié)束

    后,希望

    得到一個統(tǒng)一的提示

4.4.5.5 變量的引用

  • 變量 和 數(shù)據(jù) 都是保存在

    內(nèi)存

    中的
  • 在 Python 中

    函數(shù) 的 參數(shù)傳遞

    以及

    返回值

    都是靠

    引用

    傳遞的

在 Python 中:變量數(shù)據(jù) 是分開存儲的,數(shù)據(jù) 保存在內(nèi)存中的一個位置,變量 中保存著數(shù)據(jù)在內(nèi)存中的地址,就叫做 引用,使用 id() 函數(shù)可以查看變量中保存數(shù)據(jù)所在的 內(nèi)存地址。

注意:如果變量已經(jīng)被定義,當(dāng)給一個變量賦值的時候,本質(zhì)上是 修改了數(shù)據(jù)的引用

  • 變量

    不再

    對之前的數(shù)據(jù)引用
  • 變量

    改為

    對新賦值的數(shù)據(jù)引用

在 Python 中,變量的名字類似于 便簽紙 貼在 數(shù)據(jù) 上:

  • 定義一個整數(shù)變量 a,并且賦值為 1

在 Python 中,函數(shù)的 實參/返回值 都是是靠 引用 來傳遞來的

結(jié)果

結(jié)果

4.4.5.6 可變和不可變類型

  • 不可變類型

    ,內(nèi)存中的數(shù)據(jù)不允許被修改:
  • 數(shù)字類型 int, bool, float, complex, long(2.x)
  • 字符串 str
  • 元組 tuple
  • 可變類型

    ,內(nèi)存中的數(shù)據(jù)可以被修改:
  • 列表 list
  • 字典 dict

注意:字典的 key 只能使用不可變類型的數(shù)據(jù)

注意

  1. 可變類型

    的數(shù)據(jù)變化,是通過

    方法

    來實現(xiàn)的
  • 如果給一個可變類型的變量,賦值了一個新的數(shù)據(jù),

    引用會修改

    變量

    不再

    對之前的數(shù)據(jù)引用
  • 變量

    改為

    對新賦值的數(shù)據(jù)引用

<補>哈希 (hash)

  • Python 中內(nèi)置有一個名字叫做 hash(o) 的函數(shù):接收一個

    不可變類型

    的數(shù)據(jù)作為

    參數(shù)

    ,

    返回

    結(jié)果是一個

    整數(shù)

  • 哈希 是一種

    算法

    ,其作用就是提取數(shù)據(jù)的

    特征碼(指紋)

    相同的內(nèi)容

    得到

    相同的結(jié)果

    ,

    不同的內(nèi)容

    得到

    不同的結(jié)果

    。
  • 在 Python 中,設(shè)置字典的

    鍵值對

    時,會首先對 key 進行 hash 已決定如何在內(nèi)存中保存字典的數(shù)據(jù),以方便

    后續(xù)

    對字典的操作:

    增、刪、改、查

    :鍵值對的 key 必須是不可變類型數(shù)據(jù),鍵值對的 value 可以是任意類型的數(shù)據(jù)。

4.4.5.7 局部變量和全局變量

  • 局部變量

    是在

    函數(shù)內(nèi)部

    定義的變量,

    只能在函數(shù)內(nèi)部使用

    ;函數(shù)執(zhí)行結(jié)束后,

    函數(shù)內(nèi)部的局部變量,會被系統(tǒng)回收

    ;不同的函數(shù),可以定義相同的名字的局部變量,但是

    彼此之間

    不會產(chǎn)生影響;局部變量一般

    臨時

    保存

    函數(shù)內(nèi)部需要使用的數(shù)據(jù)

  • 全局變量

    是在

    函數(shù)外部定義

    的變量(沒有定義在某一個函數(shù)內(nèi)),

    所有函數(shù)

    內(nèi)部

    都可以使用這個變量

    。

提示:在其他的開發(fā)語言中,大多 不推薦使用全局變量 —— 可變范圍太大,導(dǎo)致程序不好維護!

注意:函數(shù)執(zhí)行時,需要處理變量時 會:

  1. 首先 查找

    函數(shù)內(nèi)部

    是否存在 指定名稱 的局部變量,如果有,直接使用
  2. 如果沒有,查找

    函數(shù)外部

    是否存在 指定名稱 的全局變量,如果有,直接使用
  3. 如果還沒有,程序報錯!

注意:函數(shù)不能直接修改全局變量的引用,如果要修改,必須要用global聲明該變量是全局變量。

注意:為了避免局部變量和全局變量出現(xiàn)混淆,在定義全局變量時,有些公司會有一些開發(fā)要求,例如:全局變量名前應(yīng)該增加 g_ 或者 gl_ 的前綴。

5. 判斷(分支)

5.1 if 語句語法

1、if 判斷語句基本語法:

if 要判斷的條件: 條件成立時,要做的事情 ……

注意:代碼的縮進為一個 tab 鍵,或者 4 個空格 —— 建議使用空格

  • 在 Python 開發(fā)中,Tab 和空格不要混用!

2、如果需要在 不滿足條件的時候,做某些事情,該如何做呢?

if 要判斷的條件: 條件成立時,要做的事情 ……else: 條件不成立時,要做的事情 ……
  • 在程序開發(fā)中,通常 在判斷條件時,會需要同時判斷多個條件,只有多個條件都滿足,才能夠執(zhí)行后續(xù)代碼,這個時候需要使用到 邏輯運算符。
  • Python 中的 邏輯運算符 包括:

    與 and

    或 or

    非 not

    三種
條件1 and 條件2 :兩個條件同時滿足,返回 True條件1 or 條件2:兩個條件只要有一個滿足,返回 Truenot 條件:非,不是

3、如果希望 再增加一些條件條件不同,需要執(zhí)行的代碼也不同 時,就可以使用 elif :

if 條件1: 條件1滿足執(zhí)行的代碼 ……elif 條件2: 條件2滿足時,執(zhí)行的代碼 ……elif 條件3: 條件3滿足時,執(zhí)行的代碼 ……else: 以上條件都不滿足時,執(zhí)行的代碼 ……

注意

  • elif 和 else 都必須和 if 聯(lián)合使用,而不能單獨使用
  • 可以將 if、elif 和 else 以及各自縮進的代碼,看成一個

    完整的代碼塊

4、在開發(fā)中,使用 if 進行條件判斷,如果希望 在條件成立的執(zhí)行語句中增加條件判斷,就可以使用 if 的嵌套

if 條件 1: 條件 1 滿足執(zhí)行的代碼 …… if 條件 1 基礎(chǔ)上的條件 2: 條件 2 滿足時,執(zhí)行的代碼 …… # 條件 2 不滿足的處理 else: 條件 2 不滿足時,執(zhí)行的代碼 # 條件 1 不滿足的處理else: 條件1 不滿足時,執(zhí)行的代碼 ……

5.2 if語句的應(yīng)用

5.2.1 隨機數(shù)的處理

  • 在 Python 中,要使用隨機數(shù),首先需要導(dǎo)入

    隨機數(shù)

    模塊

    —— “工具包”
import random
  • 導(dǎo)入模塊后,可以直接在

    模塊名稱

    后面敲一個 . 然后按 Tab 鍵,會提示該模塊中包含的所有函數(shù)
  • random.randint(a, b) ,返回 [a, b] 之間的整數(shù),包含 a 和 b
  • 例如:
random.randint(12, 20) # 生成的隨機數(shù)n: 12 <= n <= 20 random.randint(20, 20) # 結(jié)果永遠是 20 random.randint(20, 10) # 該語句是錯誤的,下限必須小于上限

5.2.2 石頭剪刀布

# 導(dǎo)入隨機工具包# 注意:在導(dǎo)入工具包的時候,應(yīng)該將導(dǎo)入的語句,放在文件的頂部# 因為,這樣可以方便下方的代碼,在任何需要的時候,使用工具包中的工具import random# 從控制臺輸入要出的拳 —— 石頭(1)/剪刀(2)/布(3)player = int(input('請輸入您要出的拳 石頭(1)/剪刀(2)/布(3):'))# 電腦 隨機 出拳 —— 先假定電腦只會出石頭,完成整體代碼功能computer = random.randint(1, 3)print('玩家選擇的拳頭是 %d - 電腦出的拳是 %d' % (player, computer))# 比較勝負# 1 石頭 勝 剪刀# 2 剪刀 勝 布# 3 布 勝 石頭# if (()# or ()# or ()):if ((player == 1 and computer == 2) or (player == 2 and computer == 3) or (player == 3 and computer == 1)): print('歐耶,電腦弱爆了!')# 平局elif player == computer: print('真是心有靈犀啊,再來一盤')# 其他的情況就是電腦獲勝else: print('不服氣,我們決戰(zhàn)到天明!')

6. 循環(huán)

6.1 程序執(zhí)行的三大流程

在程序開發(fā)中,一共有三種流程方式:

  • 順序 —— 從上向下,順序執(zhí)行代碼
  • 分支 —— 根據(jù)條件判斷,決定執(zhí)行代碼的 分支
  • 循環(huán) —— 讓 特定代碼 重復(fù) 執(zhí)行

程序執(zhí)行的三大流程

6.2 while 循環(huán)基本使用

while 語句基本語法:

初始條件設(shè)置 —— 通常是重復(fù)執(zhí)行的 計數(shù)器while 條件(判斷 計數(shù)器 是否達到 目標次數(shù)): 條件滿足時,做的事情1 條件滿足時,做的事情2 條件滿足時,做的事情3 ...(省略)... 處理條件(計數(shù)器 1)

由于程序員的原因,忘記 在循環(huán)內(nèi)部 修改循環(huán)的判斷條件,導(dǎo)致循環(huán)持續(xù)執(zhí)行,程序?qū)⑾萑?strong>死循環(huán)而無法終止!

計數(shù)器 1 :可以通過賦值運算符簡化代碼的編寫。

常見的計數(shù)方法有兩種,可以分別稱為:

  • 自然計數(shù)法

    (從 1 開始)—— 更符合人類的習(xí)慣
  • 程序計數(shù)法

    (從 0 開始)—— 幾乎所有的程序語言都選擇從 0 開始計數(shù)

因此,大家在編寫程序時,應(yīng)該盡量養(yǎng)成習(xí)慣:除非需求的特殊要求,否則 循環(huán) 的計數(shù)都從 0 開始

6.3 break 和 continue

break 和 continue 是專門在循環(huán)中使用的關(guān)鍵字

  • break :某一條件滿足時,退出循環(huán),不再執(zhí)行后續(xù)的代碼
  • continue :某一條件滿足時,不執(zhí)行后續(xù)的代碼直接進入下一次循環(huán)
  • break 和 continue 只針對

    當(dāng)前所在循環(huán)

    有效

6.4 while 循環(huán)嵌套

  • while 嵌套就是:while 里面還有 while,每一次循環(huán)中還要做完一個循環(huán)。
while 條件 1: 條件滿足時,做的事情1 條件滿足時,做的事情2 條件滿足時,做的事情3 ...(省略)... while 條件 2: 條件滿足時,做的事情1 條件滿足時,做的事情2 條件滿足時,做的事情3 ...(省略)... 處理條件 2 處理條件 1

示例:

'''打印 9 行小星星:*********************************************'''# 定義起始行row = 1# 最大打印 9 行while row <= 9: # 定義起始列 col = 1 # 最大打印 row 列 while col <= row: # end = '',表示輸出結(jié)束后,不換行 # '\t' 可以在控制臺輸出一個制表符,協(xié)助在輸出文本時對齊 print('%d * %d = %d' % (col, row, row * col), end='\t') # 列數(shù) 1 col = 1 # 一行打印完成的換行 print('') # 行數(shù) 1 row = 1

<補>字符串中的轉(zhuǎn)義字符

  • \t 在控制臺輸出一個

    制表符

    ,協(xié)助在輸出文本時

    垂直方向

    保持對齊
  • \n 在控制臺輸出一個

    換行符

制表符 的功能是在不使用表格的情況下在 垂直方向 按列對齊文本

本站僅提供存儲服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊舉報。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
看完這篇文章,你的Python基礎(chǔ)就差不多了(一)
30個Python程序員需要知道的編程技巧,可以讓你的工作事半功倍!
Python打牢基礎(chǔ),從22個語法開始!
Python數(shù)據(jù)分析、挖掘與可視化(慕課版)電子教案(參考)
萬字長文丨大白話帶你由淺入深Python編程語言
Python學(xué)習(xí)筆記1
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長圖 關(guān)注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點擊這里聯(lián)系客服!

聯(lián)系客服