黑馬程序員python教程,8天python從入門到精通,學(xué)python看這套就

從開始到元組基本操作的筆記,包括所有代碼和運行結(jié)果(都是自己在pycharm上運行過的)
win+r打開運行框(輸入cmd)
ctrl+a全選
ctrl+f搜索
ctrl+c\v\x復(fù)制、粘貼、剪切
ctrl+d復(fù)制當(dāng)前行代碼
ctrl+shift+上下 將當(dāng)前行代碼上下移
ctrl+shift+f10運行當(dāng)前代碼
ctrl+shift+s截圖
python解釋器運行文件 文本格式
\
eg. test.py
python "C:\Users\86198\Desktop\test.py.txt"
字面量==常量(C++)
單行注釋#
多行注釋"""..."""
變量
定義?變量名=變量值
print( , , ,..., )輸出多個內(nèi)容
type()查看數(shù)據(jù)類型,有返回值
變量可以存儲類型信息(即type()的返回值)
print(type(11))
\
float_type = type(11.345)
print(float_type)
\
name = "哦莫"
name_type = type(name)
print(name_type)
運行結(jié)果:
<class 'int'>
<class 'float'>
<class 'str'>
數(shù)據(jù)類型轉(zhuǎn)換,有返回值
int(x)
float(x)
str(x)
\
浮點數(shù)轉(zhuǎn)整型數(shù)會丟失小數(shù)精度
True,False,None是關(guān)鍵字
變量命名規(guī)范?
1.見名知意 ??
2.單詞用下劃線分隔
3.英文字母全小寫
\
eg.score_maths
算數(shù)運算符
+-*/
//??整除
%???取余
**??指數(shù)
復(fù)合賦值運算符
+=
-=
/
%=
**=
//=
字符串定義的三種方法
1.單引號定義法 name = '哦莫'
2.雙引號定義法 name = "哦莫"
3.三雙引號定義法 name = """哦莫"""
\
三雙引號定義法支持換行操作
字符串的引號嵌套
1.單引號內(nèi)嵌雙引號
2.雙引號內(nèi)嵌單引號
3.使用轉(zhuǎn)移字符(\)來將引號接除效用,變成普通字符串
eg.
name = "\"哦莫"
print(name)
\
運行結(jié)果
“哦莫
字符串拼接
1.字面量和字面量,變量和變量,字面量和變量拼接用"+"
eg.print("om"+"wsxx")
\
運行結(jié)果
omwsxx
(與逗號輸出多個內(nèi)容的區(qū)別:逗號隔開的多個內(nèi)容輸出時有空格,拼接后形成一個整體沒有空格)
(只能是字符串類型之間的拼接,非字符串類型如整型和浮點型需要轉(zhuǎn)換后才能拼接)
2.字符串格式化,占位拼接(類似c++的格式化輸出)
%s 將內(nèi)容轉(zhuǎn)換為字符串,放入占位位置
%d 將內(nèi)容轉(zhuǎn)換為整數(shù),放入占位位置
%f 將內(nèi)容轉(zhuǎn)換為浮點型,放入占位位置
eg.
name = "字節(jié)跳動“
set_up_year = 2013
stock_price = 19.99
message = "我是:%s,我成立于:%d,我今天的股價是:%f" %(name,set_up_year,stock_price)
print(message)
\
運行結(jié)果
我是:字節(jié)跳動,我成立于:2013,我今天的股價是:19.990000
print("我是:%s,我成立于:%d,我今天的股價是:%f"%(name,set_up_year,stock_price))
\
運行結(jié)果
我是:字節(jié)跳動,我成立于:2013,我今天的股價是:19.990000
3.字符串格式化快速寫法
f"內(nèi)容{變量}"(format格式化)
\
name = "字節(jié)跳動“
set_up_year = 2013
stock_price = 19.99
print(f"我是{name},我成立于:{set_up_year},我今天股票的價格是:{stock_price}")
\
運行結(jié)果
我是字節(jié)跳動,我成立于:2013,我今天股票的價格是:19.99(沒有精度控制)
格式化的精度控制
輔助符號"m.n"
m控制寬度,設(shè)置寬度小于數(shù)字自身,不生效
n控制小數(shù)點精度會進行小數(shù)的四舍五入
eg.
%5d?
11->[space][space][space]11
\
%.2f
11.345->11.35
\
%7.2f
11.345->[space][space]11.35
補:表達式格式化
print("1*1的結(jié)果是:%d" %(1*1))
print("字符串在python中的類型名是:%s" %s type("字符串"))
數(shù)據(jù)輸入input()(默認輸入數(shù)據(jù)類型是字符串)
name = input()
提示語句可以在括號內(nèi)
eg.?
name = input("Who are you?")
print("wow,%s is a nice name." %name)
布爾類型和比較運算符
eg.
result = 10>5
print(f"10>5的結(jié)果是:{result},類型是:{type(result)}")
\
運行結(jié)果
10>5的結(jié)果是:True,類型是:<class 'bool'>
\
==
!=
>
<
>=
<=
if語句
if 要判斷的條件:
??條件成立時,要做的事情
(四格縮進判斷歸屬)
if else語句
if 要判斷的條件:
??條件成立時,要做的事情
else:
??條件不成立時,要做的事情
if_elif_else語句
if 條件1:
??條件1成立時,要做的事情
elif 條件2:
??條件2成立時,要做的事情
??......
elif 條件N:
??條件N成立時,要做的事情
else:
??所有條件都不滿足時,要做的事情
eg.
num = 10
if int(input("請輸入第一次猜想的數(shù)字:")) != 10:
??if int(input("不對,再猜一次:")) != 10:
????if int(input("不對,再猜最后一次:"))!=10:
??????print("全都猜錯啦,我想的是:10")
????else:
??????print("恭喜你猜對啦")
????else:
????print("恭喜你猜對啦")
else:
??print("恭喜你猜對啦")
\判斷語句的嵌套,注意縮進
eg.
num = 10
if int(input("請輸入第一次猜想的數(shù)字:")) == 10:
???print("恭喜你猜對啦")
elif int(input("不對,再猜一次:")) == 10:
???print("恭喜你猜對啦")
elif int(input("不對,再猜最后一次:"))==10:
???print("恭喜你猜對啦")
else:
??print("全都猜錯啦,我想的是:10")
\
語句從上至下執(zhí)行
import random
num = random.randint(1, 10)
guess_num = int(input("Please input your number:"))
if guess_num == num:
??print("very good")
else:
??if guess_num > num:
????print("less")
??else:
????print("more")
??guess_num = int(input("Please input once more"))
??if guess_num == num:
????print("good")
??else:
????if guess_num > num:
??????print("less")
????else:
??????print("more")
????guess_num = int(input("Please input once more"))
????if guess_num == num:
??????print("well done")
????else:
??????if guess_num > num:
????????print("less")
??????else:
????????print("more")
??????print("No chance")
??????print(num)
循環(huán)語句while
while 條件:
??...
??...
??...
\
eg.
i = 0
while i < 100:
??print("小美,我喜歡你")
????i += 1
\
eg.
i = 0
sum = 0
while i < 100:
??i += 1
??sum += i
print(sum)
\
eg.
import random
num = random.randint(1,100)
flag = True
while flag:
??guess_num = int(input("please input your num"))
??if guess_num == num:
????print("good")
????flag = False
??else:
????if guess_num > num:
??????print("less")
????else:
??????print("more")
while的嵌套
eg.舔狗的故事
i = 0
while i < 100:
??print(f"今天是第{i}天,準備表白......")
??j = 1
??while j < 10:
????j += 1
????print(f"送給小美第{j}支玫瑰花")
??print("小美,我喜歡你")
??i += 1
print(f"堅持到第{i}天,表白成功")
\
eg.打印九九乘法表
補充:print不換行
print("hello",end='')
print("world",end='')
運行結(jié)果
helloworld
\
i = 1
j = 1
flag = True
while flag:
??while j <= 9:
????print(i,"*",j,"=",i*j)
????if(i == 9 & j == 9):
??????flag = False
????j += 1
??i += 1
??j = i
#一式一行版
eg.打印九九乘法表
i = 1
j = 1
flag = True
while flag:
??while i <= j:
????if i == j:
??????print(i,"*",j,"=",i*j," ")
????else:
??????print(i,"*",j,"=",i*j," ",end='')
????if(i == 9 & j == 9):
??????flag = False
????i += 1
??j += 1
??i = 1
\
每層i 1->j j++?
終止條件 i == j
完全終止條件 i == j == 9
判斷后進行換行
\?
運行結(jié)果
1 * 1 = 1??
1 * 2 = 2?2 * 2 = 4??
1 * 3 = 3?2 * 3 = 6?3 * 3 = 9??
1 * 4 = 4?2 * 4 = 8?3 * 4 = 12?4 * 4 = 16??
1 * 5 = 5?2 * 5 = 10?3 * 5 = 15?4 * 5 = 20?5 * 5 = 25??
1 * 6 = 6?2 * 6 = 12?3 * 6 = 18?4 * 6 = 24?5 * 6 = 30?6 * 6 = 36??
1 * 7 = 7?2 * 7 = 14?3 * 7 = 21?4 * 7 = 28?5 * 7 = 35?6 * 7 = 42?7 * 7 = 49??
1 * 8 = 8?2 * 8 = 16?3 * 8 = 24?4 * 8 = 32?5 * 8 = 40?6 * 8 = 48?7 * 8 = 56?8 * 8 = 64??
1 * 9 = 9?2 * 9 = 18?3 * 9 = 27?4 * 9 = 36?5 * 9 = 45?6 * 9 = 54?7 * 9 = 63?8 * 9 = 72?9 * 9 = 81??
eg. 九九乘法表
\
制表符對齊換行法
\
i = 1
j = 1
flag = True
while flag:
??while i <= j:
????print(i,"*",j,"=",i*j," ",'\t',end='')
????if(i == 9 & j == 9):
??????flag = False
????i += 1
??print()#實現(xiàn)換行
??j += 1
??i = 1
\
運行結(jié)果
1 * 1 = 1??
1 * 2 = 2?? 2 * 2 = 4??
1 * 3 = 3?? 2 * 3 = 6?? 3 * 3 = 9??
1 * 4 = 4?? 2 * 4 = 8?? 3 * 4 = 12?? 4 * 4 = 16??
1 * 5 = 5?? 2 * 5 = 10?? 3 * 5 = 15?? 4 * 5 = 20?? 5 * 5 = 25??
1 * 6 = 6?? 2 * 6 = 12?? 3 * 6 = 18?? 4 * 6 = 24?? 5 * 6 = 30?? 6 * 6 = 36??
1 * 7 = 7?? 2 * 7 = 14?? 3 * 7 = 21?? 4 * 7 = 28?? 5 * 7 = 35?? 6 * 7 = 42?? 7 * 7 = 49??
1 * 8 = 8?? 2 * 8 = 16?? 3 * 8 = 24?? 4 * 8 = 32?? 5 * 8 = 40?? 6 * 8 = 48?? 7 * 8 = 56?? 8 * 8 = 64??
1 * 9 = 9?? 2 * 9 = 18?? 3 * 9 = 27?? 4 * 9 = 36?? 5 * 9 = 45?? 6 * 9 = 54?? 7 * 9 = 63?? 8 * 9 = 72?? 9 * 9 = 81??
#制表符應(yīng)用
print("hello world")
print("om xiao")
print("hello\t\tworld")
print("ommmmmmm\txiao")
#\t代替空格,等效于按下tab鍵,如果無法對齊,可以試著多打一個制表符
\
運行結(jié)果
hello world
om xiao
hello world
ommmmmmm xiao
for循環(huán)
#遍歷字符串
name = "omwsxx"
for x in name:
??print(x)
\區(qū)別于c++,for循環(huán)無法定義循環(huán)條件,無法構(gòu)建無限循環(huán)
#語法
for 臨時變量 in 待處理數(shù)據(jù)集(序列類型,即內(nèi)容可以一個個依次取出的一種類型,包括字符串,列表,元組):
??循環(huán)滿足條件時執(zhí)行的代碼
#eg.字符數(shù)統(tǒng)計
cnt=0
name = "itheima is a brand of itcast"
for x in name:
??if x == 'a':
????cnt += 1
print(cnt)
\
運行結(jié)果
4
range語句
#range(num)
range(5)
(0,1,2,3,4)
\
#range(num1,num2)
range(5,10)
(5,6,7,8,9)
\
#range(num1,num2,step)
range(5,10,2)
(5,7,9)
eg.
for x in range(10):
??print(x)
運行結(jié)果
0
1
2
3
4
5
6
7
8
9
eg.
cnt = 0
for x in range(1, 100):
??if x % 2 == 0:
????cnt += 1
print(cnt)
\統(tǒng)計偶數(shù)個數(shù)
運行結(jié)果
49
(這里不能用//?
//得到的是商!只有1整除2商0,求余得到的才是余數(shù))
\
p.s.作用域
for i in range(5)
??print(i)
print(i)#i是for循環(huán)內(nèi)部變量,在外面理論上報錯,實際上可以運行
for循環(huán)嵌套
eg.舔狗日記plus版
for i in range(1 ,101):
??print(f"今天是向小美表白的第{i}天")
??for j in range(1,11):
????print(f"向小美送第{j}朵玫瑰花")
print("哦耶哦耶表白成功")
eg.九九乘法表
for j in range(1,10):
??for i in range(1,j+1):
????print(f"{i}*{j}={i*j}\t",end='')
??print()
\
運行結(jié)果
1*1=1
1*2=2 2*2=4
1*3=3 2*3=6 3*3=9
1*4=4 2*4=8 3*4=12 4*4=16
1*5=5 2*5=10 3*5=15 4*5=20 5*5=25
1*6=6 2*6=12 3*6=18 4*6=24 5*6=30 6*6=36
1*7=7 2*7=14 3*7=21 4*7=28 5*7=35 6*7=42 7*7=49
1*8=8 2*8=16 3*8=24 4*8=32 5*8=40 6*8=48 7*8=56 8*8=64
1*9=9 2*9=18 3*9=27 4*9=36 5*9=45 6*9=54 7*9=63 8*9=72 9*9=81
#continue跳過當(dāng)前循環(huán)
#break終止循環(huán)
eg.
for i in range(1,3):
??print("語句1")
??for j in range(1,3):
????print("語句2")
????continue
????print("語句3")#不執(zhí)行
??print("語句4")
\
運行結(jié)果
語句1
語句2
語句2
語句4
語句1
語句2
語句2
語句4
eg.
for i in range(1,6):
??print("語句1")
??for j in range(1,6):
????print("語句2")
????break
????print("語句3")#內(nèi)層循環(huán)終止
??print("語句4")
\
運行結(jié)果
語句1
語句2
語句4
語句1
語句2
語句4
語句1
語句2
語句4
語句1
語句2
語句4
語句1
語句2
語句4
eg.黑心資本家
import random
sum = 10000
for x in range(1,21):
??score = random.randint(1,10)
??if score < 5:
????print(f"員工{x},績效分{score},低于5,不發(fā)工資")
??else:
????sum -= 1000
????print(f"向員工{x}發(fā)放工資1000元,賬戶余額{sum}元")
??if sum == 0:
????print("這個月工資發(fā)完了,下個月再來領(lǐng)取吧")
????break
\
運行結(jié)果
向員工1發(fā)放工資1000元,賬戶余額9000元
向員工2發(fā)放工資1000元,賬戶余額8000元
員工3,績效分4,低于5,不發(fā)工資
向員工4發(fā)放工資1000元,賬戶余額7000元
向員工5發(fā)放工資1000元,賬戶余額6000元
員工6,績效分2,低于5,不發(fā)工資
向員工7發(fā)放工資1000元,賬戶余額5000元
員工8,績效分1,低于5,不發(fā)工資
向員工9發(fā)放工資1000元,賬戶余額4000元
向員工10發(fā)放工資1000元,賬戶余額3000元
員工11,績效分4,低于5,不發(fā)工資
員工12,績效分2,低于5,不發(fā)工資
員工13,績效分3,低于5,不發(fā)工資
向員工14發(fā)放工資1000元,賬戶余額2000元
員工15,績效分3,低于5,不發(fā)工資
向員工16發(fā)放工資1000元,賬戶余額1000元
向員工17發(fā)放工資1000元,賬戶余額0元
這個月工資發(fā)完了,下個月再來領(lǐng)取吧
函數(shù)
#組織好的,可重復(fù)使用的,用來實現(xiàn)特定功能的代碼段
eg.統(tǒng)計字符串長度
def my_len(_str):
??cnt = 0
??for x in _str:
????cnt += 1
??print(cnt)
my_len("omwsxx")
\
運行結(jié)果
6
#函數(shù)定義格式
def 函數(shù)名(傳入?yún)?shù))
??函數(shù)體
??return 返回值
(函數(shù)在遇到return之后就結(jié)束了)
\
#函數(shù)調(diào)用格式
函數(shù)名(參數(shù))
eg.有返回值加法函數(shù)
def my_add(x, y):
??result = x + y
??return result
print(my_add(2,3))
\
(注意用變量接收或者輸出,僅函數(shù)調(diào)用不能作為一條完整的語句)
運行結(jié)果
5
#函數(shù)返回值None類型
None 類型是<class 'NoneType'>
無返回值的函數(shù)實際上返回了None
eg.
def say_hi():
??print("hello")
result = say_hi()
print(result)
print(type(result))
\
運行結(jié)果?
hello
None
<class 'NoneType'>
#None在if判斷上等同于False
#None在定義變量上暫不賦予具體值時可以用None來代替
#函數(shù)說明文檔
多行注釋解釋函數(shù)
#函數(shù)的嵌套調(diào)用
#變量在函數(shù)中的作用域
全局變量,局部變量
global關(guān)鍵字聲明全局變量
eg.
num = 100
def test_a():
??num = 200
??print(num)
test_a()
print(num)
def test_b():
??global num
??num = 200
??print(num)
test_b()
print(num)
\
運行結(jié)果
200
100
200
200
eg.Jay Choe的存款
money = 5000000
name = None
switch = None
flag = True
def home_back():
??global switch
??print("""Hello,how can I help you?You can choose from 1~3.1 stands for money-checking,2 stands for money-putting-in,3 stands for money-getting-out,4 stands for exiting""")
??switch = int(input())
def check_money():
??global money
??print(f"您好,您當(dāng)前的余額是{money}元")
??home_back()
def put_in():
??global money
??money += int(input("您好,請問您需要存入的錢款是多少元"))
??check_money()
def get_out():
??global money
??money -= int(input("您好,請問您需要提出的錢款是多少元"))
??check_money()
home_back()
while flag:
??if switch == 1:
????check_money()
??elif switch == 2:
????put_in()
??elif switch == 3:
????get_out()
??else:
????flag = False
\
測試集
1
2
5000
3
5000
4
\
運行結(jié)果
C:\pythonProject\pythonProject1\venv\Scripts\python.exe C:\pythonProject\pythonProject1\main.py?
Hello,how can I help you?You can choose from 1~3.1 stands for money-checking,2 stands for money-putting-in,3 stands for money-getting-out,4 stands for exiting
1
您好,您當(dāng)前的余額是5000000元
Hello,how can I help you?You can choose from 1~3.1 stands for money-checking,2 stands for money-putting-in,3 stands for money-getting-out,4 stands for exiting
2
您好,請問您需要存入的錢款是多少元5000
操作成功,當(dāng)前余額5005000元
Hello,how can I help you?You can choose from 1~3.1 stands for money-checking,2 stands for money-putting-in,3 stands for money-getting-out,4 stands for exiting
3
您好,請問您需要提出的錢款是多少元5000
操作成功,當(dāng)前余額5000000元
Hello,how can I help you?You can choose from 1~3.1 stands for money-checking,2 stands for money-putting-in,3 stands for money-getting-out,4 stands for exiting
4
Process finished with exit code 0
數(shù)據(jù)容器(即數(shù)據(jù)結(jié)構(gòu))
一個變量可以記錄一組數(shù)據(jù)
name_list = ['張三','李四','王五','趙六']
列表list、元組tuple、字符串str、集合set、字典dict
#列表
(元素可以是不同類型的數(shù)據(jù))
定義變量
變量名 = [元素1,元素2,元素3,...]
\
定義空列表
變量名稱 = []
變量名稱 = list()
eg.列表元素可以數(shù)據(jù)類型不同
my_list = ['omwsxx',True,666]
print(my_list)
print(type(my_list))
\
運行結(jié)果
['omwsxx', True, 666]
<class 'list'>
eg.嵌套列表
my_list = [['omwsxx',True,666],[666,666,999]]
print(my_list)
print(type(my_list))
\
運行結(jié)果
[['omwsxx', True, 666], [666, 666, 999]]
<class 'list'>
#列表的下標(biāo)索引
eg.正向索引
my_list = [666,"omwsxx",True]
print(my_list[0])
print(my_list[1])
print(my_list[2])
\
運行結(jié)果
666
omwsxx
True
eg.反向索引
my_list = [666,"omwsxx",True]
print(my_list[-1])
print(my_list[-2])
print(my_list[-3])
\
運行結(jié)果
True
omwsxx
666
#列表的常用操作
定義
使用下標(biāo)索引獲取值
插入
刪除
清空
修改
統(tǒng)計
eg.1抽象類錯誤使用
class Student:
??def my_add(a, b):
????result = a + b
????return result
student = Student()###
result = student.my_add(3,5)
print(result)
\
運行結(jié)果
C:\pythonProject\pythonProject1\venv\Scripts\python.exe C:\pythonProject\pythonProject1\main.py?
Traceback (most recent call last):
?File "C:\pythonProject\pythonProject1\main.py", line 6, in <module>
??result = student.my_add(3,5)
???????^^^^^^^^^^^^^^^^^^^
TypeError: Student.my_add() takes 2 positional arguments but 3 were given
Process finished with exit code 1
eg.2正確結(jié)果是直接使用抽象類
class Student:
??def my_add(a,b):
????result = a + b
????return result
print(Student.my_add(2,3))
\
運行結(jié)果
5
eg.3抽象類重命名后使用
class Student:
??def my_add(a,b):
????result = a + b
????return result
student = Student
print(student.my_add(2,3))
\
運行結(jié)果
5
#查找某元素下標(biāo)
語法:
列表.index(元素)
index是列表對象內(nèi)置函數(shù),有返回值
#修改特定位置元素值
語法:
列表[下標(biāo)]=值
#插入元素
語法:
列表.insert(插入位置序號(從0開始),插入元素)
insert是列表對象內(nèi)置函數(shù)
eg.列表插入
my_list = ["itheima",666,"omwsxx"]
my_list.insert(1,"999")###插在1號位(序號從0開始)
print(my_list)
\
運行結(jié)果
['itheima', '999', 666, 'omwsxx']
#追加一個元素
語法:
列表.append(元素)
將指定元素追加到列表尾部,無返回值
eg.列表追加一個元素
my_list = ["itheima",666,"omwsxx"]
my_list.append("999")
print(my_list)
\
運行結(jié)果
['itheima', 666, 'omwsxx', '999']
#追加多個元素
語法:
列表.extend(其他數(shù)據(jù)容器(集)),無返回值
eg.列表追加一個數(shù)據(jù)集
my_list = ["itheima",666,"omwsxx"]
my_list.extend([2,3,4])
print(my_list)
\或
my_list = ["itheima",666,"omwsxx"]
my_list2 = [2,3,4]
my_list.extend(my_list2)
print(my_list)
\
運行結(jié)果
['itheima', 666, 'omwsxx', 2, 3, 4]
#刪除元素
語法:
1.del 列表[下標(biāo)]無返回值
2.列表.pop(下標(biāo))有返回值
eg.刪除元素
my_list = ["itheima",666,"omwsxx"]
my_list.pop(0)
print(my_list)
del my_list[0]
print(my_list)
\
運行結(jié)果
[666, 'omwsxx']
['omwsxx']
#刪除某元素在列表中的第一個匹配項
語法:
列表.remove(元素)
eg.
my_list = ["itheima",666,"omwsxx",666]
my_list.remove(666)
print(my_list)
\
運行結(jié)果
['itheima', 'omwsxx', 666]
#清空列表內(nèi)容
語法:
列表.clear()
eg.
my_list = ["itheima",666,"omwsxx",666]
my_list.clear()
print(my_list)
\
運行結(jié)果
[]
#統(tǒng)計某元素在列表中的數(shù)量
語法:
列表.count(元素),有返回值
eg.
my_list = ["itheima",666,"omwsxx",666]
cnt = my_list.count(666)
print(cnt)
\
運行結(jié)果?
2
#統(tǒng)計列表內(nèi)有多少元素(非內(nèi)置函數(shù),有返回值)
語法:
len(列表)
eg.
my_list = ["itheima",666,"omwsxx",666]
print(len(my_list))
\
運行結(jié)果
4
#列表特點
可容納多個元素(上限為2**63-1)
可以容納不同類型的元素(混裝)
數(shù)據(jù)是有序存儲的(下標(biāo))
允許重復(fù)數(shù)據(jù)存在
可以修改(增加或者刪除元素等)
eg.練習(xí)
my_list = [21,25,21,23,22,20]
my_list.append(31)
my_list.extend([29,33,30])
print(my_list.pop(0))
print(my_list.pop(-1))
print(my_list.index(31))
\
運行結(jié)果?
21
30
5
#遍歷列表元素
my_list = [21,25,21,23,22,20]
index = 0
for index in range(0, len(my_list)):
??print(my_list[index])
\
運行結(jié)果
21
25
21
23
22
20
元組
#唯一與list 不同的是,元組定義完成后不可修改,常常用于數(shù)據(jù)的封裝
定義:使用小括號(),列表定義使用[]
變量名 = ()
變量名 = tuple()
#當(dāng)元組只有一個數(shù)據(jù),這個數(shù)據(jù)后面必須帶逗號,否則不是元組類型
eg.
my_tuple = (666,)
my_tuple_ = (666)
print(type(my_tuple))
print(type(my_tuple_))
\
運行結(jié)果
<class 'tuple'>
<class 'int'>
#元組可以嵌套元組
eg.
my_tuple = ((666,),(666,),666)
print(my_tuple)
\
運行結(jié)果
((666,), (666,), 666)
#元組支持的操作
index()
count()
len(元組)
循環(huán)遍歷
###元組里嵌套的list可以修改###6
eg.
my_tuple = ("omwsxx",["itheima","itcast"])
print(my_tuple)
my_tuple[1][0] = "hahaha"
my_tuple[1][1] = "hohoho"
print(my_tuple)
\
運行結(jié)果
('omwsxx', ['itheima', 'itcast'])
('omwsxx', ['hahaha', 'hohoho'])
eg.小練習(xí)
my_tuple = ("wx",11,['football','music'])
print(my_tuple.index(11))
print(my_tuple[0])
del my_tuple[2][0]
my_tuple[2].append('coding')
print(my_tuple)
\
運行結(jié)果
1
wx
('wx', 11, ['music', 'coding'])