python其他知识目录

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

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

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

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

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

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

正向序列:
li=[]
for i in range(,):
li.append(i)
print(li)
---------结果:
[, , ] 反向序列
li=[]
for i in range(,):
li.insert(,i)
print(li)
-----------结果:
[, , ]

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

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

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+li2
print(li)
---------------结果:
['mcw', 'xiaoma', 'wl', 'xiaoming']
#列表.extend(字典),默认将键加到列表后面。想加入其他,列表.extend(字典.keys/items/values)
li=["mcw","xiaoma","wl"]
dic={"name":"mcw","age":}
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
--------结果:
m
c
w
h
h

#for中continue,break

3、range()

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

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

2
1
0

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

for i in range(,,):               #方法一
print(i) for i in range(,): #方法二
if i%==:
print(i)
------------结果:

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

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

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

5、列表操作

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

5.1len

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

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

users=["mcw","yh",]
print(users[],users[-])
print(users[:])
print(users[::-])
-----结果:
mcw
['mcw', 'yh', ]
[, 'yh', 'mcw']

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

方法一
content=input("请输入:")
index=
total=
while True:
char = content[index]
if char.isdigit():
total+=int(char)
index+=
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",]
for i in users:
print(i)
-----结果:
mcw
yh users=["mcw","yh",""]
for i in users:
for j in i:
print(j)
----结果:
m
c
w
y
h 如果99是数字,出现报错

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

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

#for循环列表加个计数的

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

列表独有功能

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(,):
name=input("请输入用户名和密码,逗号隔开:")
users.append(name)
print(users)
-------结果:
请输入用户名和密码,逗号隔开:mcw,
请输入用户名和密码,逗号隔开:yh,
请输入用户名和密码,逗号隔开:xiaoma,
['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(",")[] and dpasswd==val.split(",")[]:
print("登录成功")
--------------结果:
请输入用户名进行登录:mcw
请输入密码:
登录成功

5.8#列表插入(增2)

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

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

**remove移除元素

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

**pop移除接索引

users=["mcw","yh",""]
users.pop()
print(users)
-----结果:
['mcw', ''] users=["mcw","yh",""]
users.pop() #pop默认从后面删除
print(users)
-----结果:
['mcw', 'yh'] users=["mcw","yh",""]
users.clear() #clear清空列表
print(users)
----结果:
[]

**del

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

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

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

users=["mcw","yh",""]
users[]="xiaoma"
print(users)
--------结果:
['xiaoma', 'yh', ''] users=["mcw","yh",""]
print(users[][]) #定位user[]元素的第二个字符。
------结果:
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.pop
li.append(deleted) li=["mcw","xiaoma","wl"]
deleted=li.pop()
li.insert(,deleted)
print(li)
---------结果:
['wl', 'mcw', 'xiaoma'] #增加: del 仅仅是删除,pop还能将删除后的赋予给一个变量

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

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

5.14、reverse 列表元素反转

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

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

sort 列表 默认从小到大
li=[,,,]
li.sort()
print(li)
------------结果:
[, , , ] sort(reverse=Ture) 从大到小
li=[,,,]
li.sort(reverse=True)
print(li)
-----------结果:
[, , , ]

5.16#总结:

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

users=["mcw",["xiaoming","xiaohong"],""]
print(users[][][:])
-------结果:
hong

6、元组的书写规范

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

6.1元组操作

users=("mcw","xiaoma","mojiangfengyunbian")
print(users[],users[:])
print(users[-][::])
print(len(users),len(users[-]))
-----结果:
xiaoma ('xiaoma', 'mojiangfengyunbian')
mjageguba

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

users=("mcw","xiaoma","mojiangfengyunbian")
users[]="ff"
print(users)
--------结果:
TypeError: 'tuple' object does not support item assignment
# 示例一:
v1 = (,,)
v1[] = # 错误
v1 = # 正确
# 示例二:可以嵌套
v1 = (,,,(,,),(,,(,,),))
# 示例三:嵌套
v2 = [,,,(,,)]
v2[-][] = # 错误
v2[-] = # 正确
# 示例四:嵌套
v3 = (,[,,],,)
v3[] = # 错误
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. iOS dyld: Library not loaded 报错解决

    Xcode 用的是10.1 版本打的苹果包在 ios系统10.0 以上可以正常运行 但是系统9.3的手机安装后直接运行就崩溃 后来插上电脑联调 报错 dyld: Library not loaded: ...

  2. Hadoop分布式集群搭建_1

    Hadoop是一个开源的分布式系统框架 一.集群准备 1. 三台虚拟机,操作系统Centos7,三台主机名分别为k1,k2,k3,NAT模式 2.节点分布 k1: NameNode DataNode ...

  3. Ubuntu16.04 下 python 3.6 安装以及各版本python切换(同时解决各种依赖缺失)

    有些博客给出了从源代码通过./configure.make.sudo make 会导致安装玩之后出现各种依赖缺失的问题,如_sqlite3._bz2 等问题. 当然也有很多帖子给出了从系统自带的pyt ...

  4. 详解LeetCode 137. Single Number II

    Given an array of integers, every element appears three times except for one, which appears exactly ...

  5. Linux入门进阶第五天——用户管理(帐号管理 )上

    一.帐号与群组 关于使用者帐号: 用户的ID与帐号信息所在位置是 /etc/passwd,而管理密码的数据则是在 /etc/shadow 每个登陆的使用者至少都会取得两个 ID , 一个是使用者 ID ...

  6. 20155222 2016-2017-2 《Java程序设计》第4周学习总结

    20155222 2016-2017-2 <Java程序设计>第4周学习总结 教材学习内容总结 子类会继承父类的private成员,但是无法直接存取,必须通过父类提供的方法. 多态就是使用 ...

  7. 20155328 2016-2017-2 《Java程序设计》第二周学习总结

    20155328 2006-2007-2 <Java程序设计>第2周学习总结 教材学习内容总结 基本类型: 整数:short整数(占2字节).int整数(占4字节).long整数(占8字节 ...

  8. 回顾RAC安装过程中对ASM的处理

    1 首先建立好节点间共享的磁盘,要注意从各节点看到的磁盘的序号.名称一致. 2 通过某一个节点,对共享磁盘进行格式化. 3 在Grid Infrastructure 中, 有一个为OCR选择存储介质的 ...

  9. centos7.5yum安装mysql(官方yum源比较慢)

    mysql的部署 查看Linux发行版本 cat /etc/redhat-release 下载MySQL官方的Yum Repository wget -i http://dev.mysql.com/g ...

  10. day5 页面布局

    1.主站 <div class='pg-header'> <div style='width:980px;margin:0 auto;'> 内容自动居中 </div> ...