Python连载笔记(三)——————字符串、列表与字典

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接: https://blog.csdn.net/qq_42025108/article/details/102688820

一、字符串及其相关操作

"""
    字符串:
        使用单双引号括起来的就是字符串,可以看做是字符的数组
    取值:
        通过下标来取
        实际的数据: 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])


猜你喜欢

转载自blog.csdn.net/qq_42025108/article/details/102688820