python基礎知識-04-字符串列表元組

 

python其餘知識目錄html

 

內存,cpu,硬盤,
解釋器 實時翻譯 編譯器 :一次性翻譯
python2,3 除法,2不能得小數,3能得小數python

 

一、字符串操做


1.1字符串操做startswith

startswith #判斷是否以什麼開頭
name="mcw"
name_new=name.startswith("m")
print(name_new)
-------結果:
True

name="mcw"
name_new=bool(name[0]=="m")
print(name_new)
--------結果:
True

1.2字符串操做endswith

endswith #判斷是否以什麼結尾git

name="mcw"
name_new=name.endswith("m")
print(name_new)
-------結果:
False

1.3字符串操做format

format() #格式化輸出 %s可替代網絡

網絡傳輸gbk,不用Unicode。app

 

1.4字符串操做encode

參考:https://blog.csdn.net/m0_38080253/article/details/78841280post

encode #改變編碼類型 ,網絡傳輸和存儲能夠用到網站

name="mcw"
name_new=name.encode()
print(name_new)
--------結果:
b'mcw'

mcw="魔降風雲變"
mcw_utf8 = mcw.encode("utf-8")
mcw_gbk = mcw.encode("gbk")
mcw_gb2312 = mcw.encode("gb2312")
print(mcw)
print("utf-8編碼: ", mcw_utf8)
print("gbk 編碼: ", mcw_gbk)
print("gb2312編碼: ", mcw_gb2312)
print("utf-8 解碼: ", mcw_utf8.decode('utf-8'))
print("gbk 解碼: ", mcw_gbk.decode('gbk'))
print("gb2312 解碼: ", mcw_gb2312.decode('gb2312'))
-----------結果:

魔降風雲變
utf-8編碼: b'\xe9\xad\x94\xe9\x99\x8d\xe9\xa3\x8e\xe4\xba\x91\xe5\x8f\x98'
gbk 編碼: b'\xc4\xa7\xbd\xb5\xb7\xe7\xd4\xc6\xb1\xe4'
gb2312編碼: b'\xc4\xa7\xbd\xb5\xb7\xe7\xd4\xc6\xb1\xe4'
utf-8 解碼: 魔降風雲變
gbk 解碼: 魔降風雲變
gb2312 解碼: 魔降風雲變編碼

錯誤之一:UnicodeDecodeError: 'gb2312' codec can't decode byte 0x94 in position 2: illegal multibyte sequencespa

緣由:編碼解碼方式不一致.net

mcw="魔降風雲變"
mcw_utf8 = mcw.encode("utf-8")
print("gb2312 解碼: ", mcw_utf8.decode('gb2312'))

1.五、字符串操做join指定分隔符給字符串,列表,元組,由於內部會給它for 循環

join "_".join(name)#循環單個字符並添加分隔符,包括添加空格

name="mcw"
name_new="_".join(name)
print(name_new)
--------結果:
m_c_w

列表元組元素拼接,"".join(列表或元組)
li=["mcw","xiaoma","wl"]
mcw="_".join(li)
print(mcw)
---------結果:
mcw_xiaoma_wl

 
 

tup=("mcw","xiaoma","wl")
mcw="_".join(tup)
print(mcw)
------------結果:
mcw_xiaoma_wl

# ------------------join裏邊傳的必須是字符串,不然報錯---------
nums=[11,22,33,44]
num="".join(nums)
print(num)
-------結果:
TypeError: sequence item 0: expected str instance, int found

解決辦法:

nums=[11,22,33,44]
for i in range(0,len(nums)):
nums[i]=str(nums[i])
num="+".join(nums)
print(num)

-----------結果:
11+22+33+44

1.六、字符串反轉操做以及實現正反序列的列表元素生成(延伸方法:五種方法實現字符串反轉 name = "我叫小馬過河博客是魔降風雲變")

步長,可正可負,切片。[-1:0:-1]
請將字符串反轉:name[::-1]

name="mcwlllsf"
print(name[::-1])
#fslllwcm
name="mcwlllsf"
print(name[-1::-1])
#fslllwcm

請用五種方法實現字符串反轉 name = "我叫小馬過河博客是魔降風雲變"(步長、while、for)
#既然字符串能夠反轉,那麼字典,元組,列表怎麼反轉呢,思考一下

                                    #方法一---------------------
name = "我叫小馬過河博客是魔降風雲變"     
print(name[::-1])
----------如下結果都爲:
變雲風降魔是客博河過馬小叫我
                                   #方法二---------------------
name = "我叫小馬過河博客是魔降風雲變"      
index=0
e_str=""                         #什麼狀況定義空字符串,或是列表,元組,字典
while index<len(name):
    index += 1
    e_str+=name[len(name)-index]
print(e_str)
                                 #方法三-------------------思路:倒着取出每一個字符並拼接成字符串
name = "我叫小馬過河博客是魔降風雲變"      
e_str=""
for index in range(0,len(name)):
    e_str+=name[len(name)-index-1]
print(e_str)
                                    #方法四------------------
name = "我叫小馬過河博客是魔降風雲變"    
e_str=""
for index in range(len(name)-1,-1,-1):     #由於字符串索引最大值是字符串長度-1,range()取

左值,因此起始值爲len()-1
    e_str+=name[index]
print(e_str)
                                  #方法五-----------------#索引最大,倒着數
name = "我叫小馬過河博客是魔降風雲變"   
index=len(name)
e_str=""
while index>0:
    index-=1
    e_str+=name[index]
print(e_str)

實現正反序列的列表元素生成

正向序列:
li=[]
for i in range(0,3):
    li.append(i)
print(li)
---------結果:
[0, 1, 2]

反向序列
li=[]
for i in range(0,3):
    li.insert(0,i)
print(li)
-----------結果:
[2, 1, 0]

1.七、字符串一個切片操做案例

name="56+78"
a=name.split("+")          #指定分隔符
print(a,a[0],a[-1],a[1])   
['56', '78'] 56 78 78

 

1.八、字符串extend的操做

# 列表extend元組,列表
                           #列表.extend(元組)-------------
li=["mcw","xiaoma","wl"]
tup=("y","h","feng")
li.extend(tup)
print(li)
-----------結果:
['mcw', 'xiaoma', 'wl', 'y', 'h', 'feng']
                        #列表.extend(字符串)-------------                      
li=["mcw","xiaoma","wl"]
mcw_str="yh"
li.extend(mcw_str)
print(li)
------------結果:
['mcw', 'xiaoma', 'wl', 'y', 'h']
                        #列表.extend(列表)---------------
li=["mcw","xiaoma","wl"]
li2=["xiaoming","xiaoxiao"]
li.extend(li2)
print(li)
-------------------結果:
['mcw', 'xiaoma', 'wl', 'xiaoming', 'xiaoxiao']
                         #列表=列表+列表 多個列表元素合併
li=["mcw","xiaoma","wl"]
li2=["xiaoming"]
li=li+li2
print(li)
---------------結果:
['mcw', 'xiaoma', 'wl', 'xiaoming']
                        #列表.extend(字典),默認將鍵加到列表後面。想加入其餘,列表.extend(字典.keys/items/values)
li=["mcw","xiaoma","wl"]
dic={"name":"mcw","age":18}
li.extend(dic)
print(li)
-------------結果:
['mcw', 'xiaoma', 'wl', 'name', 'age']

二、#for循環打印字符串單個字符,for有限循環(while死循環)

name="mcwh"
for i in name:
print(i)
print(i) #由於最後一個被賦值h
--------結果:
m
c
w
h
h

#for中continue,break

三、range()

3.1range(0,3)取值範圍:[0,3)

for i in range(0,3):
print(i)
-----結果:
0
1
2

for i in range(3):       #取值範圍從0到3,不取3
print(i)
------結果:
0
1
2

for i in range(0,3):     
print(2-i) #使用range倒着來。(3-1)-i
-----------結果:

2
1
0

for i in range(0,5,2): #[0,1,2,3,4],取步長爲2進行操做
print(i)
--------結果:
0
2
4

=======================shel序列號 =================

[root@xiaoma ~]# seq 3
1
2
3
[root@xiaoma ~]# seq 0 2
0
1
2
[root@xiaoma ~]# seq 0 2 5    #0-5,步長爲2
0
2
4

3.二、range的一個使用案例(打印0-5之間的偶數)

for i in range(0,5,2):               #方法一
    print(i)

for i in range(0,5):                 #方法二
    if i%2==0:
        print(i)
------------結果:
0
2
4

#四、for循環1-10,不打印7

for i in range(1,11):
if i==7:                    #註解:for循環多少次結合range(),不打印7就是等於7就跳過
continue
print(i)

#重點,數據類型中的字符串
#for 循環

五、列表操做

mcw=list()                  #定義空列表,空列表布爾值爲False
xiaoma=[]
print(mcw,bool(mcw),xiaoma)
---------------結果:
[] False []

5.1len

users=["mcw","yh",99]
val=len(users)
print(val)
------結果:
3

5.2索引和切片,步長(切片是一段字符)(查1)

users=["mcw","yh",99]
print(users[0],users[-1])
print(users[0:3])
print(users[::-1])
-----結果:
mcw 99
['mcw', 'yh', 99]
[99, 'yh', 'mcw']

5.3#輸入數字+數字,實現求和

方法一
content=input("請輸入:")
index=0
total=0
while True:
    char = content[index]
    if char.isdigit():
        total+=int(char)
    index+=1
    if index==len(content):
        break
print(total)
自我註解:
方法二:spilit
content=input("請輸入數字+數字:")
sum=int(content.split("+")[0])+int(content.split("+")[1])
print(sum)
----------結果:

請輸入數字+數字:16+4
20

 

5.4#for循環遍歷列表(查2)

users=["mcw","yh",99]
for i in users:
    print(i)
-----結果:
mcw
yh
99

users=["mcw","yh","99"]
for i in users:
    for j in i:
        print(j)
----結果:
m
c
w
y
h
9
9
若是99是數字,出現報錯

#自我註解:對多個事物作相同的操做,就用for循環,假如其中某個不作這個操做,用判斷將它剔除

5.5#實現列表元素打印並加序號(查3)

#for循環列表加個計數的

方法一:
users=["mcw","yh","99"]
for i in range(0,len(users)):
    print(i,users[i])
-----結果:
0 mcw
1 yh
2 99
方法二:
users=["mcw","yh","99"]
count=0
for i in users:
    print(count,i)
    count+=1
------結果:
0 mcw
1 yh
2 99

列表獨有功能

5.6#列表追加元素(增1)

users=[]
while True:
    name = input("請輸入姓名:")
    users.append(name)
------效果:
請輸入姓名:mcw
['mcw']
請輸入姓名:yh
['mcw', 'yh']
請輸入姓名:xiaoma
['mcw', 'yh', 'xiaoma']

users=[]
for i in range(0,3):
    name=input("請輸入用戶名和密碼,逗號隔開:")
    users.append(name)
print(users)
-------結果:
請輸入用戶名和密碼,逗號隔開:mcw,123
請輸入用戶名和密碼,逗號隔開:yh,456
請輸入用戶名和密碼,逗號隔開:xiaoma,789
['mcw,123', 'yh,456', 'xiaoma,789']
    print(users)

5.7#錄入用戶名和密碼並校驗

users=["mcw,123","xiaoma,456","xiaoxiao,789"]
denglu = input("請輸入用戶名進行登陸:")
dpasswd = input("請輸入密碼:")
for val in users:
    if denglu==val.split(",")[0] and dpasswd==val.split(",")[1]:
        print("登陸成功")
--------------結果:
請輸入用戶名進行登陸:mcw
請輸入密碼:123
登陸成功

5.8#列表插入(增2)

users=["mcw","yh","99"]
users.insert(1,"xiaoma")
print(users)
-------結果:
['mcw', 'xiaoma', 'yh', '99']

5.9#列表元素移除:(刪)

**remove移除元素

users=["mcw","yh","99"]
users.remove("yh")
print(users)
-------結果:
['mcw', '99']

**pop移除接索引

users=["mcw","yh","99"]
users.pop(1)
print(users)
-----結果:
['mcw', '99']

users=["mcw","yh","99"] 
users.pop() #pop默認從後面刪除
print(users)
-----結果:
['mcw', 'yh']

users=["mcw","yh","99"]
users.clear()                  #clear清空列表
print(users)
----結果:
[]

**del

users=["mcw","yh","99"]
del users[1]
print(users)
------結果:
['mcw', '99']

5.10修改列表元素,以及元素內部元素(改)

注意點,字符串自己不能修改或刪除,字符串是不可變類型,列表是可變類型。

users=["mcw","yh","99"]
users[0]="xiaoma"
print(users)
--------結果:
['xiaoma', 'yh', '99']

users=["mcw","yh","99"]
print(users[0][1]) #定位user[0]元素的第二個字符。
------結果:
c

5.十一、列表操做expend(增3)

li=["xiao"]
s="mcw"
li.extend(s)
print(li)
------------結果:
['xiao', 'm', 'c', 'w']

li=["xiao"]
s="mcw"
li=li+" ".join(s).split()
print(li)
---------------結果
['xiao', 'm', 'c', 'w']

 5.十二、#將列表後面的值移到前面,pop刪除的元素可用變量接收(刪,增)

deleted=li.pop
li.append(deleted)

li=["mcw","xiaoma","wl"]
deleted=li.pop()
li.insert(0,deleted)
print(li)
---------結果:
['wl', 'mcw', 'xiaoma']

#增長: del 僅僅是刪除,pop還能將刪除後的賦予給一個變量

 5.1三、一樣列表元素數量相同的變量在等號左邊接收右邊列表纔沒有問題

mcw=["mcw","xiaoma"]
a,b=mcw
print(a)
print(b)
--------------------結果:
mcw
xiaoma

5.1四、reverse 列表元素反轉

li=["mcw","xiaoma","xiaoxiao"]
li.reverse()
print(li)
----------結果:
['xiaoxiao', 'xiaoma', 'mcw']

5.1五、sort列表元素排序,默認從小到大

sort 列表 默認從小到大
li=[2,5,1,6]
li.sort()
print(li)
------------結果:
[1, 2, 5, 6]

sort(reverse=Ture)  從大到小
li=[2,5,1,6]
li.sort(reverse=True)
print(li)
-----------結果:
[6, 5, 2, 1]

5.16#總結:

列表元素操做
增: append / insert
刪: remove / pop / clear / del users[2]
改: users[3] = "新值"
查: 索引/切片
列表嵌套:

users=["mcw",["xiaoming","xiaohong"],"99"]
print(users[1][1][4:])
-------結果:
hong

六、元組的書寫規範

users=[11,"mcw","xiaoma"] #列表,可變類型
users=(11,"mcw","xiaoma") #元組,不可變類型
擁有公共功能:
索引 (排除)
切片
步長
刪除
修改
for循環
len
。。。。

6.1元組操做

users=("mcw","xiaoma","mojiangfengyunbian")
print(users[1],users[1:])
print(users[-1][::2])
print(len(users),len(users[-1]))
-----結果:
xiaoma ('xiaoma', 'mojiangfengyunbian')
mjageguba
3 18

6.2#特殊:元組中的元素不可被修改/刪除

users=("mcw","xiaoma","mojiangfengyunbian")
users[0]="ff"
print(users)
--------結果:
TypeError: 'tuple' object does not support item assignment

 

# 示例一:
v1 = (11,22,33)
v1[1] = 999 # 錯誤
v1 = 999 # 正確
# 示例二:能夠嵌套
v1 = (11,22,33,(44,55,66),(11,2,(99,88,),3))
# 示例三:嵌套
v2 = [11,22,33,(11,22,33)]
v2[-1][1] = 99 # 錯誤
v2[-1] = 123 # 正確
# 示例四:嵌套
v3 = (11,[1,2,3],22,33)
v3[1] = 666 # 錯誤
v3[1][2] = 123

#自我註解:能夠修改的用列表,不能夠修改的用元組,部分能夠修改部分不能夠修改的用元組和列表相
互嵌套

------
-------------

七、git相關使用

問題:
#開發流程:
一、寫出你經常使用的git命令
二、大家公司是怎麼用git作開發的
  1)在碼雲或GitHub等代碼託管的網站上建立本身的倉庫。建立完以後碼雲會給咱們一個倉庫地址。
  2)在本地本身寫代碼
  3)將代碼提交到遠程倉庫。
    -初始化
    -進入任意文件夾,
    -git init
    -git config 郵箱
    -git config 姓名
    -git remote add origin 倉庫域名 #origin,給遠程倉庫域名起別名origin。
    注意:至此,git已經將目錄管理起來了,之後目錄內文件有任意變化,git都能識別出來
  -代碼收集並提交
    -git status #能夠查看修改記錄
    -git add .
    -git commit -m "註釋"
    -git push origin master #將本地倉庫的代碼同步到遠程倉庫
  -在本地修改代碼或刪除文件等
    -git add .
    -git commit -m "註釋"
    -git push origin master #將本地倉庫的代碼同步到遠程倉庫
  -[避免]若是遠程倉庫有本地沒有的代碼,必須先執行[可能引起合併的問題]
    -git pull origin master
    -git status #能夠查看修改記錄
    -git add .
    -git commit -m "註釋"
    -git push origin master #將本地倉庫的代碼同步到遠程倉庫

------

相關文章
相關標籤/搜索