日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 >

《《python基础》》

發(fā)布時間:2025/3/21 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 《《python基础》》 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

本文主要是讓初學(xué)者了解Python,能夠看懂官網(wǎng)文檔

目錄

python 簡介

python 的誕生

python 的應(yīng)用領(lǐng)域

python 的優(yōu)缺點(diǎn)

python 的官網(wǎng)

python 的版本

python的官方文檔

Python起步

第一個Python程序

python 的兩種運(yùn)行模式

Python 的基本輸入輸出

Python的基本輸入函數(shù)

注釋

PyCharm的使用

變量和賦值語句

賦值語句

變量

Python 的基礎(chǔ)數(shù)據(jù)類型

字符串

數(shù)字

算術(shù)運(yùn)算符

比較運(yùn)算符

表達(dá)式和語句

表達(dá)式和語句的概念

布爾運(yùn)算符(也叫邏輯運(yùn)算符)

if 語句

del 語句

pass 語句

條件表達(dá)式

字符串

字符串的概述及基本運(yùn)用

符串的格式化表達(dá)式

字符串的常用方法(method)

while 語句

語句嵌套

break 語句

for 語句

?range 函數(shù)

continue 語句

復(fù)合賦值分隔符

容器

列表 list

python3 中常用于序列的函數(shù)

元組 tuple

字典 dict

列表、元組、字典小結(jié)

集合 set/ 固定集合 frozenset

集合和固定集合的運(yùn)算

容器總結(jié)


python 簡介

python 的誕生

??????- 創(chuàng)始人: Guido van Rossum(荷蘭人)。

???????![guido](./images/guido.jpg)

??- 時 間 : 1989年圣誕節(jié)期間

?????- 地 點(diǎn) : 阿姆斯特丹

??- Python命名: 源于Guido 是一個喜劇團(tuán) Monty Python 的粉絲。

python 的應(yīng)用領(lǐng)域

??- 自動化系統(tǒng)運(yùn)維

??- 自動化測試

??- 人工智能,機(jī)器人

??- 搜索引擎,爬蟲

??- 科學(xué)計(jì)算

??- web網(wǎng)站后端開發(fā)

??- 云計(jì)算

??- 大數(shù)據(jù)及數(shù)據(jù)庫編程

??- 游戲

??- 其它

python 的優(yōu)缺點(diǎn)

?1) 優(yōu)點(diǎn)

???????????高級:有高級的數(shù)據(jù)結(jié)構(gòu),縮短開發(fā)時間與代碼量

?????????? 面向?qū)ο?#xff1a;為數(shù)據(jù)和邏輯相分離的結(jié)構(gòu)化和過程化編程添加了新的活力

? ???????? 可升級:提供了基本的開發(fā)模塊,可以在它上面開發(fā)軟件,實(shí)現(xiàn)代碼的重用

?????????? 可擴(kuò)展:通過將其分離為多個文件或模塊加以組織管理

?????????? 可移植性:python是用 C 語言寫的,又由于 C 的可移植性,使得 Python 可以運(yùn)行在任 何帶有 ANSI ?C編譯器的平臺上;

???????????? 易學(xué):python 關(guān)鍵字少、結(jié)構(gòu)簡單、語法清晰;

???????????? 易讀:沒有其他語言通常用來訪問變量、定義代碼塊和進(jìn)行模塊匹配的命令式符號;

???????????? 內(nèi)存管理器:內(nèi)存管理是由python解釋器負(fù)責(zé)的;(軟件工程化思路)

??2.)缺點(diǎn)

?????????????- 與C/C++相比,執(zhí)行速度不夠快

?????????????- 不能封閉源代碼

??????????????c語言執(zhí)行能力高,python執(zhí)行能力底但開發(fā)效率高

python 的官網(wǎng)

??- 網(wǎng)址: <https://www.python.org>

????世界計(jì)算語言排名網(wǎng)站: ??www.tiobe.com

??- 我們可以通過官網(wǎng)得到更多更新的信息及文檔。

python 的版本

??- Python V2.7(2020年已經(jīng)結(jié)束維護(hù))

??- Python V3.6(當(dāng)前教學(xué))

??- Python V3.9(最新)

python的官方文檔

??https://docs.python.org/zh-cn/3/

Python起步

第一個Python程序

1)編寫一個 hello.py

2)寫入內(nèi)容

print('hello world!')

3)Python的解釋執(zhí)行器執(zhí)行 hello.py

# Linux下 $ /usr/bin/python3 ~/桌面/hello.py # Windows 下 C:\> python hello.py

python 的兩種運(yùn)行模式

1)使用文件解釋執(zhí)行模式

先將 python 的語句。寫入xxx.py當(dāng)中。然后用python3 命令解釋執(zhí)行該文件

$ python3 xxx.py

2)交互模式

在命令提示符下直接輸入python3命令進(jìn)入交互模式。

調(diào)用exit() 退出交互模式

# Linux 下進(jìn)入交互模式$ python3 <回車>>>> # 在此處可以輸入 語句和表達(dá)式(回車執(zhí)行)>>> exit() # 退出交互模式,回到終端

使用文件解釋執(zhí)行方式示例

[root@localhost day01]# cat hello.py print('Hello World!')[root@localhost day01]# python3 hello.py Hello World!

Python 的基本輸入輸出

1)Python 的輸出函數(shù)

????????print() 函數(shù)

作用:

????????向終端輸出文字信息,能讓用戶看到

????????????????當(dāng)有多個數(shù)據(jù)要輸出時,中間用英文的逗號(,) 分隔開

調(diào)用格式

print(數(shù)據(jù)1, 數(shù)據(jù)2, 數(shù)據(jù)3, ..., sep=' ', end='\n')

在python中主要使用print實(shí)現(xiàn)輸出,print是一個函數(shù)

在python中函數(shù)調(diào)用需要添加(),括號內(nèi)是傳給函數(shù)的參數(shù)

print("hello world!") print("年齡是", 35) print(1, 2, 3, 4) print(1, 2, 3, 4, sep=" ", end="\n") print(1, 2, 3, 4, sep="###", end="\n\n\n") print(1, 2, 3, 4)

Python的基本輸入函數(shù)

input 函數(shù)

作用

????????讓程序停下來,等待用戶輸入文字信息,返回用戶輸入文字的? 字符串

調(diào)用格式

input("提示信息")

示例

name = input('請輸入您的姓名:')

python中,通過input函數(shù)獲取用戶鍵盤輸入

input函數(shù)的參數(shù)是字符串,它是屏幕提示語

注釋

注釋以井號 (#) 開頭,在物理行末尾截止。

PyCharm的使用

PyCharm 下快捷鍵

ctrl + s 保存

ctrl + / 注釋和取消注釋

ctrl + d 可以復(fù)制當(dāng)前行到下一行

ctrl + alt + L? 可以將程序自動格式化成 符合PEP8 編碼規(guī)范的格式

PyCharm 的調(diào)試

????????1. 設(shè)置斷點(diǎn)
????????2. 單步執(zhí)行

變量和賦值語句

賦值語句

作用

????????創(chuàng)建一個自定義名字的變量,此變量可以用于綁定一個表達(dá)式執(zhí)行的結(jié)果,供后續(xù)使用

語法

變量名 = 表達(dá)式 變量名1 = 變量名2 = 變量名3 = 表達(dá)式 變量名1, 變量名2, 變量名3 = 表達(dá)式1, 表達(dá)式2, 表達(dá)式3

示例

one_hundred = 99 + 1 a = b = c = 200 a, b = 100, 200

說明

?????? - 第一次為變量賦值,python 會創(chuàng)建變量,同時綁定表達(dá)式執(zhí)行的結(jié)果

?????? - 第二次或者以后為變量賦值,會改變原有變量的綁定關(guān)系

?????? - python 的變量沒有類型,它綁定的對象才有類型

?????? - 變量在使用之前,必須先進(jìn)行賦值

?????? - 變量賦值是一個自右向左的運(yùn)算,將=右邊表達(dá)式的計(jì)算結(jié)果,賦值給左邊的變量

變量

變量是在python 內(nèi)用賦值語句創(chuàng)建,用來綁定一個數(shù)據(jù)的有名對象

  • 變量名

????????變量名必須是一個標(biāo)識符

  • 標(biāo)識符的命名規(guī)則?

????????-第一個字母必須是英文字母或下劃線 [ A-Za-z_ ]

????????-從第二個字母起(如果有),必須是英文字母或下劃線或數(shù)字

????????????????[ A-Za-z0-9_ ]

????????????????變量名稱約定

??????? -變量名區(qū)分大小寫

  • 示例

????????以下是合法的標(biāo)識符

a a1 abc ABC a1b2c3d4 one_hundred count _a __ABC__ getNameAge get_name_age GetNameAge # 小駝峰 匈牙利命名法 大駝峰

????????python 編程語言中的關(guān)鍵字不能作為標(biāo)識符

  • 推薦采用的命名方法

??????? -變量名全部采用小寫字母,如pythonstring

??????? -簡短、有意義,如pystr

??????? -多個單詞間用下劃線分隔,如py_str

??????? -變量名用名詞,函數(shù)名用謂詞(動詞+名詞),如 phone / update_phone

??????? -類名采用駝峰形式,如MyClass

  • 關(guān)鍵字(keywords)

????????計(jì)算機(jī)編程語言中保留的標(biāo)識符稱為關(guān)鍵字, 關(guān)鍵字不能當(dāng)成普通的標(biāo)識符使用

??????????????關(guān)鍵字通常用于語法標(biāo)識

??????????python3.9中 的全部的關(guān)鍵字

False await else import pass None break except in raise True class finally is return and continue for lambda try as def from nonlocal while assert del global not with async elif if or yield
  • 示例
>>> a = 10 + 5 # 第一次為變量賦值是創(chuàng)建變量 >>> a 15 >>> a = 100 # 再次為變量賦值,會改變已經(jīng)存在的變量.
  • 練習(xí)
寫一個程序 myprog.py # 1. 讓用戶輸入用戶名 # 2. 讓用戶輸入密碼 # 3. 打印 誰誰誰 的密碼是 xxx

????????? 答案:

name = input("請輸入您的姓名: ")password = input("請輸入您的密碼: ")print(name, '的密碼是:', password)

Python 的基礎(chǔ)數(shù)據(jù)類型

數(shù)據(jù)類型

  • 字符串 str

  • 數(shù)字

    • 整數(shù) int

    • 浮點(diǎn)數(shù) float

    • 布爾數(shù) bool

  • 容器

    • 列表 list

    • 元組 tuple

    • 字典 dict

    • 集合 set / 固定集合 frozenset

    • 字節(jié)串 bytes / 字節(jié)數(shù)組 bytearray

示例字符串 str與數(shù)字住址: 字符串郵編: 數(shù)字(也可以用字符串)門牌號: 整數(shù)

字符串

????????程序中,用來記錄人類的文字信息的一種數(shù)據(jù)類型

  • 創(chuàng)建字符串的字面值
# 用 英文的 ' 或 " 或 ''' 或 """ 開始或結(jié)束 # 此示例示意字符串的寫法 print('同學(xué)們好') print("同學(xué)們好") print('''同學(xué)們好''') print("""同學(xué)們好""")
  • 說明

??????? -雙引號的字符串的內(nèi)部的單引號不算是結(jié)束符

??????? -單引號的字符串的內(nèi)部的雙引號不算是結(jié)束符???????

# I'm a teacher! print("I'm a teacher!") # 我是"kali_yao" print('我是"kali_yao"')

??????? -三引號字符串的內(nèi)部可以包含單引號和雙引號

# I'm a teacher! 我是"kali_yao" print('''I'm a teacher! 我是"kali_yao"''')

??????? -三引號字符串又稱為所見即所得字符串, 每一次換行會轉(zhuǎn)換成換行符 '\n'

# print("詠鵝\n鵝鵝鵝,\n曲項(xiàng)向天歌;\n白毛浮綠水,\n紅掌撥清波。") # 等同于如下寫法 print('''詠鵝 鵝鵝鵝, 曲項(xiàng)向天歌; 白毛浮綠水, 紅掌撥清波。''')
  • 字符串的轉(zhuǎn)義

????????字符串的字面值中,可以加反斜杠 \ 后加一個或多個字符串,代表一個單個的字符

\' 代表一個單引號 \" 代表一個雙引號 \n 代表一個換行符 \\ 代表一個反斜杠
  • 思考
思考 我是單引號',我是雙引號", 我是三單引號''', 我是三雙引""" # 解決方法 print('我是單引號\',我是雙引號\", 我是三單引號\'\'\', 我是三雙引"""')
  • Python 中全部的轉(zhuǎn)義字符串
轉(zhuǎn)義序列 含義 注釋 \newline 反斜杠加換行全被忽略 \\ 反斜杠 (\) \' 單引號 (') \" 雙引號 (") \a ASCII 響鈴 (BEL) \b ASCII 退格 (BS) \f ASCII 進(jìn)紙 (FF) \n ASCII 換行 (LF) \r ASCII 回車 (CR) \t ASCII 水平制表 (TAB) \v ASCII 垂直制表 (VT) \ooo 八進(jìn)制數(shù) ooo 碼位的字符 (1,3) \xhh 十六進(jìn)制數(shù) hh 碼位的字符 (2,3)

練習(xí):

# 寫程序,打印如下文本內(nèi)容 print("hello world") 答案 >>> print('print("hello world")') print("hello world") >>> >>> print("print(\"hello world\")") print("hello world")
  • 字符串的基本運(yùn)算

+ 號運(yùn)算符, 用于拼接字符串(生成新的字符串)

????????+ 號的兩側(cè)都必須是字符串

'今天是' + '7月13日' # 生成 '今天是7月13日' s1 = '123' s2 = "456" s3 = s1 + s2 print(s1) # 123 print(s2) # 456 print(s3) # 123456

* 運(yùn)算, 用于生成重復(fù)的字符串

? ? ? ? 字符串只能和整數(shù)相乘

print('我想你了' * 100)

數(shù)字

Python 中的基本的數(shù)字類型

整數(shù) int 浮點(diǎn)數(shù)(小數(shù)) float 布爾類型數(shù) bool

??????? -整數(shù) int

???????????????????整數(shù)的字面值

# 十進(jìn)制的寫法 100 0 -5 ? # 二進(jìn)制的寫法 0b 開頭 后跟 0~1 0b1101 ? # 八進(jìn)制的寫法 0o開頭 后跟 0~7 0o777 等于 0b111111111 等于 511 ? # 十六進(jìn)制的寫法 0x 開頭 后跟 0~9, a-f, A-F 0xA1B2C3D4

???????? -浮點(diǎn)數(shù)(小數(shù)) float

????????????????? 浮點(diǎn)數(shù)的字面值??

# 小數(shù)寫法 3.14 0.14 .14 3.0 3. 0.0 # 科學(xué)計(jì)數(shù)法 6.18E-1 # 等同于 0.618 2.9979E8 # 等同于 299790000.0

??????? -布爾類型的數(shù) bool

????????????????True??? 真(表示行,好,成立)??????????????? 值為1

????????????????False?? 假(表示不行,不好,不成立)??? 值為0

算術(shù)運(yùn)算符

+ 加法 - 減法 * 乘法 / 除法 // 地板除法(向下取整) floordiv % 求余數(shù) ** 冪運(yùn)算(也叫乘方運(yùn)算) x ** y 代表 x 的 y 次方

?示例

>>> 1 + 2 * 3 / 4 2.5 >>> 14 / 3 4.666666666666667 >>> 14 // 3 4 >>> 14 % 3 2 >>> 3 ** 2 9

比較運(yùn)算符

比較運(yùn)算符是二元運(yùn)算符

  • 運(yùn)算符
< 小于 <= 小于等于 > 大于 >= 大于等于 == 等于 != 不等于

比較運(yùn)算符通常返回布爾類型的數(shù), True, False

>>> 100 + 200 > 3 True >>> 1 + 3 >= 2 True >>> 1 + 3 >= 200 # 表達(dá)式 False >>> score = 83 # 這是賦值語句 >>> 60 <= score <= 100 True >>> score = 59 >>> 60 <= score <= 100 False

表達(dá)式和語句

表達(dá)式和語句的概念

  • 表達(dá)式

????????是由數(shù)字,字符串(文字), 運(yùn)算符,函數(shù)調(diào)用等組成,通常用于計(jì)算并得到一個結(jié)果

?????????????????表達(dá)式是語文中的字或短語

  • 語句

????????語句是計(jì)算機(jī)執(zhí)行程序的最小單位

示例

a = 100 # 賦值語句 print(a) # 表達(dá)式語句
  • 函數(shù)調(diào)用是表達(dá)式
input('xxxx') 返回字符串print("xxxx") 返回 None

????????函數(shù)調(diào)用語法規(guī)則

函數(shù)名(傳入的參數(shù))

None 是表示空值的一個對象

  • 數(shù)據(jù)類型轉(zhuǎn)換相關(guān)的函數(shù)
函數(shù) 說明 str(x) 把傳入的x 轉(zhuǎn)化成字符串并返回 int(x) 把 x 轉(zhuǎn)化為整數(shù)并返回 float(x) 把 x 轉(zhuǎn)化為浮點(diǎn)數(shù)并返回 bool(x) 把 x 轉(zhuǎn)化為布爾類型的數(shù)并返回
  • 示例:
>>> age = input('請輸入年齡: ') # 輸入 35 >>> int(age) 35 >>> int("35") 35 >>> int(3.14) 3 >>> int('3.14') # 報(bào)錯 >>> f = 3.14 >>> str(f) '3.14' >>> int(f) 3 >>> bool(f) True
  • python 中假值對象
None False 0 0.0 '' [] # 空列表 {} # 空字典 ...

布爾運(yùn)算符(也叫邏輯運(yùn)算符)

  • 運(yùn)算符
and 與運(yùn)算 or 或運(yùn)算 not 非運(yùn)算
  • and 與運(yùn)算

????????兩者(兩個元素同時為真,結(jié)果才為真)

語法

x and y # x, y代表表達(dá)式

示例

>>> 3 + 4 > 5 and 6 + 7 > 100

真值表

x的值 y的值 x and y的值 True True True True False False False True False

優(yōu)先返回假值對象, 如果x 為假值,返回x, 否則返回y

  • or? 或運(yùn)算

兩者(兩個元素只要有一個為真,結(jié)果就為真)

x or y # x, y代表表達(dá)式

真值表

x的值 y的值 x or y的值 True True True True False True False True True False False False

優(yōu)先返回真值對象, 如果x 為真值,返回x, 否則返回y

  • not 非運(yùn)算

????????not 運(yùn)算符是一元運(yùn)算符

語法

not 表達(dá)式

示例

not True # False not False # True not 3.14 # False not '' # True not 1 + 2 # False
  • and 示例
>>> True and True # True >>> True and False # False >>> False and True # False >>> False and False # False >>> True or True # True >>> True or False # Ture >>> False or True # Ture >>> False or False # False >>> not False # True >>> not True # Flase >>> 3.14 and 5 # 5 >>> 0.0 and 5 # 0.0 >>> 3.14 or 5 # 3.14 >>> 0.0 or 0 # 0 >>> not 3.14 # False >>> not 0.0 # True

if 語句

作用

????????讓程序根據(jù)條件選擇性的執(zhí)行其中的某一個語句塊

語法

if 條件表達(dá)式1:語句塊1 elif 條件表達(dá)式2:語句塊2 elif 條件表達(dá)式3:語句塊3 ... elif 條件表達(dá)式n:語句塊n else:語句塊(其他)

說明

??????? -elif 子句可以有0個,1個或多個,

?????? -else 子句可以有0個或1個且只能放在最后

?????? -它通過對表達(dá)式逐個求值直至找到一個真值(請參閱 布爾運(yùn)算 了解真值與假值的定義)在子句體中選擇唯一匹配的一個;然后執(zhí)行該子句體(而且 if 語句的其他部分不會被執(zhí)行或求值)。 如果所有表達(dá)式均為假值,則如果 else 子句體如果存在就會被執(zhí)行。

if 語句也是語句,他可以嵌套到其他的復(fù)合語句中

if xxxx:if yyyy > 0:print('.....')else:print("fjdsfdf") else:print("hello")

del 語句

作用:

用于刪除變量,同時解除與對象的關(guān)聯(lián),如果可能則釋放此變量綁定的對象

語法:?

del 變量名 del 變量名1, 變量名2, ...

自動化內(nèi)存管理和引用計(jì)數(shù):
每個對象都會記錄有幾個變量引用自身,當(dāng)引用的數(shù)量為0時則此對象被銷毀,此種自動化內(nèi)存管理的方式叫做引用計(jì)數(shù)。

pass 語句

作用

????????用來填充語法空白

語法

pass

示例

# 如果 成績在 0~100 什么都不做, 其他提示"您的輸入有誤" score = int(input('請輸入成績:')) if 0 <= score <= 100:pass else:print('您的輸入有誤!')

條件表達(dá)式

語法

表達(dá)式x if 條件表達(dá)式C else 表達(dá)式y(tǒng)

說明

????????執(zhí)行順序

????????????????先判斷 條件表達(dá)式C 是真值還是假值,

????????????????如果 C是真值,則表達(dá)式x 執(zhí)行并返回結(jié)果

????????????????如果 C是假值,則表達(dá)式y(tǒng) 執(zhí)行并返回結(jié)果

表達(dá)式 x if C else y 首先是對條件 C 而非 x 求值。 如果 C 為真,x 將被求值并返回其值;否則將對 y 求值并返回其值。

示例

>>> score = 69 >>> "及格" if 60 <= score <= 100 else "不及格" '及格' >>> s = "及格" if 60 <= score <= 100 else "不及格" >>> print(s) 及格

字符串

字符串的概述及基本運(yùn)用

  • 字面值
'hello' "hello" '''hello''' """hello"""
  • 字符串轉(zhuǎn)義
\' 代表一個單個的 ' \n
  • 字符串的運(yùn)算

+ 用于拼接字符串

*? 用于生成重復(fù)的字符串

  • 原始字符串(raw 字符串)

以字符r開頭的字符串, 其中的 \ 不算轉(zhuǎn)義字符串

????????字面值格式

r'字符串內(nèi)容' r"字符串內(nèi)容" r'''字符串內(nèi)容''' r"""字符串內(nèi)容"""
  • in / not in 運(yùn)算符

作用

????????in 用于序列,字符串,字典中,用于判斷某個值是否存在于容器中,如果存在就返回True, 否則返回False

????????not in 的返回值與 in 相反

示例

>>> s = 'welcome to beijing!' >>> 'to' in s True >>> 'weimingze' in s False >>> 'beijing' not in s False >>> 'weimz' not in s True
  • 字符串的索引 index

語法

字符串[整數(shù)表達(dá)式]

作用

????????用來獲取字符串其中的一個字符

說明

????????正向索引: 字符串的 正向索引是從0開始的,.... 最后一個索引為 len(s)-1

????????反向索引: 字符串的反向索引是從 -1 開始的,-1 代表最后一個,... -len(s) 代表第一個

示例

>>> s = 'ABCDE' >>> s[1] B >>> s[1+2] D >>> s[-1] E

注: len(x) 函數(shù)可以求取一個字符串的長度

  • 字符串的切片 slice

作用

????????從字符串序列中取出相應(yīng)位置的元素,重新組成一個新的字符串

語法

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

注: () 括起來的內(nèi)容代表可以省略

說明

??????? -開始索引b是切片切下的開始位置

??????? -結(jié)束索引e 是切片的終止位置(但不包含終止點(diǎn))

??????? -步長是切片取出數(shù)據(jù)后向后移動的方向和偏移量

?????????????? - 沒有步長,相當(dāng)于步長為1(默認(rèn)為1)

?????????????? - 當(dāng)步長為正數(shù)時,取正向切片

?????????????????????? - 開始索引默認(rèn)為0, 結(jié)束索引是最后一個元素的下一個索引

?????????????? - 當(dāng)步長為負(fù)數(shù)時,取反向切片

?????????????????????? - 開始索引默認(rèn)為-1, 結(jié)束索引是第一個元素的前一個索引

示例

# 01234 >>> s = 'ABCDE' >>> s[1:] # 'BCDE' >>> s[-2:] # 'DE' >>> s[1:4] # 'BCD' >>> s[:] # 'ABCDE' >>> s[:2] # 'AB' >>> s[1:1] # '' >>> s[4:2] # '' >>> s[::] # 等同于 s[::1] 'ABCDE' >>> s[::2] # 'ACE' >>> s[2::2] # 'CE' >>> s[-1::-2] # 'ECA' >>> s[::-1] # 'EDCBA'

符串的格式化表達(dá)式

  • 作用

????????生成具有一定格式的字符串

  • 語法規(guī)則
格式化字符串 % 參數(shù)1 # 或者 格式化字符串 % (參數(shù)1, 參數(shù)2, 參數(shù)3)
  • 占位符和類型碼
占位符和類型碼 說明 %s 轉(zhuǎn)成字符串, 使用 str(x) 函數(shù)轉(zhuǎn)換(常用) %d 轉(zhuǎn)成 十進(jìn)制的整數(shù)(常用) %o 轉(zhuǎn)成 八進(jìn)制的整數(shù) %x,%X 轉(zhuǎn)成 十六進(jìn)制的整數(shù) %e,%E 轉(zhuǎn)成 指數(shù)格式的浮點(diǎn)數(shù) %f,%F 轉(zhuǎn)成小數(shù)格式的浮點(diǎn)數(shù)(常用) %g,%G 轉(zhuǎn)成指數(shù)格式或小數(shù)格式的浮點(diǎn)數(shù) %% 轉(zhuǎn)成一個%
  • 示例1
>>> fmt = """ 甲方:_____%s_____ 乙方:_____%s_____....... 金額:_%d__ """ >>> s = fmt % ("kali", 'yao', 10000) >>> print(s)甲方:_____kali_____ 乙方:_____yao_____....... 金額:_10000__
  • 示例2
>>> "+++%d+++" % 999 # 返回 '+++999+++' '+++999+++' >>> "+++%s+++" % 3.14 '+++3.14+++' >>> "+++%s+++" % "weimz" '+++weimz+++' >>> "+++%d+++" % 3.1415 '+++3+++' >>> "+++%d+++" % 13 '+++13+++' >>> "+++%o+++" % 13 '+++15+++' >>> "+++%x+++" % 13 '+++d+++' >>> "+++%e+++" % 3.1415 '+++3.141500e+00+++' >>> "+++%f+++" % 3.1415 '+++3.141500+++' >>> "+++%g+++" % 3.1415 '+++3.1415+++' >>> "+++%g+++" % 3141523274812374281342374324.23748123742183472 '+++3.14152e+27+++'
  • 占位符和類型碼之間的格式化語法
% [- + 0 寬度.精度] 類型碼

- 左對齊
+ 顯示正號
0 左側(cè)空白位置補(bǔ)零
寬度: 整個數(shù)據(jù)輸出的寬度
精度: 保留小數(shù)點(diǎn)以后多少位(默認(rèn)小數(shù)點(diǎn)以后保留6位)
常用于 %d 和 %f 中

示例

>>> "--%d--" % 99 '--99--' >>> "--%5d--" % 99 '-- 99--' >>> "--%05d--" % 99 '--00099--' >>> "--%5d--" % 99 '-- 99--' >>> "--%+5d--" % 99 '-- +99--' >>> "--%-5d--" % 99 '--99 --' >>> "--%f--" % 3.1415926 '--3.141593--' >>> "--%.2f--" % 3.1415926 '--3.14--' >>> "--%7.2f--" % 3.1415926 '-- 3.14--'

字符串的常用方法(method)

  • 方法的調(diào)用語法
對象.方法名(參數(shù))
  • 示例:
>>> "abc".isalpha() True >>> "123".isalpha() False >>> "123".isdigit() True

. 是"的"的意思

  • 字符串的常用方法
方法名(S代表字符串對象) 說明 S.isalpha() 判斷字符串是否是英文字符 S.isdigit() 判斷字符串是否是全為數(shù)字 S.isupper() 判斷字符串是否是全為大寫的英文字符 S.islower() 判斷字符串是否是全為小寫的英文字符 S.center(width[, fill]) 將字符串按width 寬度居中,左右默認(rèn)填充空格 S.count(sub[, start[, end]]) 獲取字符串中的子串的個數(shù) S.startswith(prefix) 返回S是否以prefix 開頭 S.endswith(suffic) 返回S是否以suffic結(jié)尾 str.replace(old, new[, count]) 替換字符串 str.find(sub[, start[, end]]) 查找字符串,返回第一次出現(xiàn)的索引,如果沒找到,返回-1 str.index(sub[, start[, end]]) 查找字符串,返回第一次出現(xiàn)的索引,如果沒找到則報(bào)錯 str.rindex(sub[, start[, end]])

代表其中的內(nèi)容弄可以省略

詳見: https://docs.python.org/zh-cn/3/library/stdtypes.html#string-methods

  • 示例:
>>> s = "ABC" >>> s.center(10) ' ABC ' >>> s.center(10, '#') '###ABC####' >>> s = 'hello world, hello china' >>> s.count('hello') 2 >>> s.count('hello', 10) 1 >>> s.count('hello', 10, 12) 0 >>> s = "/root/music/冰雨.mp3" >>> s.startswith('/root/') True >>> s.endswith('.mp3') True >>> s.endswith('music') False >>> s = 'welcome to Beijing' >>> s.upper() 'WELCOME TO BEIJING' >>> s.lower() 'welcome to beijing' >>> s.title() 'Welcome To Beijing' >>> s = '/root/music/冰雨.mp3' >>> pos = s.rindex('/') >>> pos 11 >>> pathname= s[:pos] >>> filename = s[pos+1:] >>> print(pathname) /root/music

while 語句

作用

????????根據(jù)一定的條件,重復(fù)的執(zhí)行某個語句塊

語法

while 真值表達(dá)式:語句塊1 (*此部分可能會重復(fù)執(zhí)行) else:語句塊2

說明

??????? -else 子句可以省略

??????? -else 子句 當(dāng)且僅當(dāng) 真值表達(dá)式為假Flase的時候 會執(zhí)行 else 里的語句塊2

??????? -如果 此 while 是因?yàn)?調(diào)用 break 語句而終止循環(huán)。則 else 子句里的語句不會執(zhí)行

示例1

while 1 < 2:print("hello world")

示例2

# 打印 5 行 "hello world" i = 0 while i < 5:print("hello world")i = i + 1 # 也可寫成 i += 1 else:print("while 語句已經(jīng)結(jié)束!")

語句嵌套

while 語句也是語句, 和其他的語句一樣,可以嵌套到其他的任何復(fù)合語句中。

while? 語句嵌套示意:

while 真值表達(dá)式:...while 真值表達(dá)式2:...else:......... else:...

break 語句

作用

????????用于循環(huán)語句(while, for語句)中, 當(dāng)break 執(zhí)行是,她會終止包含他的當(dāng)前循環(huán)。

語法

break

說明?????

????????break 語句只能用在 while 語句或for語句的內(nèi)部.

????????break 語句通常和 if 語句組合使用.

????????當(dāng)break 語句執(zhí)行后,此循環(huán)語句break 之后的所有語句都不會執(zhí)行(else 子句里的語句也不執(zhí)行)

????????break 語句只能終止包含他的當(dāng)前循環(huán),當(dāng)有循環(huán)嵌套時,只能跳出離他最近的一個循環(huán)

示例

i = 1 while i <= 5:print('i=', i)if i == 2breaki += 1 else:print('循環(huán)結(jié)束: i=', i)

死循環(huán)

????????死循環(huán)是指循環(huán)條件一直成立的循環(huán)

????????死循環(huán)通常使用 break 語句來終止循環(huán)

????????死循環(huán)的 else 子句中的語句永遠(yuǎn)不會執(zhí)行

寫法???????

while True:語句塊

循環(huán)通常用戶循環(huán)次數(shù)無法確定的循環(huán)

for 語句

作用

????????用來遍歷可迭代對象的數(shù)據(jù)元素

遍歷是指經(jīng)歷且只經(jīng)歷一遍

可迭代對象是指能夠依次獲取數(shù)據(jù)元素的對象

可迭代對象

????????字符串

????????---- 以下后面才講----

????????列表 list

????????字典 dict

????????...

語法

for 變量列表 in 可迭代對象:語句塊1 else:語句塊2

語法說明??

????????else 子句可以省略

????????else 子句的語句塊2 只有在 可迭代對象不再能提供數(shù)據(jù)的時候才會執(zhí)行

????????因?yàn)?語句塊1 部分調(diào)用break 而終止循環(huán)式,else 子句部分不會執(zhí)行

示例

s = 'ABCDE' for ch in s:print('ch=', ch) else:print("遍歷結(jié)束")

?range 函數(shù)

作用

????????用來生成一個能夠得到一系列整數(shù)的可迭代對象(也叫整數(shù)序列生成器)

調(diào)用格式

range(stop) # stop 停止整數(shù) range(start, stop) # start 開始整數(shù) range(start, stop, step) # step 步長

range 函數(shù)調(diào)用會生成從 start 開始,到 stop 結(jié)束(不包含stop) 的一系列整數(shù),整數(shù)的間隔 step

start 默認(rèn)值為0, step 默認(rèn)值為1

示意

range(4) # 生成 0 1 2 3 range(3, 6) # 生成 3 4 5 range(1, 10, 2) # 生成 1 3 5 7 9 range(5, 0, -2) # 生成 5 3 1

示例

>>> for x in range(4): ... print(x) ... 0 1 2 3 >>> for x in range(3, 6): ... print(x) ... 3 4 5 >>> for x in range(1, 10, 2): ... print(x) ... 1 3 5 7 9 >>> for x in range(5, 0, -2): ... print(x) ...

continue 語句

作用

????????用于循環(huán)語句(while 語句和for語句)中, 不再執(zhí)行本次循環(huán)內(nèi) continue 之后的語句,開始一次新的循環(huán)

語法

continue

說明

????????在for 語句中, 執(zhí)行continue 語句,for語句將會從可迭代對象向中獲取下一個元素綁定變量后再次進(jìn)行循環(huán)

????????在while 中,執(zhí)行continue 語句, 將會直接跳轉(zhuǎn)到while 語句的真值表達(dá)式處,重新判斷循環(huán)條件

示例1

for x in range(5):if x % 2 == 0:continueprint(x) # 0 1 2 3 4

示例2

x = 0 while x < 5:print(x)x += 1

None

復(fù)合賦值分隔符

x += y # 等同于 x = x + y x -= y # 等同于 x = x - y x *= y # 等同于 x = x * y x /= y # 等同于 x = x / y x //= y # 等同于 x = x // y x %= y # 等同于 x = x % y ....

容器

列表 list

????????列表是一種可以存儲任意個各種類型的序列容器

????????列表內(nèi)的數(shù)據(jù)有先后順序關(guān)系

????????列表是可變的容器

序列指有序排列

  • python 中默認(rèn)有4種可變的容器

????????列表list

????????字典 dict

????????集合 set

????????字節(jié)數(shù)組 bytearray

  • python 3 中的序列

????????字符串 str

????????列表 list

????????元組 tuple

  • 創(chuàng)建列表的字面值
>>> L = [] # 創(chuàng)建一個空的列表 >>> L = ['北京', '上海', '廣州', '西安'] # 創(chuàng)建一個含有4個字符串的列表 >>> L = [1, 'Two', 3.14, True, False, None] >>> L = [1, 2, [3.1, 3.2], 4] # 含有四個元素的列表,第三個元素是列表 >>> L2 = [['姓名','語文成績','數(shù)學(xué)成績'],['小明', 90, 100],['小新', 59, 26] ]

注: python 中的 (), [], {} 和 三引號字符串都要成對出現(xiàn), 可以換行

  • 創(chuàng)建列表的構(gòu)造函數(shù) list
L = list() # L = [] L = list("ABC") # L = ['A', 'B', 'C'] L = list(range(5)) # L = [0, 1, 2, 3, 4]
  • 列表的運(yùn)算

????????列表list同字符串str都是序列, 他們的運(yùn)算規(guī)則基本相同

+ 用于拼接列表

>>> [1, 2, 3] + [4, 5, 6] # [1, 2, 3, 4, 5, 6]

+= 追加

語法 列表 += 可迭代對象

>>> L = [1, 2, 3] >>> L += [4, 5] # L = [1, 2, 3, 4, 5] >>> L = [1, 2, 3] >>> L += "ABC" # L = [1, 2, 3, 'A', 'B', 'C'] >>> L += range(2)

* 用于生產(chǎn)重復(fù)的列表

>>> [1, 2] * 3 # [1, 2, 1, 2, 1, 2] >>> L = [5, 6] >>> L *= 3 # L = [5, 6, 5, 6, 5, 6]

==? != 用于比較

列表[整數(shù)表達(dá)式] >>> [1, 2, 3] == [1, 2, 3] # True >>> [1, 2, 3] != [3, 2, 1] # True

in /not in 用于判斷一個數(shù)據(jù)元素是否在列表中

>>> "hello" in [1, "hello", 'world'] True >>> '紅樓夢' in ['三國演義', '西游記'] False

索引

列表[整數(shù)表達(dá)式] L = [1, 2, 3, 4, 5, 6] print(L[0]) # 1 print(L[-1]) # 6

切片

列表[(開始索引b):(終止索引e)(: (步長s))]

????????() 里的內(nèi)容代表可以省略

x = [1, 2, 3, 4, 5, 6, 7, 8] y1 = x[:4] # y1 = [1, 2, 3, 4] y2 = x[::2] # y2 = [1, 3, 5, 7] y3 = x[::-1] # y3 = [8, 7, 6, 5, 4, 3, 2, 1]

列表是可變的容器(不同于字符串)

????????列表是可變的

????????字符串是不可變的

>>> L1 = L2 = [1, 2, 3] >>> L1 += [4, 5, 6] # L1 = [1, 2, 3, 4, 5, 6] >>> L2 [1, 2, 3, 4, 5, 6] # 不同于字符串 >>> s1 = s2 = "ABC" >>> s1 += 'DEF' # s1 = 'ABCDEF' >>> s2 'ABC'
  • 列表的數(shù)據(jù)操作(增、刪、改、查)

添加數(shù)據(jù)

????????方法

方法名(L代表列表) 說明 L.append(x) 向列表的末尾追加單個數(shù)據(jù) L.insert(index, obj) 將某個數(shù)據(jù)obj 插入到 index這個索引位置的數(shù)據(jù)之前 L.extend(可迭代對象) 等同于: L += 可迭代對象

示例

mylist1 = [1, 3, 4] # 目標(biāo)是變成 [1, 2, 3, 4, 5] mylist1.append(5) # mylist1 = [1, 3, 4, 5] mylist1.insert(1, 2) # mylist1 = [1, 2, 3, 4, 5] mylist1.extend(range(6, 10)) # mylist1 = [1, 2, 3, 4, 5, 6, 7, 8, 9]

修改數(shù)據(jù)(改)

????????用索引賦值可以改變列表內(nèi)的數(shù)據(jù)

列表[整數(shù)表達(dá)式] = 表達(dá)式

示例

mylist2 = [1, 1.99, 3] # 把1.99 改為2 mylist2[1] = 2 # mylist2 = [1, 2, 3]

刪除數(shù)據(jù)(刪)

方法

方法 說明 L.remove(x) 從列表L中刪除第一次出現(xiàn)在列表中的數(shù)據(jù)元素,如果x不存在則報(bào)錯 L.clear() 清空列表

示例

L = [1, 2, 3, 4, 2, 2, 3, 4] L.remove(3) # L = [1, 2, 4, 2, 2, 3, 4] L.remove(3) # L = [1, 2, 4, 2, 2, 4] L.remove(3) # 報(bào)錯了 L.clear() # L = []
  • del 語句刪除指定位置的數(shù)據(jù)元素

語法

del 變量名 # 刪除變量,同時解除變量綁定的對象 del 列表[整數(shù)表達(dá)式]

示例

L = ['張飛', '趙云', '魯班7號', '孫悟空'] del L[2] # L = ['張飛', '趙云', '孫悟空'] del L # 刪除L 變量

查看(索引取值就是查看)

print(L[0]) # 取值
  • 列表的常用方法
運(yùn)算 結(jié)果 s.index(x[, i[, j]]) x 在 s 中首次出現(xiàn)項(xiàng)的索引號(索引號在 i 或其后且在 j 之前) s.count(x) x 在 s 中出現(xiàn)的總次數(shù) s.append(x) 將 x 添加到序列的末尾 (等同于 s[len(s):len(s)] = [x]) s.clear() 從 s 中移除所有項(xiàng) (等同于 del s[:]) s.copy() 創(chuàng)建 s 的淺拷貝 (等同于 s[:]) s.extend(t) 或 s += t 用 t 的內(nèi)容擴(kuò)展 s (基本上等同于 s[len(s):len(s)] = t) s.insert(i, x) 在由 i 給出的索引位置將 x 插入 s (等同于 s[i:i] = [x]) s.pop([i]) 提取在 i 位置上的項(xiàng),并將其從 s 中移除 s.remove(x) 刪除 s 中第一個 s[i] 等于 x 的項(xiàng)目。 s.reverse() 就地將列表中的元素逆序。 s.sort( key=None, reverse=False) 對列表內(nèi)的數(shù)據(jù)進(jìn)行排序, reverse=False 升序排序,否則是降序排序

示例:

s = [1, "二", 3] value = s.pop(1) # s= [1, 3]; value = '二' >>> s = [1, 2, 3, 5] >>> s.reverse() # 反轉(zhuǎn) >>> s [5, 3, 2, 1] >>> s = [1, 2, 3, 4, 2, 2, 3, 4] >>> s.index(3) # 返回第一次出現(xiàn)的位置的索引 2 >>> s.index(3, 4) 6 >>> s.index(100) # 觸發(fā)異常,要用try 語句處理 Traceback (most recent call last):File "<stdin>", line 1, in <module> ValueError: 100 is not in list >>> s.count(3) # 在列表 s 中 找出所有值為3 的元素的個數(shù),并返回 2 >>> s.count(2) 3 >>> L1 = [2, 4, 6, 8, 9, 1] >>> L1.reverse() >>> L1 [1, 9, 8, 6, 4, 2] >>> s.sort() # 排序,默認(rèn)是升序排序 >>> s [1, 2, 2, 2, 3, 3, 4, 4] >>> s.sort(reverse=True) >>> s [4, 4, 3, 3, 2, 2, 2, 1]
  • ?列表解析(也叫列表推導(dǎo)式)

作用

????????用簡單的表達(dá)式方式來創(chuàng)建列表

語法規(guī)則

[ 表達(dá)式 for 自定義變量 in 可迭代對象 ] # 或 [ 表達(dá)式 for 自定義變量 in 可迭代對象 if 真值表達(dá)式 ]

示例

生成一個列表, 里面有 100 個數(shù)是[1, 4, 9, 16, 25, ...] # 用 for 語句實(shí)現(xiàn) L = [] for x in range(1, 101):L.append(x ** 2) print(L)# 用列表推導(dǎo)式 L2 = [ x ** 2 for x in range(1, 101)] print(L2)L3 = [ x ** 2 for x in range(1, 101) if x % 2 == 0] # 取出所有的偶數(shù) # L3 = [4, 16, 36, ...]

python3 中常用于序列的函數(shù)

運(yùn)算 結(jié)果 len(s) s 的長度 min(s) s 的最小項(xiàng) max(s) s 的最大項(xiàng) # 課間休息: 11:11 回來 sum(s) 求 s內(nèi)所有數(shù)字的和(不允許有其他數(shù)據(jù)) >>> L = [1, 5, 8] >>> len(L) 3 >>> min(L) 1 >>> max(L) 8 >>> sum(L) 14

元組 tuple

元組是不可改變的列表, 同 列表list 一樣,元組可以存放任意類型的數(shù)據(jù),但是,一旦創(chuàng)建將不可修改

  • 創(chuàng)建元組的字面值

????????用小括號() 括起來,單個元素括起來后加逗號來區(qū)分單個元素還是元組

t = () # 空元組 t = (100,) # 含有一個數(shù)據(jù)元素的元組 t = 100, # 含有一個數(shù)據(jù)元素的元組 t = (1, 2, 3) # 含有三個數(shù)據(jù)元素的元組 t = 1, 2, 3 # 含有三個數(shù)據(jù)元素的元組

????????type(x) 函數(shù)用來返回?cái)?shù)據(jù)x的類型

  • 創(chuàng)建元組的函數(shù) tuple
t = tuple() # t = () t = tuple(range(5)) # t = (0, 1, 2, 3, 4)
  • tuple 的運(yùn)算

????????tuple 是序列的一種, 同列表的運(yùn)算,但是不可以修改元組

>>> t = (1, 2, 3) + (4, 5, 6) >>> t += (7, 8, 9) >>> t = t * 2 >>> t *= 2 >>> 5 in t True >>> t[0] 1 >>> t[0:2] (1, 2)
  • 元組的方法
運(yùn)算 結(jié)果 s.index(x[, i[, j]]) x 在 s 中首次出現(xiàn)項(xiàng)的索引號(索引號在 i 或其后且在 j 之前) s.count(x) x 在 s 中出現(xiàn)的總次數(shù)

容器都是可迭代對象, 可以用for 語句來遍歷容器

for x in [1, 2, 3]:print(x)for y in (1, 2, 3):print(y)
  • 列表和元組的 +和 += 運(yùn)算
# 列表(可變) >>> L1 = [1, 2, 3] + [4, 5, 6] >>> L2 = L1 # 兩個變量同時綁定同一個列表 >>> L2 += [7, 8, 9] >>> print(L1) # [1, 2, 3, 4, 5, 6, 7, 8, 9] >>> print(L2) # [1, 2, 3, 4, 5, 6, 7, 8, 9] # 元組(不可變) >>> T1 = (1, 2, 3) + (4, 5, 6) >>> T2 = T1 # 兩個變量同時綁定同一個元組 >>> T2 += (7, 8, 9) >>> print(T1) # (1,2, 3, 4, 5, 6) >>> print(T2) # (1, 2, 3, 4, 5, 6, 7, 8, 9)

字典 dict

  • 什么是字典

??????? -字典是一種可變的容器,可以存儲任意類型的數(shù)據(jù)

??????? -字典的數(shù)據(jù)都是以鍵(key)-值(value)對的形式進(jìn)行映射存儲.

??????? -字典的數(shù)據(jù)是無序的

??????? -字典的鍵不能重復(fù),且之能用不可變類型作為字典的鍵

??????? -字典中的數(shù)據(jù)只能用"鍵"key 進(jìn)行索引,不能用整數(shù)進(jìn)行索引

  • 創(chuàng)建字典的字面值:

字典的表示方式以? {} 括起來, 以英文的冒號 (:) 分隔鍵值對,各鍵值對之間用逗號(,)分隔

d = {} # 創(chuàng)建空字典 d = {'name': "weimingze", "age": 35} d = {'a': [1, 2, 3]} d = {'b': {"bb": 222}} d = {1:'壹', 2:'貳', 5:'伍'} d = {(1, 2, 3):'壹貳伍'}
  • 以下寫法會存在問題
d = {'a': 1, 'b': 2, 'a': 3} # 字典的鍵不能重復(fù) d = {'a': 3, 'b': 2} d = {[1, 2, 3]: 'a'} # 不能用可變類型作為字典的鍵 # 報(bào)錯
  • dict 的創(chuàng)建函數(shù) dict
d = dict() # d = {} d = dict([("name", "小明"), ("age", 35)]) # {'name': '小明', 'age': 35} d = dict(a=1, b=2, c=3) # {'a':1, 'b':2, 'c':3} d = dict([1, 2, 3, 4]) # 錯

注: python 中有四種可變類型

????????列表 list

????????字典dict

????????集合 set

????????字節(jié)數(shù)組 bytearray

persons = [{'name': 'weimz', 'age': 35},{'name': '小張', 'age': 18}, ]
  • 字典的鍵索引

語法

字典[鍵key]

用鍵索引可以查看字典中的數(shù)據(jù)

示例:

d = {'one': 1, 'two': 2} print(d['two'])
  • 添加和修改字典的元素

語法

字典[鍵key] = 表達(dá)式

????????鍵不存在, 會創(chuàng)建鍵并綁定鍵對應(yīng)的值

????????鍵存在, 會改變鍵對應(yīng)的值

示例:

d = {} d['name'] = 'tarena' # 添加鍵值對 d = {'name': 'tarena'} d['age'] = 18 # d = {'name': 'tarena', 'age': 18} d['age'] = 19 # 改變 'age' 鍵對應(yīng)的值 d = {'name': 'tarena', 'age': 19}
  • 刪除 字典的元素

語法‘

del 字典[鍵]

示例:

>>> d = dict(a=1, b=2) # d = {'a': 1, 'b': 2} >>> del d['a'] >>> d {'b': 2}
  • in / not in? 運(yùn)算符

?????????in 可以判斷一個鍵是否存在于字典中,如果存在返回 True, 否則返回 False

?????????not in 與 in? 相反

示例

>>> d = dict(a=1, b=2) # d = {'a': 1, 'b': 2} >>> 'a' in d True >>> 1 in d False >>> 'hello' not in d True
  • 字典是可迭代對象, 字典只能對所有的鍵進(jìn)行迭代訪問
>>> d = {'name': 'tarena', 'age': 19} >>> for k in d: ... print(k) ... name age >>> for k in d: ... print("key=", k, 'value=', d[k]) ... key= name value= tarena key= age value= 19
  • 字典的常用方法
方法D代表字典 說明D D.clear() 清空字典 D.copy() 復(fù)制 D.get(key[, default]) 如果 key 存在于字典中則返回 key 的值,否則返回 default。 如果 default 未給出則默認(rèn)為 None,因而此方法絕不會引發(fā) KeyError。 D.pop(key) 移除鍵, 同時返回鍵對應(yīng)的值

示例

>>> d = {'name': 'tarena', 'age': 19} >>> >>> d['age'] 19 >>> d['address'] Traceback (most recent call last):File "<stdin>", line 1, in <module> KeyError: 'address' >>> d.get('address', '未填寫住址') '未填寫住址' >>> d.get('age', 0) 19 >>> n = d.pop('name') >>> d { 'age': 19} >>> n 'tarena'

列表、元組、字典小結(jié)

列表和元組是有序的,字典的存儲是無序的

列表、字典是可變的,元組是不可變的

字典的鍵索引速度快,列表的整數(shù)索引速度快

列表和元組是順序存儲的,字典是散列存儲的

d = {'a':1, 'b':2, .........} print(d['c']) # 速度快 L = [7, 5, 1, ........] print(L[10009]) # 速度快

字典的 in / not in 運(yùn)算符快于 列表的 in / not in 運(yùn)算符

L = ['孫悟空', '趙云', '呂布', ...] if '王昭君' in L: # 速度慢pass D = {'孫悟空':'花果山', '趙云':'長山', '呂布':'石家莊', .....} if '王昭君' in D: # 速度快pass

集合 set/ 固定集合 frozenset

????????集合是可變的容器,固定集合是不可變的集合

????????集合相當(dāng)于只有鍵沒有值的字典

????????集合是無序的存儲結(jié)構(gòu)

????????集合內(nèi)的數(shù)據(jù)都是唯一的,不可變

  • 創(chuàng)建集合的方式

????????空集合 set()

????????非空集合 用 {} 括起來,值用逗號分隔開

s = set() # 用函數(shù)空集合 s = {1, 2, 3, 4} # 創(chuàng)建非空集合的字面值 s = set(range(5)) # 調(diào)用 set(可迭代對象) 來創(chuàng)建集合 s = {0, 1, 2, 3, 4} s = set("ABC") # s = {'B', 'C', 'A'} s = set("ABCCCCCCC") # s = {'B', 'C', 'A'} s = set(['ABC']) # s = {'ABC'}
  • 創(chuàng)建固定集合frozensets的方式
fs = frozenset() # 空固定集合 fs = frozenset() fs = frozenset([1, 2, 3]) # fs = frozenset({1, 2, 3})

集合和固定集合的運(yùn)算

  • in/ not in 運(yùn)算符 與列表相同
  • 其他運(yùn)算
& 交集 | 并集 - 補(bǔ)集 ^ 對稱補(bǔ)集 < 子集 > 超集

示例

s1 = {1, 2, 3} s2 = {2, 3, 4} s3 = s1 & s2 # s3 = {2, 3} # 交集 s4 = s1 | s2 # s4 = {1, 2, 3, 4 } 并集 s5 = s1 - s2 # s5 = {1} 補(bǔ)集 s6 = s1 ^ s2 # s6 = {1, 4} # 對稱補(bǔ)集 s7 = {1, 2} < {1, 2, 3} # s7 = True s8 = {1, 2} > {1, 2, 3} # s8 = False s9 = {4, 5, 6, 7} > {5, 6} # {4, 5, 6, 7} 是 {5, 6} 的超集
  • 集合set的方法
方法 說明 S.add(e) 添加e S.remove(e) 刪除e S.clear() 清空集合 S.pop() 移除一個并返回,如果集合為空則觸發(fā)ValueError

容器總結(jié)

  • 可變和不可變

????????????????可變的容器

list dict set bytearray(字節(jié)數(shù)組)

????????????????不可變得容器

tuple, frozenset, bytes(字節(jié)串)
  • 序和亂序

????????????????有序

list tuple bytes bytearray

????????????????無序

dict set frozenset

總結(jié)

以上是生活随笔為你收集整理的《《python基础》》的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。