一周快速入门Python之day02


活动地址:CSDN21天学习挑战赛

学习的最大理由是想摆脱平庸,早一天就多一份人生的精彩;迟一天就多一天平庸的困扰。各位小伙伴,如果您:
想系统/深入学习某技术知识点…
一个人摸索学习很难坚持,想组团高效学习…
想写博客但无从下手,急需写作干货注入能量…
热爱写作,愿意让自己成为更好的人…


欢迎参与CSDN学习挑战赛,成为更好的自己,请参考活动中各位优质专栏博主的免费高质量专栏资源(这部分优质资源是活动限时免费开放喔~),按照自身的学习领域和学习进度学习并记录自己的学习过程。您可以从以下3个方面任选其一着手(不强制),或者按照自己的理解发布专栏学习作品,参考如下:

**

学习计划

1,学习目标

提示:可以添加学习目标
例如: 一周掌握 Python 入门知识

2,学习内容

提示:可以添加要学的内容
例如:
A,掌握 Python 基本语法
B,掌握 Python 列表、字典、元组等集合类型的用法
C,掌握 Python 函数
D,掌握 Python 常用模块
E, 掌握 Python 模块与包
F,掌握 Python 类与对象

3,学习时间

每天拿出来两个小时

4,学习产出

CSDN技术博客 每天一篇

学习日记

day02 Python的基础语法——列表、字典、元组

1.列表初始
name1 = "张新晓"
name2 = "潘磊"

# 列表的构建 语法格式 [数据对象,...,]
# 特点1: 列表中的元素可以是任意数据类型
# 特点2: 列表中的元素个数没有限制

l1 = [100, "hello", True]
print(type(l1))  # list
l2 = [100, 2, 34, 5]
print(len(l2))  # 4

names = ["", "", "", ]
2.列表的序列操作
l = [10, 20, 30, 40, 50]

# 列表是一个序列类型

# 一 支持正负索引  数据对象[索引]
# print(l[1])
# print(l[-3])
print(id(l))
l[0] = 100
print(l)
print(id(l))

# 二 支持切片: 数据对象[开始索引:结束索引:步长]  顾头不顾尾
# print(l[1:4])  # [20, 30, 40]
# print(l[-4:-1])  # [20, 30, 40]
# print(l[1:])  # [20, 30, 40, 50]
# print(l[:3])  # [20, 30, 40, 50]
# print(l[:])  # [10, 20, 30, 40, 50]
# print(l[-2:-5:-1])  # [40, 30, 20]

# 三 in操作: 某个值是否是列表中的某个元素值
# names = ["rain", "yuan", "alvin"]
# print("rai" in names)
# print("rai" in "rain")
# print(1 in ["1", 2, 3])
# # 案例
# n = 0
# while n < 100:
#
#     # if n != 88 and n != 66:
#     #     print(n)
#
#     if n not in [66, 88, 33, 44, 55]:
#         print(n)
#
#     n += 1


# 拼接 +

l1 = [1, 2, 3]
l2 = [4, 5, 6]
print(l1 + l2) #  [1, 2, 3, 4, 5, 6]
print(l1)
print(l2)
3.列表内置方法
# 列表内置方法:  列表对象.方法()
# 列表的内置方法是用来管理列表中的数据:增删改查

# 一 增:append:追加  insert:向任意位置插入值  extend

# print("hello".upper())

# 案例1: append
# l = [10, 20, 30, 40]
# ret = l.append(50)
# print(l)  # [10, 20, 30, 40,50]
# print(ret) # None

# 案例2: insert(索引,值)
# l = [10, 20, 30, 40]
# l.insert(0, 100)
# print(l) # [100, 10, 20, 30, 40]

# 案例3: extend
# l1 = [10, 20, 30, [4, 5, 6]]
# 如何获取5的值
# print(l1[3][1])
# print(len(l1))
# l2 = [1, 2, 3]
# l3 = [4, 5, 6]
# l2.append(l3)
# print(l2)  # [1,2,3,[4,5,6]]
# print(len(l2))
# print(id(l2))
# ret = l2.extend(l3)
# print("ret:", ret)
# print(l2)  # [1, 2, 3, 4, 5, 6]
# print(id(l2))


# 二 删 pop():按索引删除  remove():按值删除  clear():清空

# names = ["张三", "李四", "王五"]

# 按索引删除
# del_name = names.pop(0)  # pop返回删除元素值
# print(names)
# print("将%s删除掉了" % del_name)

# 按元素值删除

# ret = names.remove("李四")
# print(ret)  # None
# print(names)

# 清空列表
# names.clear()
# print(names)  # []

# del names
# print(names)

# 三 改: 没有内置方法修改元素,只能通过索引完成

# l = [1, 2, 3]
# l[0] = 100
# print(l)  # [100, 2, 3]

# 四 查 index  count  sort reverse

# names = ["张三", "李四", "王五", "李四"]
# print(names.index("李四"))
# print(names.count("李四"))
#
# age_list = [20, 22, 18, 45, 32]
# # age_list.reverse()  # age_list :[32,45,18,22,20]
#
# age_list.sort(reverse=True)
# print(age_list)  # [45, 32, 22, 20, 18]
#
# age_list = ["100", "10", "12"]
# age_list.sort()
# print(age_list)  # ['10', '100', '32']

# 练习题
# 将字符串 "20,15,34,188,26"中的所有数字进行从大到小排序按"-"作为分隔符组成新的字符串
# 方案1:
# s = "20,15,34,188,26"
# l1 = s.split(",")
# print(l1)  # ['20', '15', '34', '188', '26']
# l2 = []
# for i in l1:
#     l2.append(int(i))
#
# print(l2)
# l2.sort(reverse=True)
# print(l2)
# l3 = []
# for i in l2:  # l2: [15, 20, 26, 34, 188]
#     l3.append(str(i))
# print(l3)  # ['15', '20', '26', '34', '188']
#
# print("-".join(l3)) # 15-20-26-34-188

# 方案2
s = "20,15,34,188,26"
l1 = s.split(",") # ['20', '15', '34', '188', '26']
l2 = [int(i) for i in l1]
l2.sort(reverse=True)
l3 = [str(i) for i in l2]
print("-".join(l3)) # 188-34-26-20-15
4.列表的循环和range函数
# 列表内置方法:  列表对象.方法()
# 列表的内置方法是用来管理列表中的数据:增删改查

# 一 增:append:追加  insert:向任意位置插入值  extend

# print("hello".upper())

# 案例1: append
# l = [10, 20, 30, 40]
# ret = l.append(50)
# print(l)  # [10, 20, 30, 40,50]
# print(ret) # None

# 案例2: insert(索引,值)
# l = [10, 20, 30, 40]
# l.insert(0, 100)
# print(l) # [100, 10, 20, 30, 40]

# 案例3: extend
# l1 = [10, 20, 30, [4, 5, 6]]
# 如何获取5的值
# print(l1[3][1])
# print(len(l1))
# l2 = [1, 2, 3]
# l3 = [4, 5, 6]
# l2.append(l3)
# print(l2)  # [1,2,3,[4,5,6]]
# print(len(l2))
# print(id(l2))
# ret = l2.extend(l3)
# print("ret:", ret)
# print(l2)  # [1, 2, 3, 4, 5, 6]
# print(id(l2))


# 二 删 pop():按索引删除  remove():按值删除  clear():清空

# names = ["张三", "李四", "王五"]

# 按索引删除
# del_name = names.pop(0)  # pop返回删除元素值
# print(names)
# print("将%s删除掉了" % del_name)

# 按元素值删除

# ret = names.remove("李四")
# print(ret)  # None
# print(names)

# 清空列表
# names.clear()
# print(names)  # []

# del names
# print(names)

# 三 改: 没有内置方法修改元素,只能通过索引完成

# l = [1, 2, 3]
# l[0] = 100
# print(l)  # [100, 2, 3]

# 四 查 index  count  sort reverse

# names = ["张三", "李四", "王五", "李四"]
# print(names.index("李四"))
# print(names.count("李四"))
#
# age_list = [20, 22, 18, 45, 32]
# # age_list.reverse()  # age_list :[32,45,18,22,20]
#
# age_list.sort(reverse=True)
# print(age_list)  # [45, 32, 22, 20, 18]
#
# age_list = ["100", "10", "12"]
# age_list.sort()
# print(age_list)  # ['10', '100', '32']

# 练习题
# 将字符串 "20,15,34,188,26"中的所有数字进行从大到小排序按"-"作为分隔符组成新的字符串
# 方案1:
# s = "20,15,34,188,26"
# l1 = s.split(",")
# print(l1)  # ['20', '15', '34', '188', '26']
# l2 = []
# for i in l1:
#     l2.append(int(i))
#
# print(l2)
# l2.sort(reverse=True)
# print(l2)
# l3 = []
# for i in l2:  # l2: [15, 20, 26, 34, 188]
#     l3.append(str(i))
# print(l3)  # ['15', '20', '26', '34', '188']
#
# print("-".join(l3)) # 15-20-26-34-188

# 方案2
s = "20,15,34,188,26"
l1 = s.split(",") # ['20', '15', '34', '188', '26']
l2 = [int(i) for i in l1]
l2.sort(reverse=True)
l3 = [str(i) for i in l2]
print("-".join(l3)) # 188-34-26-20-15
5.列表推导式
# l = [1, 2, 3, 4, 5]
# l2 = []
# for i in l:
#     l2.append(i * i)
# print(l2)

# 列表推导式:[表达式 for i in 可迭代对象]
l = [1, 2, 3, 4, 5]
l2 = [i * i for i in l]
print(l2)  # [1,4,9,16,25]
6.字典初始
# 字典是python的唯一一个hash映射的数据类型

l = ["rain", 22, "male"]
# 字典中一个键值对是一个元素
# 字典的键必须是不可变数据类型(除了列表和字典数据类型),常用的就是字符串和整型
# 字典的值可以是任意数据类型
# 字典的键值对原则上没有限制
# 字典特点:无序,键不能重复
d = {"name": "rain", "age": 22, "gender": "male"}
print(d, type(d))  # dict
7.字典的基本操作
stu = {"name": "yuan", "age": 22}
# print(len(stu))

# 一 通过键查询值 列表对象[索引]  字典对象[键]
print(stu["name"])  # yuan
print(stu["age"])  # yuan
print(stu["xxx"])  # 键不存在报错

# 二 添加或修改
stu["gender"] = "male"  # 键不存在,则是添加键值对
stu["age"] = 24  # 键存在,则修改键值对
print(stu)

# 删除键值对  del命令
del stu["gender"]
print(stu)
8.字典的内置方法
# 字典的内置方法:对字典对象的数据管理
stu = {"name": "yuan", "age": 22, "gender": "female"}

# 一 查看键值对
# print(stu.get("name"))
# print(stu.get("age"))
# print(stu.get("gender", "male"))
# print(stu.keys())  # ['name', 'age']
# print(stu.values())  # ['yuan', 22]
# print(stu.items())  # [('name', 'yuan'), ('age', 22)]

# 二 添加或修改键值对:update
# stu.update({"age":32,"gender":"male"})
# ret = stu.setdefault("gender", "male")  # 获取name键的值
# print(ret)
# print(stu)

# 三 删除键值对:pop
# ret = stu.pop("age")
# stu.popitem()
# print("age",ret)
# print("stu",stu)
9. 字典的for循环
stu = {"name": "yuan", "age": 22, "gender": "female"}

# print(stu.get("name"))
# k = "age"
# print(stu.get(k))
# 方式1
# for i in stu:
#     print(i, stu.get(i))  # 遍历字典的键


# 方式2
# x = [1, 2, 3]
# print(x, type(x))  # tuple
# a, *b = [1, 2, 3]
# print(a, b)

for k,v in stu.items(): # [("name","yuan")],("age",22),("gender","male)]
    print(k,v)
10.元组类型
# 元组称之为只读列表

l = [1, 2, 3]
l[0] = 100
t = (1, 2, 3)
print(t, type(t))  # tuple
print(t[1])
print(t[1:])
print(1 in t)

t.count(1)
t.index(1)

for i in t:
    print(i)
11.字典的使用
# 练习1
stu = {"name": "yuan", "score": [100, 90, 80]}
# 获取外语的成绩
l = stu.get("score")  # [100, 90, 80]
print(l[-1])
print(stu.get("score")[-1])

# 练习2
stu = {"name": "yuan", "score": {"chinese": 100, "math": 90, "english": 80}}
print(len(stu))
print(stu.get("score").get("english"))

# 练习3
data = [
    {"sid":1001,"name": "rain", "age": 22},
    {"sid":1003,"name": "eric", "age": 32},
    {"sid":1002,"name": "alvin", "age": 24},
]

for stu_dict in data:
    name = stu_dict.get("name")
    age = stu_dict.get("age")
    print("姓名:%s,年龄:%d" % (name, age))


data2 = {
    1001: {"name": "rain", "age": 22},
    1002: {"name": "eric", "age": 32},
    1003: {"name": "alvin", "age": 24},
}
print(data2.get(1001).get("name"))

for stu_id,stu_info in data2.items():
    name = stu_info.get("name")
    age = stu_info.get("age")
    print("学号:%s,姓名:%s,年龄:%d" % (stu_id,name, age))
12. 字典的面试题
# 案例1
# l1 = [1, 2, 3]
# l2 = [4, 5, l1]
# print(l2) # [4, 5, [1, 2, 3]]
# l1[0] = 100
# print(l2)
# 案例2

stu01 = {"name": "rain"}
stus_dict = {1001: stu01}
print(stus_dict)
stu01["name"] = "alvin"
print(stus_dict)
print(id(stus_dict[1001]))
stus_dict[1001] = {"name": "eric"}
print(id(stus_dict[1001]))
print(id(stu01))
13. 作业
# 确定数据以什么数据类型和格式进行存储
students_dict = {
    1001: {
        "name": "yuan",
        "scores": {
            "chinese": 100,
            "math": 89,
            "english": 100,
        }
    },
    1002: {
        "name": "rain",
        "scores": {
            "chinese": 100,
            "math": 100,
            "english": 100,
        }
    },
}

while 1:
    print('''
       1.  查看所有学生成绩
       2.  添加一个学生成绩
       3.  修改一个学生成绩
       4.  删除一个学生成绩
       5.  退出程序
    ''')
    choice = input("请输入您的选择:")

    if choice == "1":
        # 查看所有学生信息
        print("*" * 60)
        for sid, stu_dic in students_dict.items():
            # print(sid,stu_dic)
            name = stu_dic.get("name")
            chinese = stu_dic.get("scores").get("chinese")
            math = stu_dic.get("scores").get("math")
            english = stu_dic.get("scores").get("english")

            print("学号:%4s 姓名:%4s 语文成绩:%4s 数学成绩%4s 英文成绩:%4s" % (sid, name, chinese, math, english))
        print("*" * 60)
    elif choice == "2":
        while 1:
            sid = input("请输入学生学号>>>")
            # 判断该学号是否存在
            if int(sid) in students_dict:  # 该学号已经存在!
                print("该学号已经存在!")
            else:  # # 该学号不存在!
                break

        name = input("请输入学生姓名>>>")
        chinese_score = input("请输入学生语文成绩>>>")
        math_score = input("请输入学生数学成绩>>>")
        english_score = input("请输入学生英语成绩>>>")

        # 构建学生字典
        scores_dict = {
            "chinese": chinese_score,
            "math": math_score,
            "english": english_score,
        }
        stu_dic = {
            "name": name,
            "scores": scores_dict
        }
        print("stu_dic", stu_dic)
        students_dict[int(sid)] = stu_dic

    elif choice == "3":
        while 1:
            sid = input("请输入学生学号>>>")
            # 判断该学号是否存在
            if int(sid) in students_dict:  # 该学号已经存在!
                break
            else:  # # 该学号不存在!
                print("该修改学号不存在!")

        chinese_score = input("请输入学生语文成绩>>>")
        math_score = input("请输入学生数学成绩>>>")
        english_score = input("请输入学生英语成绩>>>")

        # 修改学生成绩
        scores_dict = {
            "chinese": chinese_score,
            "math": math_score,
            "english": english_score,
        }

        students_dict.get(int(sid)).update({"scores": scores_dict})
        print("修改成功")

    elif choice == "4":
        while 1:
            sid = input("请输入学生学号>>>")
            # 判断该学号是否存在
            if int(sid) in students_dict:  # 该学号已经存在!
                break
            else:  # # 该学号不存在!
                print("该修改学号不存在!")

        students_dict.pop(int(sid))
        print("删除成功")

    elif choice == "5":
        # 退出程序
        break
    else:
        print("输入有误!")
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值