中年妇女Python入门指南(二)

1. 闲话编程

什么是编程,大部分编程语言有哪些特点,我想对于很多第一次接触编程妇女同志来说是懵逼的,别急,且听我一一道来。

先来看一个结构

  1. 语言层面
  • 数据类型与运算符
  • 变量
  • 顺序结构
  • 选择
  • 循环
  • 函数
  • 自定义类型
  • 继承
  • 多态
  1. 系统层面
  • 多线程
  • I/O交互
  • GUI

以上的内容,对于初学编程的同志来说我觉得够用了。从上面两个分类可以分成语言层面和系统层面,与此同时,我们基本可以划分两大类书籍,

  • 一类只讲语言本身
  • 另一类是用该语言与操作系统交互。

1.1 语言层面

  • 数据类型

对于从语言层面来说,首先都会讲一个数据类型,什么是数据类型,比如我们数学里学的整数,小数(浮点数),布尔类型(YES/NO)字符串类型;用这些数干什么呢?是用来做一些运算,包括“加、减、乘、除、取余数、判断是非,求交、求并”等等。

  • 变量 变量拿来干什么?是用来存储一个值,不好解释,上例子。
# python
a = 3   # 把3赋值给a,a现在的值是3
b = 4   # 把4赋值给b,b现在的值是4
c = a + b # 把a + b的值赋值给c,就是c = 3 + 4,即c现在的值是7
print c # 打印c
复制代码

其实变量就是用来存数据的,在编程中的“=”不是“等号”,叫“赋值”号,真正的“等号”这么写“==”;

// C++
int a = 3;
bool b = true;
char *str = "hello wrold";
float c = 3.0f;
复制代码
# Python
a = 3
b = True
c = 0.2
d = "hello world"
复制代码

我们可以看到,对于C++ 来说,我们必须要先告诉编译器,我们声明得的变量是什么类型,但是Python不用,直接a = 3就可以了用了,而不用int a = 3;Python的解释器会根据你给变量赋值的类型来推导出变量a的类型。

  • 顺序、选择、和循环

一段代码怎么执行,是从上向下执行,如果遇到选择就会根据条件选择一条分叉继续执行,如果遇到循环就在循环条件一直循环执行。其实只要实现了顺序,选择和循环,就能实现人类所有的逻辑,也就是说,你的任何想法都能实现,这个特性我们称之为:图灵完备。

  • 函数

函数的出现是把一些通用的功能放在一起,每次用的时候用一下,比如说,你要洗衣服,你不能每次弄一堆铁皮,一个发电机做一个临时的洗衣机,然后洗一次,这个洗衣机就废了。我们需要复用,就是这次能用,下次也能用,我能用,我拿给别人也能用,正是因为有了复用的概念,所以才出现了函数,有了函数我们觉得这个粒度还是太小了,我们需要一些更大的模块,所以有了自定义类型,自定义类型里定义了一堆堆属性和行为,属性就是变量,比如年龄、性别。行为就是一对函数,来描述吃喝玩乐飞檐走壁之类的。

  • 自定义类型

为什么有自定义类型?因为目前给的类型不够用,在C语言里会有结构体,面向对象流行之后,我们开始说Class(类)。类其实就是自定义类型,比如人是一个自定义类型,鸟,车、马、动物。总之现实生活中天上飞的、地上跑的,每个东西都是有类型的。

那么没有自定义类型可以吗?我觉得可能可以,但是有了自定义类型以后,很多事情变得很自然,理解起来很容易,所以有了理解上的需求,所以自定义类型也应运而生。

  • 继承 这是两个面向对象里的概念,什么叫面向对象,就是万物皆对象。继承是什么意思,是一种“is-a”的关系,比如说:金丝猴是一种猴,草泥马是一种驼(羊驼)、航空母舰是一种船、流氓是一种人。这都是继承关系,继承了什么呢。

比如说猴子都有尾巴,那金丝猴必定有尾巴,猴子作为金丝猴的父类或是基类,一定有猴子与生俱来的特点。而金丝猴也有一些自己的本身的特点,比如毛是金色的。

转化成程序语言来说我们通过一个类图来展现一下:

这是一个类图,怎么看的,箭头三角指的是父类、箭头尾端的是子类。

这个例子可能也不太合理,但将就看吧,我也懒得想了。Golden Monkey是金丝猴,macaque是猕猴; 我们都知道他们都是猴,都具备猴子的特性,比如:有尾巴、有年龄,都有吃、跳、爬树的行为,这是他们作为猴子的共性。但是他们也有个性,就是金丝猴是金色的,猕猴是灰色的。

  • 多态 有继承才有多态,没有继承肯定没有多态的概念,多态是用父类做指代,比如你说有个人在写作业,我问你这个人是谁,你说李四,就表示李四在写作业,你说这个人是张三,那就是张三在写作业。

举个例子吧

# 伪代码
猴子 a = create("金丝猴");
a.eat();

猴子 b = create("猕猴");
b.eat();
复制代码

这段代码什么意思,就是有个猴子a,然后明确告诉你它是个金丝猴,那这个猴子吃,其实就是金丝猴在吃,对于b呢就是猕猴在吃。

所以说多态有什么用,就是当我们有很多猴子吃饭,或人写作业这种事要处理的时候,我们就可以一直用人做作业来描述,只需要换这个人和实际人之间的映射关系就好了,比如说当前这个人是张三,当前这个人是李四。

1.2 系统层面

关于系统层面,不想讲的太多,怕各位女同志消化不了,简单说说吧; 你熟悉了编程语言之后,你总想写点好玩的东西吧,你总不能都写一些算闰年、算最大值、求和这种无聊的代码,那你要怎么才能玩出花呢?

你是不是想写一个带图形界面(GUI)的程序,你是不是想写一个能网络通讯的程序(I/O)。这都会涉及到多线程的概念。

  • 多线程 啥叫多线程,理解多线程先得知道CPU怎么工作的,CPU是一个处理器,每隔一段时间就会处理一个任务。比如有个任务队列:吃饭、打游戏、喝水、聊天。

然后CPU有个叫分时的概念,就比如把一分钟分成了60秒,第一秒:吃饭、第二秒:打游戏、第三秒:喝水、第四秒:聊天、第五秒:吃饭、第六秒:打游戏、第七秒:喝水、第八秒:聊天 。。。

你将看到一个什么样的结果:你感觉吃饭、打游戏、喝水、聊天是同时进行的。如果把这个时间粒度从一秒缩减到一毫秒,你更加感觉这四件事是同时的。所以天下武功,唯快不破,就是快到让你反应不过,以为是同时发生的,这就是为什么你聊天的时候能听歌、听歌的时候能上网,什么事都不耽误。而每一个人任务我们目前粗浅的认为是在一个线程里执行的,而通常程序启动都会有第一个线程,我们称之为主线程、对于图形类程序来说,这个主线程是GUI(跟显示有关的)线程,其他的线程我们可以称之为:“后台线程”,就是俗称的跑在后台的线程。

好了,说了这么多的废话,这篇文章的目的主要是让你们在编程整体上建立一个概念,所有的编程语言,不管是C Java Python C# 都会有这些共性,当然想继承里提到的,他们也有他们自己的个性。ok,下一章,我们开始从Python的数据类型开始讲起。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值