当前位置: 首页 > news >正文

公开课观后感:密歇根大学python for everyone

从2024年1月17日到2024年8月20日,终于将密歇根大学的python for everyone的python公开课跟完。站在一月份规划的时刻来看,比我想象中花费的时间更多,我当时肯定没有想到要花上整整七个月的时间才能将这个公开课的内容看完,毕竟这个公开课时python的基础课程,而python在各类编程语言中的难度并不大,其作为解释性语言,语义相对容易理解。

而站在今天的角度来看,将这门课按照年初计划完整的、扎实的学习,真是令人欣慰与感慨。很不容易,在上班之后,其实个人时间并不是那么的充裕,我欣慰于自己有勇气、有毅力能够始终坚持自己的原则。

说回这门课,最主要的特点是包含着大量的上机实践,它可以帮助我们有效的检验对学习内容的理解程度。也正因为如此,它相当的平衡了输入和输出两方面,在完成上机实验的过程中,需要花费大量的时间,这也是为什么我最终用了七个月才完成此公开课的学习。值得一提的是,每一个领域的学习都最好能够按照这门课的模式,找到好的输出途径,之后要优先选择能够有输出反馈的课程,如果没有,则应该思考如何构建。

基本课程内容

在学习这门公开课之前,我有过将近两年的python使用经历,不过仅限于给自己的论文画图,从开源渠道获得的主框架代码,个人日常就是修改一下参数,调整图形的大小、颜色、样式等。在当时的需求下,我不需要对python有更多的了解,以至于我甚至不掌握python的基本数据结构,每次都要依靠百度来解决一些基本问题。这种现学现用的模式可以应急解决一些迫切的问题,却没办法写出鲁棒、整洁、优雅的框架去解决复杂的问题。因此我选择跟一门公开课去学习python的基础知识。

这次通过对公开课完整的学习,较为全面的掌握了python的基础内容。

基本数据结构

基本数据类型:int、String等,和python特有的数据类型:列表list、字典dict、集合set、元组tuple。

String类型。由于python会涉及到各种数据的处理,因此string的使用非常重要。之前不了解但现在掌握的几种string 的方法,比如strip用于取出字符后的空格,split用于字符的分割,startswith和endswith用于判断字符的起始或结束。除此以外,string类型还有许多其他方法,非常有用。这里也侧面印证了python非常适合用于处理数据。

List列表,列表数据结构就像是排列好的储物柜,可以放各种数据,甚至是另一个列表。要检索数据就必须遍历查找所有的储物柜去比较。可以使用自编号的数字去获得相应位置的数据。

Dict字典,像是标记好姓名的储物柜,用户可以直接通过key去锁定所需要使用的储物柜,如果直接用D[key]去检索,不存在key的情况下会报错,因此也可以采用get方法。Tuple元组则是不可变更长度的储物柜,它适用于数据不变的场景,空间利用率高,速度也快。Set集合则是去除相同元素的数据结构,用于不需要重复项的场景。

正则表达式

用于文本字符的匹配和搜索。正则表达式是一个较为复杂的领域。需要用额外的篇幅去写。

循环

分为有限次循环for和无限次循环while。

Try-except框架

在编程的过程中,不可避免的出现各种bug。解决bug需要快速的定位错误的位置,因此可以采用try-except框架。这个框架可以方便的捕捉和定位运行的错误,提高程序的鲁棒性。如果加入continue,还可以形成捕捉报错、跳过错误的框架。

Try-except-finally,可以在finally加上必须要执行的语句。

Function函数

将一些常用的计算、处理封装成特定的函数,可以提高代码的简洁和可读。

使用方法是def funciton_name_xx(args)

文件读取

    这算是一个基本的功能。

使用open打开,每一行作为一个string来处理。

常用的打开为:With open(filename,’r’) as f

典型的python应用

目的是为了将之前介绍的python基本功能给串联起来,形成一个小的面向日常需求的项目。

网络连接

网络连接模型可分为几个模块:创建socket,建立连接,请求,解析数据。

网络链接可以用socket库,urllib库

Socket库。Socket库的使用模型为:创建socket,建立连接,发送请求,接收返回数据,解析数据。

Urllib库。可以直接用在打开一个网页,urllib.request.open(‘www.url.com’)

数据解析。对于不同类型的返回数据,需要用不同的库进行解析,举例来说,html格式可用beautifulsoup解析;Xml可用xml.etree.ElementTree解析;json可用json.loads解析。

面向对象编程

将对象作为一个类来定义,包含属性和方法。通过类的方式,可以显著的减少代码的数量,提高可读性,降低修改维护成本。

定义一个类,类中包含数据结构,和各种方法。这能够将数据和方法都封装到特定的类中。

可以使用类封装的方法实现数据的跨模块使用,这比通过参数传入和传出要简洁。

Class MyClassName

数据库操作

关系型数据库就是行列二维数组,列为对象的属性,行为对象。这种存储数据结构有时会比较稀疏,空间利用率不高,但是其结构明确、检索性能高。

本节介绍python与数据库之间的交互,以sqlite数据库为例。Python的数据库连接功能分为几个模块:

Connect连接,建立游标cursor,执行excute,查询数据fetchall。

简单介绍了sql结构化数据库中的关联表应该如何设计。表的主键primary key,具有唯一性,外键foreign key用于和其他表的关联。一个表的外键,是另一个表的主键。

表和表之间的关系有多对一,多对多。多对一的两个表关系较为容易处理,直接用一表的主键,作为多表的外键。多对多关系较为复杂,可以构造一个额外的表,用于存储两个表的主键对主键关系。

数据可视化

这里介绍了几个项目,算是把之前的介绍的内容都串联起来。简单来说,涉及到了(1)spider去网络上爬取数据,(2)文本处理程序处理字符串,做数据过滤,(3)用数据库存储数据,(4)算法类处理数据,(5)数据输出为js可显示的格式,(6)js显示网页。

结尾

Dr.Chunk友人在最后结尾给的几个生活建议,还挺有意思。4P,Passion-purpose-persistence-playfulness,激情、目标、坚持、有趣。前三个比较常见,在很多的书籍中可以见到,最后一个有趣就很好玩。在东方人生哲学里,讲究的是路漫漫其修远兮,吾将上下而求索,过程是苦行僧式的磨练,或者朝闻道夕可死也,关注最后结果的美妙。过程中的快乐,不仅很少为我们所关注、所推崇,而且往往是被批判、被打压的对象。

相关文章:

公开课观后感:密歇根大学python for everyone

从2024年1月17日到2024年8月20日,终于将密歇根大学的python for everyone的python公开课跟完。站在一月份规划的时刻来看,比我想象中花费的时间更多,我当时肯定没有想到要花上整整七个月的时间才能将这个公开课的内容看完,毕竟这个…...

goweb框架-gin

文章目录 Gin框架概览Gin框架的特点Gin框架的安装和基本使用安装基本使用 路由系统路由的基本概念Gin框架路由的特点 Radix Tree(基数树)基数树的定义和原理基数树在Gin框架中的应用节省空间的优化动态路由和通配符处理 路由树的构建注册路由的过程路由树…...

2024年接口测试高频面试题及答案

1. 什么是接口测试? •接口测试就是通过测试不同情况下的入参与之相应的出参信息来判断接口是否符合或满足相应的功能性、安全性要求 •测试的重点是要检查数据的交换,传递和控制管理过程,以及系统间的相互逻辑依赖关系 2. 为什么要做接口…...

ESP32-C3在MQTT访问时出现“transport_base: Poll timeout or error”问题的分析(8)

接前一篇文章:ESP32-C3在MQTT访问时出现“transport_base: Poll timeout or error”问题的分析(7) 前边几回分析了笔者在MQTT测试时所遇到的问题: 最终定位到了是由于components\components\tcp_transport\transport_ssl.c的base_poll_write函数中调用的select函数超时返回…...

Linux: 忘记密码的解决方法,passwd

https://www.redhat.com/sysadmin/recover-root-passwd 这里的方法很简单,就是通过console进去,添加一个启动参数,加载sysroot,然后用passwd命令修改密码。这个是RHEL7适用。 https://access.redhat.com/solutions/1192 这个是提…...

36. 有效的数独【 力扣(LeetCode) 】

一、题目描述 请你判断一个 9 x 9 的数独是否有效。只需要 根据以下规则 ,验证已经填入的数字是否有效即可。 数字 1-9 在每一行只能出现一次。 数字 1-9 在每一列只能出现一次。 数字 1-9 在每一个以粗实线分隔的 3x3 宫内只能出现一次。(请参考示例图…...

机器学习中的没有免费午餐定理

嘿,各位机器学习的爱好者们!今天,让我们一起深入探讨机器学习中那个神秘而又重要的概念——没有免费午餐定理。 一、定理引入:探索算法森林的钥匙 在广阔无垠的机器学习领域中,免费午餐定理就如同一把神奇的钥匙&…...

高级java每日一道面试题-2024年8月21日-框架篇[Spring篇]-使用IOC容器应该注意哪些?

如果有遗漏,评论区告诉我进行补充 面试官: 使用IOC容器应该注意哪些? 我回答: 1. 理解IOC的基本概念 控制反转:在传统的编程模式中,程序会主动控制依赖关系的创建和管理。而在IoC容器中,这种控制权被反转给了容器本身。程序员只需要声明…...

LLM训练推理相关概念

1. 有监督微调(Supervised Fine-Tuning)与指令微调(Instruction Fine-Tuning)对模型参数的影响 **有监督微调(Supervised Fine-Tuning, SFT)和指令微调(Instruction Fine-Tuning, Instruct-Tun…...

IP in IP 协议

IP in IP 是一种多重IP协议,即:客户机可以发送一个IP协议内部在嵌套一个IP协议到某个特定的主机上,在由具体的主机作为路由进行转发的协议。 例如: IP in IP帧协议结构为,第一层为发送到IP in IP 路由主机的报文&…...

DAY2: HTTP请求报文和响应报文是怎样的,有哪些常见的字段?| HTTP有哪些请求方式?| GET请求和POST请求的区别

目录 HTTP请求报文和响应报文是怎样的,有哪些常见的字段? 请求报文 响应报文 HTTP有哪些请求方式? GET请求和POST请求的区别 HTTP请求报文和响应报文是怎样的,有哪些常见的字段? HTTP报文分为请求报文和响应报文…...

线性代数:每日一题1/特征值与相似对角化

设A, B 为二阶矩阵,且 AB BA , 则“A有两个不相等的特征值”是“B可对角化"的() A. 充分必要条件 B. 充分不必要条件 C.必要不充分条件 D.既不充分也不必要条件 知识点: 特征向量与特征值的关系 相似矩阵的定义和性质 n阶…...

Android UI:PopupWindow:API

文章目录 类操作 对PopupWindow的操作 创建PopupWindow对象的操作添加并显示PopupWindow的操作移除PopupWindow的操作更新PopupWindow的操作显示内容的相关操作 布局的相关操作进入退出动画的相关操作 Transition设置进入动画的相关操作Transition设置退出动画的相关操作XML设置…...

什么是DevUI?

DevUI是面向企业中后台产品的开源前端解决方案,其设计价值观基于"高效、开放、可信、乐趣"四种自然与人文相结合的理念,旨在为设计师、前端开发者提供标准的设计体系,并满足各类落地场景,是一款企业级开箱即用的产品。 …...

DAY53

作业: 运行1个服务器和2个客户端 实现效果: 服务器和2个客户端互相聊天,服务器和客户端都需要使用select模型去实现 服务器要监视2个客户端是否连接,2个客户端是否发来消息以及服务器自己的标准输入流 客户端要监视服务器是否发来…...

python中len是什么

Python len() 方法返回字符串长度。 len()方法语法: len( str ) 返回值: 返回字符串长度。 以下实例展示了len()的使用方法: #!/usr/bin/python str "this is string example....wow!!!"; print "字符串长度: ", len…...

推荐一个开源的kafka可视化客户端GUI工具(Kafka King)

大佬的博客地址: https://blog.ysboke.cn/posts/tools/kafka-king Github地址: https://github.com/Bronya0/Kafka-King Kafka-King功能清单 查看集群节点列表(完成)支持PLAINTEXT、SASL PLAINTEXT用户名密码认证(完…...

day 10 贪心算法

455. 分发饼干 饼干从大的开始利用&#xff0c;优先满足胃口大的&#xff1b; class Solution { public:int findContentChildren(vector<int>& g, vector<int>& s) {sort(g.begin(),g.end());sort(s.begin(),s.end());int res0;int indexs.size()-1;for…...

网络安全审计技术原理与应用

网络安全审计概述 概念 定义:对网络信息系统的安全相关活动信息进行获取、记录、存储、分析和利用的工作 作用:建立“事后”安全保障措施,保存网络安全事件及行为信息,为网络安全事件分析提供线索及证据,以便发现潜在网络安全威胁行为,开展网络安全风险分析及管理 常…...

计算机网络之TCP序号,确认序号和报文传输时间

开篇提示 本篇适合于了解基础知识&#xff0c;进行扩展提高的使用&#xff0c;附带考研习题以及解析。 TCP序号和确认序号的区别 TCP首部中有序号和确认序号&#xff0c;他们都是4个字节&#xff08;4B&#xff09;&#xff0c;且在数据传输中有很重要的意义&#xff0c;那么两…...

HTML优化方法

HTML编码规范 代码格式化与缩进 1.缩进规则 ​ 推荐使用空格缩进而不是Tab&#xff0c;因为不同环境下空格的效果更加一致。常见缩进量为2个或4个空格 2.标签对齐 ​ 在嵌套的HTML结构中&#xff0c;子标签应当缩进&#xff0c;以清晰地展示层级关系。 3.属性的排列 ​ …...

Codeforces Round 961 D. Cases 【SOS DP、思维】

D. Cases 题意 有一个长度为 n n n 且仅由前 c c c 个大写字母组成的字符串&#xff0c;问最少选取多少种字母为每个单词的结尾&#xff0c;使得每个单词长度不超过 k k k 思路 首先注意到最后一个字母一定要选择&#xff0c;接下来我们给出一个断言&#xff1a;如果一个…...

VirtualBox上的Oracle Linux虚拟机安装Docker全流程

1.安装docker依赖 yum install -y yum-utils device-mapper-persistent-data lvm2 2.安装docker仓库 yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo 生成docker的yum源配置到在 /etc/yum.repos.d/docker-ce.repo 3.安装D…...

LNMP安装部署

目录 一、Nginx安装部署 1.安装包下载 2.下载相关依赖工具 3. 创建运行用户 4.编译安装 5.优化路径 6.将nginx添加至系统服务 7.文件赋权 二、MySQL部署安装 1.解压 2.安装相关工具 3.创建运行用户 4.编译安装 5.修改配置文件 6.更改mysql安装目录和配置文件的属…...

django之自定义序列化器用法

在Django中&#xff0c;自定义序列化器方法通常用于处理复杂的数据转换逻辑&#xff0c;特别是在使用Django REST framework&#xff08;DRF&#xff09;时。自定义序列化器方法可以帮助你在序列化和反序列化过程中执行特定的逻辑&#xff0c;比如格式化日期、计算字段值、或者…...

20240821给飞凌OK3588-C的核心板刷Rockchip原厂的Buildroot并挂载1TB的exFAT格式的TF卡

fdisk -l df -h df -t df -T mount 20240821给飞凌OK3588-C的核心板刷Rockchip原厂的Buildroot并挂载1TB的exFAT格式的TF卡 2024/8/21 18:06 【切记&#xff0c;对于Rockchip原厂的Buildroot&#xff0c;如果你没有针对性的适配DTS&#xff1a;修改其中的GPIO口供电&#xff0c…...

多模态学习Multimodal Learning:人工智能中的多模态原理与技术介绍初步了解

多模态学习&#xff08;Multimodal Learning&#xff09;是机器学习中的一个前沿领域&#xff0c;旨在综合处理和理解来自不同模态的数据。模态可以包括文本、图像、音频、视频等。随着数据多样性和复杂性增加&#xff0c;多模态学习在自然语言处理、计算机视觉、语音识别等领域…...

外部环境连接kafka

修改配置文件外部环境连接kafka 1、kafka的docker官方镜像地址2、kafka官方介绍的三种连接方式3、方式一&#xff1a;Default configs默认配置4、方式二&#xff1a;File input&#xff08;文件输入&#xff1a;外部配置文件替换docker容器内的配置文件&#xff09;4.1、首先查…...

结合了MySQL数据库、Elasticsearch和Redis,构建一个产品搜索和推荐系统

1. 数据库设置&#xff08;MySQL&#xff09; 首先&#xff0c;我们需要创建两个表来存储产品信息和产品类别信息。 CREATE DATABASE product_system;USE product_system;CREATE TABLE categories (id INT AUTO_INCREMENT PRIMARY KEY,name VARCHAR(255) NOT NULL,created_at…...

白酒与素食:健康与美味的双重享受

在美食的世界里&#xff0c;白酒与素食的搭配仿佛是一场跨界的盛宴。豪迈白酒&#xff08;HOMANLISM&#xff09;的醇香与精致素食的清新&#xff0c;在不经意间交织出了一幅美妙的画卷&#xff0c;让人在品味中感受到健康与美味的双重享受。 素食&#xff0c;以其清淡、自然的…...

电子商务类型的网站/百度关键词点击器

刚毕业的话去外包公司是可以的。在外包公司也能学会很多知识&#xff0c;如果表现突出的话&#xff0c;有可能被甲方挖走。 其实许多学java 的包括从事Java 的人在找工作的过程中&#xff0c;都会碰到一个抉择&#xff0c;就是去不去外包公司。毕竟 Java 开发中&#xff0c;外…...

做网站 怎么做留言/百度新闻最新消息

package cn.TCP;import java.io.DataInputStream; import java.io.DataOutputStream; import java.io.IOException; import java.net.ServerSocket; import java.net.Socket;/*** 模拟多个客户端登陆 双向* 1.指定端口 使用ServerSocket创建服务器* 2.阻塞式等待连接accept* 3.…...

做加盟网站哪个最好/网络舆情分析报告

由不勤劳的图书管理员带入了分块的坑&#xff0c;深深地被其暴力与优雅所征服。分块的实质就是将暴力块状封装起来&#xff0c;一整块的部分就一整块处理&#xff0c;零碎的部分就怎么暴力怎么来。因为分块大小的原因&#xff0c;限制了零碎部分数据的数量级&#xff0c;所以复…...

电脑室内设计软件/杭州网站优化推荐

安装的WAMP中PHP版本是5.3的&#xff0c;由于项目需求&#xff0c;升级PHP版本为5.4 但是执行php.exe时(php -v)会报以上错误提示 最终解决办法是&#xff1a; 修改wamp/wampmanager.conf wamp/wampmanager.ini 将原来的5.3版本都替换成5.4的版本&#xff0c;同样/bin/ph…...

网站建设需要哪些资料/长沙有实力seo优化公司

11月22日京东商城对外发布《京东商城配送政策调整公告&#xff01;》&#xff0c;公告称“为确保配送服务的质量&#xff0c;让消费者得到更高品质的配送服务&#xff0c;京东商城将参照行业做法&#xff0c;从2011年11月25日起对金额不足39元的订单收取5元运费”&#xff0c; …...

wordpress 迅搜/百度推广怎么才能效果好

Python之路【第四篇】&#xff1a;模块 模块&#xff0c;用一砣代码实现了某个功能的代码集合。 类似于函数式编程和面向过程编程&#xff0c;函数式编程则完成一个功能&#xff0c;其他代码用来调用即可&#xff0c;提供了代码的重用性和代码间的耦合。而对于一个复杂的功能来…...