python基础知识-04-字符串列表元组
内存,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-字符串列表元组的更多相关文章
- python基础知识回顾之列表
在python 中,主要的常用数据类型有列表,元组,字典,集合,字符串.对于这些基础知识,应该要能够足够熟练掌握. 如何创建列表: # 创建一个空列表:定义一个变量,然后在等号右边放一个中括号,就创建 ...
- Python基础知识之字符串操作方法总结
Python 中字符串也是一种数据类型,针对此数据总结下常用的方法 1,字符串截取,变量[头下标:尾下标],就可以截取相应的字符串,其中下标是从0开始算起,可以是正数或负数,下标可以为空表示取到头或尾 ...
- python基础知识-集合,列表,元组间的相互装换
在python中列表,元祖,集合间可以进行相互转化, def main(): set1={'hello','good','banana','zoo','Python','hello'} print(l ...
- 1.10 Python基础知识 - 序列:列表
在Python中有很多的组合数据类型,其中包括列表,元组,字符串等数据类型,这些数据类型统称为序列类型,用他们可以处理复杂的数据. 列表,是一组有序元素组合的数据结构.列表是可变的数据类型. 列表采用 ...
- python基础知识(字符串)
定义字符串 ' '单引号 " "双引号 只能用于单行 '" '"三引号 可以用于多行 拼接字符串使用 +号链接 字符串只能链接字符串其他类型字符串需要用s ...
- Python数据类型-布尔/数字/字符串/列表/元组/字典/集合
代码 bol = True # 布尔 num = 100000000; # 数字 str = "fangbei"; # 字符串 str_cn = u"你好,方倍" ...
- Python基础知识:字符串
1.Python中大写字母命名的变量,默认为常量,不可修改:列如:MYSQL_CONNECTION = '192.168.1.1' 2.字符串换行输入格式:换行用\隔开,两行分别用引号,制表符\t,换 ...
- python基础知识第四篇(元组)
元组 list列表 li[11,22,33,44]列表和元组的区别:元素不可被修改,不可被增加或者删除(一级元素),列表则相反 tuple元组 tu=(111,222,333,444) 支持索引取值 ...
- python基础知识0-4
collection 他是对字典 元组 集合 进行加工的 是计数器 无论 深 ,浅 ,赋值 拷贝 内存地址都不变 赋值也是拷贝的一种 拷贝分两类数字 字符串 另一类: 列表 字典 元组 这一类还分两 ...
- Python 整数 长整数 浮点数 字符串 列表 元组 字典的各种方法
对于Python, 一切事物都是对象,对象基于类创建!! 注:查看对象相关成员var,type, dir 一.整数 如: 18.73.84 每一个整数都具备如下需要知道的功能: def bit_len ...
随机推荐
- JS与OC交互,JS中调用OC方法(获取JSContext的方式)
最近用到JS和OC原生方法调用的问题,查了许多资料都语焉不详,自己记录一下吧,如果有误欢迎联系我指出. JS中调用OC方法有三种方式: 1.通过获取JSContext的方式直接调用OC方法 2.通过继 ...
- vue-scroller使用
<template> <div class="page page-scroller"> <scroller class="scroller& ...
- PHP获取一篇文章内容中的全部图片,并下载
- 虚拟机与ARM之间的交叉编译总结
通过三大服务的配置,我们可以在ARM中下载内核和文件系统.我们通过在虚拟机中编程,得到的程序不能在ARM中运行,需要经过一个交叉编译.得到的可执行程序可以在ARM中运行,此时不能在虚拟机Linux中运 ...
- python 文件读取方法详解
话不多说直接码 # 绝对路径 # f = open('/Users/fangxiang/Downloads/我的古诗.text', mode='r', encoding='utf-8') # cont ...
- 爬取知乎热榜标题和连接 (python,requests,xpath)
用python爬取知乎的热榜,获取标题和链接. 环境和方法:ubantu16.04.python3.requests.xpath 1.用浏览器打开知乎,并登录 2.获取cookie和User—Agen ...
- C语言编程学习不难学,是你没找对方法!
C语言是面向过程的,而C++是面向对象的 C和C++的区别: C是一个结构化语言,它的重点在于算法和数据结构.C程序的设计首要考虑的是如何通过一个过程,对输入(或环境条件)进行运算处理得到输出(或实现 ...
- Linux Shell中管道的原理及C实现框架
在shell中我们经常用到管道,有没考虑过Shell是怎么实现管道的呢? cat minicom.log | grep "error" 标准输入.标准输出与管道 我们知道,每一个进 ...
- Matlab_GUI
1.GUI中控件的属性 BackgroundColor 控件的背景 FontSize 控件字体的大小
- Oracle入门第三天(下)——子查询
一.子查询 1.子查询语法 SELECT select_list FROM table WHERE expr operator (SELECT select_list FROM table) 示例: ...