寒假自学(二)

希望所有温柔又可爱的人最后都能幸福❤

今日总结:

代码量 200行
博客量 一篇
所学时间 6小时左右
了解到的知识点 python公共方法、名片管理系统、Scala入门

明日计划:

早上 python语法进阶
下午 python语法进阶
晚上
具体内容:
python内置函数
函数 描述 备注
len(item) 计算容器中元素个数
del(item) 删除变量 del有两种方式
max(item) 返回容器中最大值 如果是字典,只针对key比较
min(item) 返回容器中最小值 如果是字典,只针对key比较

切片

描述 python 结果 支持的数据类型
切片 “0123456789”[::-2] "97531" 字符串、列表、元组

运算符

运算符 Python表达式 结果 描述 支持的数据类型
+ [1,2] + [3,4] [1,2,3,4] 合并 字符串、列表、元组
* ["Hi"]*4 ["Hi","Hi","Hi","Hi"] 重复 字符串、列表、元组
in 3 in (1,2,3) True 元素是否存在 字符串、列表、元组、字典
not in 4 not in(1,2,3) True 元素是否不存在 字符串、列表、元组、字典
> >= == > <= (1,2,3)<(2,2,3) True 元素比较 字符串、列表、元组

for循环演练

for num in [1, 2, 3]:
    print(num)
else:
    # 当循环体内部所有变量被执行完才会执行else
    print("会执行吗?")
print("循环结束")

students = [
    {"name": "阿肖"},
    {"name": "肖甜甜"}
]

find_name = "李帅"

for stu_dict in students:
    print(stu_dict)
    if stu_dict["name"] == find_name:
        print("找到了 %s" % find_name)
        break
else:
    print("抱歉没有找到 %s" % find_name)
print("循环结束")

综合演练:

​ 名片管理系统

image-20210104165632483

image-20210104165652343

image-20210104165717979

image-20210104165727126

image-20210104165742384

image-20210104165810301

image-20210104165835764

image-20210104165855292

使用TODO注释

# TODO(蒲) 显示功能菜单

框架搭建

  • 新建card_main保存主程序入口
  • 新建card_tools保存名片功能函数,新增、查询、修改、删除等函数

card_main.py

import cards_tools
while 1:

    # TODO(蒲) 显示功能菜单

    cards_tools.show_menu()

    action_tr = input("请选择希望执行的操作:")
    print("您选择的操作是【%s】" % action_tr)
    # 使用in避免复杂的逻辑运算
    if action_tr in ["1", "2", "3"]:
        if action_tr == "1":
            cards_tools.new_card()
        elif action_tr == "2":
            cards_tools.show_all()
        else:
            cards_tools.search_card()
    elif action_tr == "0":
        print("欢迎再次使用【名片管理系统】")
        break
    else:
        print("您输入的不正确,请重新选择")

card_tools.py

card_list = []


def show_menu():
    """显示菜单"""
    print("*" * 50)
    print("欢迎使用【名片管理系统】V 1.0")
    print("")
    print("1.新增名片")
    print("2.显示全部")
    print("3.搜索名片")
    print("")
    print("0.退出系统")
    print("*" * 50)


def new_card():
    """新增名片"""
    print("新增名片")
    name_str = input("请输入姓名:")
    phone_str = input("请输入电话:")
    qq_str = input("请输入qq:")
    email_str = input("请输入邮箱:")
    card_dict = {"name": name_str,
                 "phone": phone_str,
                 "qq": qq_str,
                 "email": email_str}
    card_list.append(card_dict)  # 把字典加入到列表
    print(card_list)
    print("添加 %s 的名片成功" % name_str)


def show_all():
    print("显示所有名片")

    if len(card_list) == 0:
        print("当前没有任何名片记录,请使用新增名片功能添加名片!")
        return
    for name in ["姓名", "电话", "qq", "邮箱"]:
        print(name, end="\t\t")
    print("")
    print("=" * 50)
    for i in card_list:
        print("%s\t\t%s\t\t%s\t\t%s" % (i["name"],
                                        i["phone"],
                                        i["qq"],
                                        i["email"]))
    print("")


def search_card():
    print("搜索名片")
    find_name = input("请输入要搜索的姓名:")
    for i in card_list:
        if i["name"] == find_name:
            print("姓名\t\t电话\t\tqq\t\t邮箱")
            print("=" * 50)
            print("%s\t\t%s\t\t%s\t\t%s" % (i["name"],
                                            i["phone"],
                                            i["qq"],
                                            i["email"]))
            # 处理名片
            deal_card(i)
            break
    else:
        print("没找到")


def deal_card(find_dict):
    print(find_dict)
    action_str = input("请选择要执行的操作 [1] 修改 [2] 删除 [0] 返回上级主菜单")
    if action_str == "1":
        find_dict["name"] = input("姓名:")
        find_dict["phone"] = input("电话:")
        find_dict["qq"] = input("qq:")
        find_dict["email"] = input("邮箱:")
        print("修改名片成功!")
    elif action_str == "2":
        card_list.remove(find_dict)
        print("删除名片成功!")
    else:
        pass

Spark是新一代内存级大数据框架,是大数据的重要内容。

Spark就是用Scala编写的

ScalaScalable Language 的简写,是一门多范式(范式指编程的方式,例如:面向对象(命令式编程)/函数式编程)的编程语言

Scala里大量地使用了递归

image-20210104214616702

Scala是一门以java虚拟机(JVM)为运行环境并将面向对象函数式编程的最佳特性结合在一起的静态类型编程语

posted @ 2021-01-04 22:36  DemonSlayer  阅读(70)  评论(0编辑  收藏  举报