内存,cpu,硬盘,
解释器 实时翻译 编译器 :一次性翻译python2,3 除法,2不能得小数,3能得小数
1、字符串操作
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 #判断是否以什么结尾
name="mcw"name_new=name.endswith("m")print(name_new)-------结果:False
1.3字符串操作format
format() #格式化输出 %s可替代
网络传输gbk,不用Unicode。
1.4字符串操作encode
参考:https://blog.csdn.net/m0_38080253/article/details/78841280
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 sequence
原因:编码解码方式不一致
mcw="魔降风云变" mcw_utf8 = mcw.encode("utf-8") print("gb2312 解码: ", mcw_utf8.decode('gb2312'))
1.5、字符串操作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_wltup=("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+441.6、字符串反转操作以及实现正反序列的列表元素生成(延伸方法:五种方法实现字符串反转 name = "我叫小马过河博客是魔降风云变")
步长,可正可负,切片。[-1:0:-1]
请将字符串反转:name[::-1]name="mcwlllsf"print(name[::-1])#fslllwcmname="mcwlllsf"print(name[-1::-1])#fslllwcm
请用五种方法实现字符串反转 name = "我叫小马过河博客是魔降风云变"(步长、while、for)
#既然字符串可以反转,那么字典,元组,列表怎么反转呢,思考一下#方法一---------------------
name = "我叫小马过河博客是魔降风云变" print(name[::-1])----------以下结果都为:变云风降魔是客博河过马小叫我
#方法二---------------------
name = "我叫小马过河博客是魔降风云变" index=0e_str="" #什么情况定义空字符串,或是列表,元组,字典while index
#方法三-------------------思路:倒着取出每个字符并拼接成字符串
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.7、字符串一个切片操作案例
name="56+78"a=name.split("+") #指定分隔符print(a,a[0],a[-1],a[1]) ['56', '78'] 56 78 78
1.8、字符串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+li2print(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']
2、#for循环打印字符串单个字符,for有限循环(while死循环)
name="mcwh"for i in name:print(i)print(i) #因为最后一个被赋值h--------结果:mcwhh
#for中continue,break
3、range()
3.1range(0,3)取值范围:[0,3)
for i in range(0,3):print(i)-----结果:012for i in range(3): #取值范围从0到3,不取3print(i)------结果:012
for i in range(0,3): print(2-i) #使用range倒着来。(3-1)-i
-----------结果:
2
10for i in range(0,5,2): #[0,1,2,3,4],取步长为2进行操作print(i)--------结果:024 =======================shel序列号 =================
[root@xiaoma ~]# seq 3
123[root@xiaoma ~]# seq 0 2012[root@xiaoma ~]# seq 0 2 5 #0-5,步长为20243.2、range的一个使用案例(打印0-5之间的偶数)
for i in range(0,5,2): #方法一 print(i)for i in range(0,5): #方法二 if i%2==0: print(i)------------结果:024
#4、for循环1-10,不打印7
for i in range(1,11):if i==7: #注解:for循环多少次结合range(),不打印7就是等于7就跳过continueprint(i)
#重点,数据类型中的字符串
#for 循环5、列表操作
mcw=list() #定义空列表,空列表布尔值为Falsexiaoma=[]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=0total=0while True: char = content[index] if char.isdigit(): total+=int(char) index+=1 if index==len(content): breakprint(total)自我注解:方法二:spilit
content=input("请输入数字+数字:") sum=int(content.split("+")[0])+int(content.split("+")[1]) print(sum)
----------结果:
请输入数字+数字:16+4
205.4#for循环遍历列表(查2)
users=["mcw","yh",99]for i in users: print(i)-----结果:mcwyh99users=["mcw","yh","99"]for i in users: for j in i: print(j)----结果:mcwyh99如果99是数字,出现报错
#自我注解:对多个事物做相同的操作,就用for循环,假如其中某个不做这个操作,用判断将它剔除
5.5#实现列表元素打印并加序号(查3)
#for循环列表加个计数的
方法一:users=["mcw","yh","99"]for i in range(0,len(users)): print(i,users[i])-----结果:0 mcw1 yh2 99方法二:users=["mcw","yh","99"]count=0for i in users: print(count,i) count+=1------结果:0 mcw1 yh2 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.11、列表操作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.12、#将列表后面的值移到前面,pop删除的元素可用变量接收(删,增)
deleted=li.popli.append(deleted)li=["mcw","xiaoma","wl"]deleted=li.pop()li.insert(0,deleted)print(li)---------结果:['wl', 'mcw', 'xiaoma']#增加: del 仅仅是删除,pop还能将删除后的赋予给一个变量
5.13、同样列表元素数量相同的变量在等号左边接收右边列表才没有问题
mcw=["mcw","xiaoma"]a,b=mcwprint(a)print(b)--------------------结果:mcwxiaoma
5.14、reverse 列表元素反转
li=["mcw","xiaoma","xiaoxiao"]li.reverse()print(li)----------结果:['xiaoxiao', 'xiaoma', 'mcw']
5.15、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
6、元组的书写规范
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')mjageguba3 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
#自我注解:可以修改的用列表,不可以修改的用元组,部分可以修改部分不可以修改的用元组和列表相
互嵌套------
-------------7、git相关使用
问题:
#开发流程:1、写出你常用的git命令2、你们公司是怎么用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 #将本地仓库的代码同步到远程仓库 ------