python其他知识目录

内存,cpu,硬盘,
解释器 实时翻译 编译器 :一次性翻译
python2,3 除法,2不能得小数,3能得小数

1、字符串操作

1.1字符串操作startswith

  1. startswith #判断是否以什么开头
  2. name="mcw"
  3. name_new=name.startswith("m")
  4. print(name_new)
  5. -------结果:
  6. True
  1. name="mcw"
    name_new=bool(name[0]=="m")
    print(name_new)
    --------结果:
    True

1.2字符串操作endswith

endswith #判断是否以什么结尾

  1. name="mcw"
  2. name_new=name.endswith("m")
  3. print(name_new)
  4. -------结果:
  5. False

1.3字符串操作format

format() #格式化输出 %s可替代

网络传输gbk,不用Unicode。

1.4字符串操作encode

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

encode #改变编码类型 ,网络传输和存储可以用到

  1. name="mcw"
  2. name_new=name.encode()
  3. print(name_new)
  4. --------结果:
  5. b'mcw'
  1. 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'))
  1. -----------结果:

魔降风云变
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

原因:编码解码方式不一致

  1. mcw="魔降风云变"
    mcw_utf8 = mcw.encode("utf-8")
    print("gb2312 解码: ", mcw_utf8.decode('gb2312'))

1.5、字符串操作join指定分隔符给字符串,列表,元组,因为内部会给它for 循环

join "_".join(name)#循环单个字符并添加分隔符,包括添加空格

  1. name="mcw"
  2. name_new="_".join(name)
  3. print(name_new)
    --------结果:
    m_c_w

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

  1.  

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

解决办法:

  1. 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.6、字符串反转操作以及实现正反序列的列表元素生成(延伸方法:五种方法实现字符串反转 name = "我叫小马过河博客是魔降风云变")

步长,可正可负,切片。[-1:0:-1]
请将字符串反转:name[::-1]

  1. name="mcwlllsf"
  2. print(name[::-])
  3. #fslllwcm
  4. name="mcwlllsf"
  5. print(name[-::-])
  6. #fslllwcm

请用五种方法实现字符串反转 name = "我叫小马过河博客是魔降风云变"(步长、while、for)
#既然字符串可以反转,那么字典,元组,列表怎么反转呢,思考一下

  1. #方法一---------------------
  1. name = "我叫小马过河博客是魔降风云变"
  2. print(name[::-])
  3. ----------以下结果都为:
  4. 变云风降魔是客博河过马小叫我
  1. #方法二---------------------
  1. name = "我叫小马过河博客是魔降风云变"
  2. index=
  3. e_str="" #什么情况定义空字符串,或是列表,元组,字典
  4. while index<len(name):
  5. index +=
  6. e_str+=name[len(name)-index]
  7. print(e_str)
  1. #方法三-------------------思路:倒着取出每个字符并拼接成字符串
  1. name = "我叫小马过河博客是魔降风云变"
  2. e_str=""
  3. for index in range(,len(name)):
  4. e_str+=name[len(name)-index-]
  5. print(e_str)
  1. #方法四------------------
  1. name = "我叫小马过河博客是魔降风云变"
  2. e_str=""
  3. for index in range(len(name)-,-,-): #因为字符串索引最大值是字符串长度-,range()取
  4.  
  5. 左值,所以起始值为len()-
  6. e_str+=name[index]
  7. print(e_str)
  1. #方法五-----------------#索引最大,倒着数
  1. name = "我叫小马过河博客是魔降风云变"
  2. index=len(name)
  3. e_str=""
  4. while index>:
  5. index-=
  6. e_str+=name[index]
  7. print(e_str)

实现正反序列的列表元素生成

  1. 正向序列:
  2. li=[]
  3. for i in range(,):
  4. li.append(i)
  5. print(li)
  6. ---------结果:
  7. [, , ]
  8.  
  9. 反向序列
  10. li=[]
  11. for i in range(,):
  12. li.insert(,i)
  13. print(li)
  14. -----------结果:
  15. [, , ]

1.7、字符串一个切片操作案例

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

1.8、字符串extend的操作

  1. # 列表extend元组,列表
  2. #列表.extend(元组)-------------
  3. li=["mcw","xiaoma","wl"]
  4. tup=("y","h","feng")
  5. li.extend(tup)
  6. print(li)
  7. -----------结果:
  8. ['mcw', 'xiaoma', 'wl', 'y', 'h', 'feng']
  9. #列表.extend(字符串)-------------
  10. li=["mcw","xiaoma","wl"]
  11. mcw_str="yh"
  12. li.extend(mcw_str)
  13. print(li)
  14. ------------结果:
  15. ['mcw', 'xiaoma', 'wl', 'y', 'h']
  16. #列表.extend(列表)---------------
  17. li=["mcw","xiaoma","wl"]
  18. li2=["xiaoming","xiaoxiao"]
  19. li.extend(li2)
  20. print(li)
  21. -------------------结果:
  22. ['mcw', 'xiaoma', 'wl', 'xiaoming', 'xiaoxiao']
  23. #列表=列表+列表 多个列表元素合并
  24. li=["mcw","xiaoma","wl"]
  25. li2=["xiaoming"]
  26. li=li+li2
  27. print(li)
  28. ---------------结果:
  29. ['mcw', 'xiaoma', 'wl', 'xiaoming']
  30. #列表.extend(字典),默认将键加到列表后面。想加入其他,列表.extend(字典.keys/items/values)
  31. li=["mcw","xiaoma","wl"]
  32. dic={"name":"mcw","age":}
  33. li.extend(dic)
  34. print(li)
  35. -------------结果:
  36. ['mcw', 'xiaoma', 'wl', 'name', 'age']

2、#for循环打印字符串单个字符,for有限循环(while死循环)

  1. name="mcwh"
  2. for i in name:
  3. print(i)
  4. print(i) #因为最后一个被赋值h
  5. --------结果:
  6. m
  7. c
  8. w
  9. h
  10. h

#for中continue,break

3、range()

3.1range(0,3)取值范围:[0,3)

  1. for i in range(,):
  2. print(i)
  3. -----结果:
  4.  
  5. for i in range(): #取值范围从0到3,不取3
  6. print(i)
  7. ------结果:
  8.  
  9. 2
  1. for i in range(0,3):
    print(2-i) #使用range倒着来。(3-1)-i
  1. -----------结果:

2
1
0

  1. for i in range(,,): #[,,,,],取步长为2进行操作
  2. print(i)
  3. --------结果:
  4.  
  5. 4
  6.  
  7. =======================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.2、range的一个使用案例(打印0-5之间的偶数)

  1. for i in range(,,): #方法一
  2. print(i)
  3.  
  4. for i in range(,): #方法二
  5. if i%==:
  6. print(i)
  7. ------------结果:

#4、for循环1-10,不打印7

  1. for i in range(,):
  2. if i==: #注解:for循环多少次结合range(),不打印7就是等于7就跳过
  3. continue
  4. print(i)

#重点,数据类型中的字符串
#for 循环

5、列表操作

  1. mcw=list() #定义空列表,空列表布尔值为False
  2. xiaoma=[]
  3. print(mcw,bool(mcw),xiaoma)
  4. ---------------结果:
  5. [] False []

5.1len

  1. users=["mcw","yh",]
  2. val=len(users)
  3. print(val)
  4. ------结果:

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

  1. users=["mcw","yh",]
  2. print(users[],users[-])
  3. print(users[:])
  4. print(users[::-])
  5. -----结果:
  6. mcw
  7. ['mcw', 'yh', ]
  8. [, 'yh', 'mcw']

5.3#输入数字+数字,实现求和

  1. 方法一
  2. content=input("请输入:")
  3. index=
  4. total=
  5. while True:
  6. char = content[index]
  7. if char.isdigit():
  8. total+=int(char)
  9. index+=
  10. if index==len(content):
  11. break
  12. print(total)
  13. 自我注解:
  14. 方法二:spilit
  1. content=input("请输入数字+数字:")
    sum=int(content.split("+")[0])+int(content.split("+")[1])
    print(sum)
  1. ----------结果:

请输入数字+数字:16+4
20

  1.  

5.4#for循环遍历列表(查2)

  1. users=["mcw","yh",]
  2. for i in users:
  3. print(i)
  4. -----结果:
  5. mcw
  6. yh
  7.  
  8. users=["mcw","yh",""]
  9. for i in users:
  10. for j in i:
  11. print(j)
  12. ----结果:
  13. m
  14. c
  15. w
  16. y
  17. h
  18.  
  19. 如果99是数字,出现报错

#自我注解:对多个事物做相同的操作,就用for循环,假如其中某个不做这个操作,用判断将它剔除

5.5#实现列表元素打印并加序号(查3)

#for循环列表加个计数的

  1. 方法一:
  2. users=["mcw","yh",""]
  3. for i in range(,len(users)):
  4. print(i,users[i])
  5. -----结果:
  6. mcw
  7. yh
  8.  
  9. 方法二:
  10. users=["mcw","yh",""]
  11. count=
  12. for i in users:
  13. print(count,i)
  14. count+=
  15. ------结果:
  16. mcw
  17. yh

列表独有功能

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

  1. users=[]
  2. while True:
  3. name = input("请输入姓名:")
  4. users.append(name)
  5. ------效果:
  6. 请输入姓名:mcw
  7. ['mcw']
  8. 请输入姓名:yh
  9. ['mcw', 'yh']
  10. 请输入姓名:xiaoma
  11. ['mcw', 'yh', 'xiaoma']
  12.  
  13. users=[]
  14. for i in range(,):
  15. name=input("请输入用户名和密码,逗号隔开:")
  16. users.append(name)
  17. print(users)
  18. -------结果:
  19. 请输入用户名和密码,逗号隔开:mcw,
  20. 请输入用户名和密码,逗号隔开:yh,
  21. 请输入用户名和密码,逗号隔开:xiaoma,
  22. ['mcw,123', 'yh,456', 'xiaoma,789']
  23. print(users)

5.7#录入用户名和密码并校验

  1. users=["mcw,123","xiaoma,456","xiaoxiao,789"]
  2. denglu = input("请输入用户名进行登录:")
  3. dpasswd = input("请输入密码:")
  4. for val in users:
  5. if denglu==val.split(",")[] and dpasswd==val.split(",")[]:
  6. print("登录成功")
  7. --------------结果:
  8. 请输入用户名进行登录:mcw
  9. 请输入密码:
  10. 登录成功

5.8#列表插入(增2)

  1. users=["mcw","yh",""]
  2. users.insert(,"xiaoma")
  3. print(users)
  4. -------结果:
  5. ['mcw', 'xiaoma', 'yh', '']

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

**remove移除元素

  1. users=["mcw","yh",""]
  2. users.remove("yh")
  3. print(users)
  4. -------结果:
  5. ['mcw', '']

**pop移除接索引

  1. users=["mcw","yh",""]
  2. users.pop()
  3. print(users)
  4. -----结果:
  5. ['mcw', '']
  6.  
  7. users=["mcw","yh",""]
  8. users.pop() #pop默认从后面删除
  9. print(users)
  10. -----结果:
  11. ['mcw', 'yh']
  12.  
  13. users=["mcw","yh",""]
  14. users.clear() #clear清空列表
  15. print(users)
  16. ----结果:
  17. []

**del

  1. users=["mcw","yh",""]
  2. del users[]
  3. print(users)
  4. ------结果:
  5. ['mcw', '']

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

注意点,字符串本身不能修改或删除,字符串是不可变类型,列表是可变类型。

  1. users=["mcw","yh",""]
  2. users[]="xiaoma"
  3. print(users)
  4. --------结果:
  5. ['xiaoma', 'yh', '']
  6.  
  7. users=["mcw","yh",""]
  8. print(users[][]) #定位user[]元素的第二个字符。
  9. ------结果:
  10. c

5.11、列表操作expend(增3)

  1. li=["xiao"]
  2. s="mcw"
  3. li.extend(s)
  4. print(li)
  5. ------------结果:
  6. ['xiao', 'm', 'c', 'w']
  7.  
  8. li=["xiao"]
  9. s="mcw"
  10. li=li+" ".join(s).split()
  11. print(li)
  12. ---------------结果
  13. ['xiao', 'm', 'c', 'w']

5.12、#将列表后面的值移到前面,pop删除的元素可用变量接收(删,增)

  1. deleted=li.pop
  2. li.append(deleted)
  3.  
  4. li=["mcw","xiaoma","wl"]
  5. deleted=li.pop()
  6. li.insert(,deleted)
  7. print(li)
  8. ---------结果:
  9. ['wl', 'mcw', 'xiaoma']
  10.  
  11. #增加: del 仅仅是删除,pop还能将删除后的赋予给一个变量

5.13、同样列表元素数量相同的变量在等号左边接收右边列表才没有问题

  1. mcw=["mcw","xiaoma"]
  2. a,b=mcw
  3. print(a)
  4. print(b)
  5. --------------------结果:
  6. mcw
  7. xiaoma

5.14、reverse 列表元素反转

  1. li=["mcw","xiaoma","xiaoxiao"]
  2. li.reverse()
  3. print(li)
  4. ----------结果:
  5. ['xiaoxiao', 'xiaoma', 'mcw']

5.15、sort列表元素排序,默认从小到大

  1. sort 列表 默认从小到大
  2. li=[,,,]
  3. li.sort()
  4. print(li)
  5. ------------结果:
  6. [, , , ]
  7.  
  8. sort(reverse=Ture) 从大到小
  9. li=[,,,]
  10. li.sort(reverse=True)
  11. print(li)
  12. -----------结果:
  13. [, , , ]

5.16#总结:

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

  1. users=["mcw",["xiaoming","xiaohong"],""]
  2. print(users[][][:])
  3. -------结果:
  4. hong

6、元组的书写规范

users=[11,"mcw","xiaoma"] #列表,可变类型
users=(11,"mcw","xiaoma") #元组,不可变类型
拥有公共功能:
索引 (排除)
切片
步长
删除
修改
for循环
len
。。。。

6.1元组操作

  1. users=("mcw","xiaoma","mojiangfengyunbian")
  2. print(users[],users[:])
  3. print(users[-][::])
  4. print(len(users),len(users[-]))
  5. -----结果:
  6. xiaoma ('xiaoma', 'mojiangfengyunbian')
  7. mjageguba

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

  1. users=("mcw","xiaoma","mojiangfengyunbian")
  2. users[]="ff"
  3. print(users)
  4. --------结果:
  5. TypeError: 'tuple' object does not support item assignment
  1. # 示例一:
  2. v1 = (,,)
  3. v1[] = # 错误
  4. v1 = # 正确
  5. # 示例二:可以嵌套
  6. v1 = (,,,(,,),(,,(,,),))
  7. # 示例三:嵌套
  8. v2 = [,,,(,,)]
  9. v2[-][] = # 错误
  10. v2[-] = # 正确
  11. # 示例四:嵌套
  12. v3 = (,[,,],,)
  13. v3[] = # 错误
  14. v3[][] =

#自我注解:可以修改的用列表,不可以修改的用元组,部分可以修改部分不可以修改的用元组和列表相
互嵌套

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

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 #将本地仓库的代码同步到远程仓库

------

python基础知识-04-字符串列表元组的更多相关文章

  1. python基础知识回顾之列表

    在python 中,主要的常用数据类型有列表,元组,字典,集合,字符串.对于这些基础知识,应该要能够足够熟练掌握. 如何创建列表: # 创建一个空列表:定义一个变量,然后在等号右边放一个中括号,就创建 ...

  2. Python基础知识之字符串操作方法总结

    Python 中字符串也是一种数据类型,针对此数据总结下常用的方法 1,字符串截取,变量[头下标:尾下标],就可以截取相应的字符串,其中下标是从0开始算起,可以是正数或负数,下标可以为空表示取到头或尾 ...

  3. python基础知识-集合,列表,元组间的相互装换

    在python中列表,元祖,集合间可以进行相互转化, def main(): set1={'hello','good','banana','zoo','Python','hello'} print(l ...

  4. 1.10 Python基础知识 - 序列:列表

    在Python中有很多的组合数据类型,其中包括列表,元组,字符串等数据类型,这些数据类型统称为序列类型,用他们可以处理复杂的数据. 列表,是一组有序元素组合的数据结构.列表是可变的数据类型. 列表采用 ...

  5. python基础知识(字符串)

    定义字符串 ' '单引号 " "双引号  只能用于单行 '" '"三引号  可以用于多行 拼接字符串使用  +号链接 字符串只能链接字符串其他类型字符串需要用s ...

  6. Python数据类型-布尔/数字/字符串/列表/元组/字典/集合

    代码 bol = True # 布尔 num = 100000000; # 数字 str = "fangbei"; # 字符串 str_cn = u"你好,方倍" ...

  7. Python基础知识:字符串

    1.Python中大写字母命名的变量,默认为常量,不可修改:列如:MYSQL_CONNECTION = '192.168.1.1' 2.字符串换行输入格式:换行用\隔开,两行分别用引号,制表符\t,换 ...

  8. python基础知识第四篇(元组)

    元组 list列表 li[11,22,33,44]列表和元组的区别:元素不可被修改,不可被增加或者删除(一级元素),列表则相反 tuple元组 tu=(111,222,333,444) 支持索引取值 ...

  9. python基础知识0-4

    collection 他是对字典 元组 集合 进行加工的  是计数器 无论 深 ,浅 ,赋值 拷贝 内存地址都不变 赋值也是拷贝的一种 拷贝分两类数字 字符串 另一类: 列表 字典 元组 这一类还分两 ...

  10. Python 整数 长整数 浮点数 字符串 列表 元组 字典的各种方法

    对于Python, 一切事物都是对象,对象基于类创建!! 注:查看对象相关成员var,type, dir 一.整数 如: 18.73.84 每一个整数都具备如下需要知道的功能: def bit_len ...

随机推荐

  1. HBase 文件读写过程描述

    HBase 数据读写过程描述 我们熟悉的在 Hadoop 使用的文件格式有许多种,例如: Avro:用于 HDFS 数据序序列化与 Parquet:常见于 Hive 数据文件保存在 HDFS中 HFi ...

  2. MYSQL 5.7.25最后一个5.x版本记录

      一:下载 位 https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.25-win32.zip 位 https://dev.mysql.co ...

  3. 同步工具类-----循环栅栏:CyclicBarrier

    import java.util.concurrent.BrokenBarrierException; import java.util.concurrent.CyclicBarrier; impor ...

  4. python使用findall正则匹配出所有符合条件的字符串

    # -*- coding:utf-8 -*- import re mystr="qqq key:www.baidu.com<br>key:www.tengxun.com<b ...

  5. WebSocket 客户端实例

    Node.js var ws = require("ws"); var socket = new ws("ws://127.0.0.1:8001); var socket ...

  6. Hbase(2)-HBase简介

    一. HBase的特点 1. 海量存储 Hbase适合存储PB级别的海量数据,在PB级别的数据以及采用廉价PC存储的情况下,能在几十到百毫秒内返回数据.这与Hbase的极易扩展性息息相关.正式因为Hb ...

  7. js 修改字符串中某些字符的样式

    var str = 'abcdefghijklmnobqrstuvwxyz'; function HightLight(e){ var reg = new RegExp(e, 'g') str = s ...

  8. PL/SQL轻量版(二)——基本语法

    一.流程控制 1.条件判断 语法: IF <布尔表达式> THEN PL/SQL 和 SQL语句 END IF; IF <布尔表达式> THEN PL/SQL 和 SQL语句 ...

  9. 20155206 《JAVA程序设计》实验二(JAVA面向对象程序设计)实验报告

    20155206 <JAVA程序设计>实验二(JAVA面向对象程序设计)实验报告 实验内容 初步掌握单元测试和TDD 理解并掌握面向对象三要素:封装.继承.多态 初步掌握UML建模 熟悉S ...

  10. PHP学习笔记之析构函数以及static,self,parent关键字

    引用 $jordan1 = &$jordan; 当jordan1 = null; //此时会直接调用析构函数 而当无&时,就需要等到所有的引用都为null时,才调用析构函数析构  乔丹 ...