[oeasy]python0028_女性程序员_Eniac_girls_bug_Grace

本文涉及的产品
性能测试 PTS,5000VUM额度
注册配置 MSE Nacos/ZooKeeper,118元/月
函数计算FC,每月15万CU 3个月
简介: 回顾上次内容,我们了解到 `.py` 文件中的代码是按顺序一行行被解释执行的,可以使用 `pdb3 hello.py` 来调试程序。此外,我们探讨了“bug”这一术语的由来,它最早是在 1947 年由 Grace Murray Hopper 发现的一只真正的飞蛾所引起的计算机故障,从此“debugging”成了查找并修复程序错误的过程。早期的程序员大多为女性,因为她们通常更加细心且有耐心,这些特质对于检查错综复杂的线路和编程工作至关重要。编程与编织有着相似之处,都需要细致和有条理的操作。最后,我们认识到 bug 的存在是程序员工作的基础,没有 bug 就不需要程序员去修正它们。

回忆上次内容

  • py文件 是 按照顺序
  • 一行行 挨排 解释执行的
  • 可以用 pdb3 hello.py
  • 来调试程序
  • 顺序执行
  • 程序 在文本中 从上到下 是
  • 一行行写的
  • 解释器 从上到下 是
  • 一行行解释的
  • 调试 也是 从上到下
  • 一行行 调试的
  • bug这个东西
  • 是什么时候才有的呢?

  • 最早那只 活的bug🪰
  • 找出来的 呢?🤔

计算之母

  • 找到 bug 的第一个程序员 是一位女性
  • 名字叫 Grace Murray Hopper

  • 和现在 程序员大多是男性不同
  • 继电器计算机时代的程序员 大多都是  
  • 为什么 把程序错误
  • 叫做 bug 🪰 呢?
  • bug和虫子(bug) 有什么关系呢?

第一个错误 bug

  • 历史上 第个程序错误 是
  • 一只虫子bug🪰
  • bug🪰 飞进继电器(relay)计算机(computer)里面 来
  • 导致 当时的继电器 短路

  • 所以 后来
  • 管错误 叫做bug
  • 管调试程序错误 叫做 debug
  • 减少bug

第一台电子管计算机Eniac

  • 程序员女性为主
  • 从 继电器计算机时代
  • 延续到 电子管计算机时代

  • 女性比较心细
  • 而且 比较有耐心

Eniac Girls

  • Eniac Girls

  • 为什么早期程序员都为女性呢?

编程

  • 最早的程序员是女性
  • 非常合理

  • 因为当时 线缆很容易 变得一团乱麻
  • 程序员的工作 就是检查线路
  • 绣花 一样

编程和编织

  • 编程和编织很像
  • 都是
  • 所以 需要很细心、 有条理的人👩🏼‍🦱
  • 就像更早之前的 结绳纪事

  • 因为 系住一个结
  • 所以 记住了 这个事
  • 所以 今天 纪录片
  • 有绞丝旁

提花织布机

  • 计算机的创意
  • 最初 源自 提花织布机

  • 今天仍能
  • 从程序员身上的格子衫
  • 看到 织布机 影响
  • 女性程序员为主的时代
  • 是怎么发现bug的呢?

故障

  • 当初 格蕾丝和她的同事们
  • 正艰难地 想要 搞清楚
  • 正在使用的 继电器计算机 马克II
  • 出了什么问题

  • 最后 发现
  • 一只活蛾
  • 被困在控制电路的电子开关 中

  • 这个活的蛾子 被
  • 称为bug
  • 此后再出问题
  • 就被叫做
  • 又出了bug

bug

  • 不要害怕 bug
  • 因为 bug 是程序员存在的基础

  • 如果没有了bug
  • 那也就不需要程序员了

说不清的bug

  • 程序员本身就是 bug 一般的存在

总结

  • 这次 了解到
  • 计算机早期操作员 多是女性
  • 她们最早发明了 bug🕷 这个概念

  • 到现在也没有遇到一个bug
  • 如何才能让程序里面有bug 呢?
目录
打赏
0
3
3
0
164
分享
相关文章
[oeasy]python080如何生成验证码_随机数字密码_真随机
本文介绍了如何生成随机验证码的过程,从简单的随机数字生成到包含数字、大小写字母及符号的复杂验证码。通过 Python 的 `random` 和 `string` 模块,逐步扩展字符集并确保结果满足特定要求(如包含各类字符)。同时探讨了随机数生成的本质,指出计算机中的“随机”实际上是基于算法和种子值的伪随机,并非真正的物理随机。最后总结了验证码的生成原理及其在实际应用中的意义,为读者揭开日常生活中验证码背后的编程逻辑。
21 8
[oeasy]python075_什么是_动态类型_静态类型_强类型_弱类型_编译_运行
本文探讨了编程语言中的动态类型与静态类型、强类型与弱类型的概念。通过实例分析,如Python允许变量类型动态变化(如`age`从整型变为字符串),而C语言一旦声明变量类型则不可更改,体现了动态与静态类型的差异。此外,文章还对比了强类型(如Python,不允许隐式类型转换)和弱类型(如JavaScript,支持自动类型转换)的特点。最后总结指出,Python属于动态类型、强类型语言,对初学者友好但需注意类型混淆,并预告下期内容及提供学习资源链接。
49 21
|
11天前
|
[oeasy]python076_int这个词怎么来的_[词根溯源]整数类型_int_integer_touch
本文探讨了“int”一词的起源及其与整数类型的关联。通过词根溯源,揭示“int”来源于“integer”,意为“完整的数”,与零碎的分数相对。同时分析了相关词汇如“tact”(接触)、“touch”(触摸)及衍生词,如“tangential”(切线的)、“intagible”(无形的)和“integral”(完整的、不可或缺的)。文章还结合编程语言特性,解释了Python作为动态类型、强类型语言的特点,并总结了整型变量的概念与意义。最后预告了后续内容,提供了学习资源链接。
40 11
[oeasy]python077_int类型怎么用_整数运算_integer_进制转化_int类
本文主要讲解了Python中`int`类型的应用与特性。首先回顾了`int`词根的溯源,探讨了整型变量的概念及命名规则(如匈牙利命名法)。接着分析了整型变量在内存中的存储位置和地址,并通过`type()`和`id()`函数验证其类型和地址。还介绍了整型变量的运算功能,以及如何通过`int()`函数将字符串转化为整数,支持不同进制间的转换(如二进制转十进制)。此外,文章提及了关键字`del`的使用场景,对比了Python与C语言中`int`的区别,并总结了整型与字符串类型的差异,为后续深入学习奠定基础。
26 1
[oeasy]python062_在python中完成输入和输出_input_print
本文介绍了在Python中使用`input()`和`print()`函数完成输入和输出操作的基础知识。通过编写简单的程序,如问候用户和统计苹果数量,演示了如何添加提示信息、处理用户输入并输出结果。同时,回顾了上一次课程内容,包括`input`函数的参数和提示词的使用。文中还展示了如何在vim编辑器中编写和运行Python代码,并对vim和shell的基本操作进行了总结。最后提供了相关学习资源链接,方便读者进一步学习。
163 66
|
14天前
|
[oeasy]python074_ai辅助编程_水果程序_fruits_apple_banana_加法_python之禅
本文回顾了从模块导入变量和函数的方法,并通过一个求和程序实例,讲解了Python中输入处理、类型转换及异常处理的应用。重点分析了“明了胜于晦涩”(Explicit is better than implicit)的Python之禅理念,强调代码应清晰明确。最后总结了加法运算程序的实现过程,并预告后续内容将深入探讨变量类型的隐式与显式问题。附有相关资源链接供进一步学习。
25 4
|
20天前
|
[oeasy]python072_名字空间是怎么玩的_from_import_as_导入_namespace
本文介绍了Python中名字空间和模块导入的使用方法。主要内容包括: 1. **回忆上次内容**:回顾了之前导入系统模块(如`__hello__`、`time`)和自定义模块(如`my_file`),并介绍了如何导入和使用模块中的变量。 2. **从shell开始**:展示了如何在命令行中编辑和切换文件,以及如何通过`import`语句引入模块。 3. **修改oeasy.py**:演示了如何通过`import my_file`导入模块,并将模块中的`pi`赋值给本地变量`pi`。 4. **locals()函数**:解释了如何使用`locals()`查看当前作用域内的本地变量及其值。
29 8
|
18天前
|
[oeasy]python073_下划线在python里是什么含义_内部变量_私有变量_系统变量
本文回顾了Python中从模块导入变量和函数的方式,重点讨论了避免本地变量名冲突(local name clashes)的方法。通过`from module import variable as alias`可以为导入的变量重命名,防止冲突。根据PEP8规范,建议避免使用`from module import *`,因为它会导入模块中所有非下划线开头的变量,容易引发冲突。下划线在变量命名中有特殊含义:单个前导下划线表示内部变量,后置下划线用于避免与关键字冲突,双下划线前后包围表示系统变量。总结了下划线的不同用法及其作用。下次将继续探讨更实用的编程技巧。
30 3
[oeasy]python065python报错怎么办_try_试着来_except_发现异常
本文介绍了Python中处理异常的基本方法,重点讲解了`try`和`except`的用法。通过一个计算苹果重量的小程序示例,展示了如何捕获用户输入错误并进行处理。主要内容包括: 1. **回顾上次内容**:简要回顾了Shell环境、Python3游乐场和Vim编辑器的使用。 2. **编写程序**:编写了一个简单的程序来计算苹果的总重量,但发现由于输入类型问题导致结果错误。 3. **调试与修正**:通过调试发现输入函数返回的是字符串类型,需要将其转换为整数类型才能正确计算。
60 32
用通义灵码开发一个Python时钟:手把手体验AI程序员加持下的智能编码
通义灵码是基于通义大模型的AI研发辅助工具,提供代码智能生成、研发问答、多文件修改等功能,帮助开发者提高编码效率。本文通过手把手教程,使用通义灵码开发一个简单的Python时钟程序,展示其高效、智能的编码体验。从环境准备到代码优化,通义灵码显著降低了开发门槛,提升了开发效率,适合新手和资深开发者。最终,你将体验到AI加持下的便捷与强大功能。

云原生

+关注