前面 11 课,我们玩的都是"一个数、一行字、一个列表"这种小数据。但真实世界的数据,动辄几万行、几十列——比如一张销售表、一份股票行情、一坨传感器读数。这时候光靠 for 循环慢慢算,又慢又累。这一课,我们请出数据科学的两大镇宅神器:numpy:用"数组"批量做数值运算,快得像作弊。pandas:用"DataFrame"(表格)管理、清洗、分析数据,像 Excel 一样顺手,但强一万倍。学完 …
基础语法你已经学完了。这一课我们点几个"高手技能点"——它们不是必须的,但掌握后你会:看懂别人代码、写出更简洁优雅的代码。核心三件套:生成器/迭代器、装饰器、函数式工具(map/filter/推导式)。一、迭代器:能被"挨个取出"的东西我们早就用过迭代了——for 循环能遍历列表、字典、集合、字符串,因为它们都是可迭代对象。for x in [1, 2, 3]: # 列表可迭代
…
前面我们写的函数,都是"一堆散装的动作"。但真实世界不是这么组织的——真实世界里是一个个对象:一只猫、一辆车、一个账户。对象有自己的数据(猫的颜色、车的速度),也有自己的行为(猫会叫、车会跑)。面向对象编程(OOP),就是让代码也用这种"对象"的方式组织。这是从"写脚本"到"写程序"的分水岭。一、类(class):对象的"图纸"class 是创建对象的模板,就像"猫"这个物种的图纸。先定义图纸 …
到目前为止,我们的程序都假设一切顺利。可现实不是:文件可能不存在、用户可能输错、网络可能断、除法的分母可能是 0。程序一遇到这些就崩溃,体验极差。这一课,我们学会两件事:让程序优雅地处理错误(不崩),以及出错后快速定位问题(调试)。一、先认识几种常见报错报错不可怕,看懂报错信息是关键。几种最常见的:# 1. 名字打错了
print(x) # NameError: …
学到这里,你其实已经能写不少程序了。但有个问题:很多常见需求(发网络请求、处理日期、数学运算、操作文件系统)如果都自己从零写,会累死。好消息是——别人已经写好了,你直接拿来用就行。 这就是 Python 最迷人的地方:它有一个庞大的"库"生态。这一课,我们学会三件事:import 导入、标准库、pip 装第三方库。一、import:把别人写好的代码拿进来Python 自带一堆"标准库",装 P …
到这一课为止,程序处理的数据都是我们手写的。但现实里,数据大多存在文件里:日志、配置、表格、文章……程序得能读进来、处理、再写出去。这一课我们搞定三件事:字符串的十八般武艺、正则表达式,以及文件的读写。一、字符串的十八般武艺字符串是 Python 里最常用的类型,方法多到数不清,但常用的就这些:s = " Hello, Python World "
s.strip() …
前面几课,我们写的代码都是"一条线走到底"。但真实程序往往有大量重复:比如算圆的面积,可能要算十几次。# 不写函数,每次都重写一遍
area1 = 3.14 * 5 * 5
area2 = 3.14 * 8 * 8
area3 = 3.14 * 12 * 12三行还好,那要是 100 次呢?更糟的是,如果哪天发现"圆的面积公式记错了",得改 100 处。函数就是来解决这个问题的:把一段代码打包 …
上一课我们用列表一次存一堆数据。但列表有个痛点:它靠"下标"找数据。你想找"张三的成绩",得先知道张三排在第几个位置,或者一个个扫过去。现实里我们更习惯这样:直接喊名字,就知道成绩。scores = {"张三": 90, "李四": 85, "王五": 78}
print(scores["张三"]) # …
上一课我们用判断和循环,让程序学会了"做选择"和"反复做事"。但你有没有发现,每次处理数据,都是"一个变量存一个值":name1 = "张三"
name2 = "李四"
name3 = "王五"三个人的名字,就要写三个变量。那要是全班 50 个人、全校 5000 人呢?难道写 5000 个变量?显然不行。我们需要的是一种东西,能用一个 …
上一课我们学会了用变量"记东西",用 print() 把结果打出来。但你有没有发现,到目前为止,程序都是一条直线往下走,一行接一行,从不停顿、从不拐弯。现实里的问题哪有这么简单?"如果今天是周末,就睡到自然醒;否则,就 7 点起床。""把这一堆作业,一道一道全部做完。""用户输入的密码错了,就让他重新输,直到对为止。"这些,分别对应程序里最最重要的三件事:判断、循环、以及它们的组合。学会了它们 …
- « 前一页
- 1
- ...
- 4
- 5
- 6
- 7
- 8
- 后一页 »