版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
一、字符串及其相关操作
"""
字符串:
使用单双引号括起来的就是字符串,可以看做是字符的数组
取值:
通过下标来取
实际的数据: A B C D E F
内存对应: 0 1 2 3 4 5
下标取值都是从0开始,最后一个是end-1
格式:
字符串[下标]
注意:
正向取值从0开始,最后一个是end-1
反向取值从-1开始
"""
#*********************************************************
str = "hello python"
print(str[0])
print(str[-1])
#*********************************************************
"""
#切片 pyt
截取字符串
格式:
字符串[起始值:终止值:步长]
注:
不包含终止值
比如:
str[:]
str[::]
str[::-1]
"""
#*********************************************************
str = "ABCDEFG"
print(str[:]) #输出所有
print(str[::]) #输出所有
print(str[::-1]) #逆序输出
print(str[0:3])
print(str[-3:-5:-1])
print(str[7-2:7]) #取最后两个
#*********************************************************
"""
字符串常见操作
1.find()
检查是s是否存在于str中,如果存在返回第一个值得下标,否则返回-1
2.index()
功能和find一样,但是如果找不到会报异常
3.count("a",x,y)
统计字符在字符串中出现的次数或者在[x,y)之间出现的次数
4.replace(S2,S1,a)
使用新字符s2替换s1,替换次数为a
如果没有指定替换次数,全部替换
5.split(s1)
按照s1字符切割字符串,切割之后形成的是一个列表
6.center()
将字符串居中显示
7.jion("ABC")
通过()中的元素中之间插入str拼接成新的字符串:结果为:"A"+"str"+"B"+"str"+"C"
8.len()
统计字符串的长度
"""
#*********************************************************
str = "ABCDEFBD"
# 01234567
print("1.",str.find("B"))
print("2.",str.find("BD"))
print("3.",str.find("Z"))
print("4.",str.index("B"))
print("5.",str.index("BD"))
print("6.",str.count("B"))
print("7.",str.count("B",1,6))
print("8.",str.replace("B","A",1))
print("9.",str.split("C"))
print("10.",str.center(20))
print("11.",str.join("1234"))
print("12.",len(str))
#*********************************************************
"""
字符串的不变形:
id():
提取存在内存中的地址
即不能直接赋值更改字符串的内容
"""
#************************************************************
str3 = "python"
print(id(str3))
#************************************************************
"""
从键盘录入5个学生的姓名,存储起来
运用字符串操作实现
"""
#************************************************************
stu_name = ""
print("原始stu_name:%d"%id(stu_name))
for i in range(5):
name = input("请输入学生姓名:")
#这一步操作会重复的进行删除和创建
stu_name = stu_name + "," + name
print(stu_name)
#************************************************************
二、列表及其相关操作
"""
列表:list
用来临时存储数据,并且可以对存储的数据进行增删改查
1.列表是一个容器
[123,"zs","张三",{}]
2.列表是序列的一种
3.列表由一系列特殊元素组成,这些元素之间可以没有任何关系,但是
有先后顺序
创建空列表:
第一种:
list1 = []
第二种:
list2 = list()
创建非空列表:
第一种:
list3 = ["张无忌","赵敏","周芷若"]
第二种:
str = "hello"
list4 = list(str)
list5 = list(range(10)) #list可以将可迭代对象转换为列表
"""
#************************************************************
str = "hello"
list1 = list(str)
print(list1)
list2 = list(range(10))
print(list2)
print(type(list2[1]))
# ************************************************************
"""
从键盘录入5个学生的姓名,存储起来
用列表来实现
"""
stu_name = "张无忌,赵敏,金毛狮王,周芷若,小昭"
str = stu_name.split(",")
print(str)
"""
列表的运算:
+:
两个列表进行加法运算,是拼接成一个新列表
*:
列表进行乘法运算,生成列表是前面列表的重复
"""
# ************************************************************
list1 = [1,2,3]
list2 = [4,5,6]
list3 = list1 + list2
print(list3)
list4 = list1 * 3
print(list4)
# ************************************************************
"""
列表比较运算:
> >= < <= == !=
常用ASCII:
"0" 48
"A" 65
"a" 97
注意:
数值之间直接比大小,字符之间比ASCII
字符串与字符串比较,则优先比较前位的字符,相等再比较下一位
列表比较则为先比较列表的第一位元素,若相等则比较下一位...
"""
# ************************************************************
str1 = "ab"
str2 = "ad"
str3 = "abc"
str4 = "ada"
print(str1 < str2)
print(str1 < str3)
print(str3 < str4)
list1 = [1,2,3,9,10]
list2 = [4]
print(list1 < list2)
# ************************************************************
"""
列表的增删改查:
1.增加
append() #将()中的元素拓展加的列表后面
insert(x,"A") #在列表的x位置上插入"A"
extend() #将()中列表的元素加到当前列表的后面
"""
# ************************************************************
# 使用append添加元素
list1 = []
for i in range(1,10):
list1.append(i)
list1.append("A")
print(list1)
#使用insert插入元素
list1.insert(4,"B")
print(list1)
#使用extend
list1 = [11,20,12]
list1.extend(list1)
list1.extend("ABC")
print(list1)
# ************************************************************
"""
从键盘录入5个学生的姓名,存储起来
"""
# ************************************************************
i = 1
list1 = []
while i < 6:
name = input("请输入姓名:")
list1.append(name)
i += 1
print(list1)
# ************************************************************
"""
更新:
直接找到元素所在列表的位置,然后重新复制
"""
# ************************************************************
list1 = ["zs", "ls", "we", "jm", "hsq"]
num = list1.index("hsq")
# 修改直接通过下标找到值
list1[num] = "cxk"
print(list1)
# ************************************************************
"""
删除操作
del:根据下标删除
del 列表[下表]
pop:删除最后一个
列表.pop() #如果无下标,删最后一个;如果有下标,则删对应的值
remove:根据值删除
列表.remove(要删的元素)
"""
# ************************************************************
list1 = [1, 2, 3, 4, 5, "haha", 6, 7, 8, 9, 10]
del list1[2]
print(list1)
list1.pop()
print(list1)
list1.remove(8)
print(list1)
list1.remove("haha")
print(list1)
# ************************************************************
"""
循环打印每一个姓名,并删除该学生,最后保证列表打印是,一个都没有
"""
# ************************************************************
list1 = ['zs','ls','we','lc',"cxk"]
while list1 != []:
print(list1[0])
del list1[0]
print(list1)
# ************************************************************
三、字典及其相关操作
"""
由于类表只能通过下标访问到值,不能精确定位,所有产生了字典
1.字典和列表一样,都能存储数据
2.列表的存储没有限制,但字典有:
1)字典的key不能重复
2)字典的不能是可变类型
3.字典的查找是通过key进行,列表是通过下标
4.字典是成对存在的
以key:value
比如:"name":"张三"
创建字典:
dic = {}
"""
# ************************************************************
dic = {}
print(dic)
# ************************************************************
"""
1.字典的增加操作:
字典[键] = 值
2.字典的修改操作:
字典[键] = 值
注意:
如果键不在字典中,则赋值为增加操作
如果键在字典中,则赋值为修改操作
如果字典在创建的时候出现键重复,则已最后一个为准
3.字典的删除操作
del 字典[键]
字典.clear() #清空操作
注意:
如果删除不存在的键,会报keyerror错误
不能直接使用del字典
"""
# ************************************************************
dic = {}
print(dic)
dic["name"] = "葫芦娃"
print(dic)
dic["zy"] = "救爷爷"
print(dic)
del dic["zy"]
print(dic)
dic.clear()
print(dic)
# ************************************************************
"""
从键盘录入学生信息:姓名 name 学号 ID 班级 class
录入三个学生保存起来
"""
# ************************************************************
list1 = []
i = 1
n = 1
while i :
dic = {}
name = input("请输入姓名:")
ID = input("请输入学号:")
class1 = input("请输入班级:")
dic["name"] = name
dic["ID"] = ID
dic["class1"] = class1
list1.append(dic)
print("第%d学生信息录入成功"%n)
n += 1
i = int(input("若要继续输入学生信息请输入1,停止则输入0:"))
print(list1)
# ************************************************************
"""
读取操作
"""
list2 = [{'name': 'zs', 'ID': '001', 'class1': '1701'}, {'name': 'ls', 'ID': '002', 'class1': '1701'}, {'name': 'ww', 'ID': '003', 'class1': '1701'}]
for i in range(len(list2)):
if list2[i]["name"] == "ls":
print(list2[i])
# ************************************************************
"""
字典的循环
key:value 的形式存在
第一种:
for i in 字典:
print(i)
第二种:
for i in keys:
print(i)
第三种:
for i,j in items:
print(i.j)
第四种:
for i in v:
print(i)
"""
dic = {"name":"zs","sex":"男","class1":"1001"}
#使用第一种:得到的是key的值
for i in dic:
print(i)
#使用二种:得到的是key的值
for i in dic.keys():
print(i)
#使用第三种:得到的是key和值的值
for i,j in dic.items():
print(i,j)
#使用第四种:得到value的值
for i in dic.values():
print(i)
"""
如果字典中的键不存在,我们又进行调用了,就会出错
为了避免因为key不存在出现的错误,咋们在输出之前先检查是否存在:
字典.get(需要查询的key)
"""
#print(dic.get("ID"))
while True:
print("输入Q,退出循环!")
str1 = input("请输入要查询的值:")
if str1 == "Q":
print("谢谢使用,欢迎下次再来!")
break
elif dic.get(str1) == None:
print("该键不存在")
else:
print(dic[str1])