大爽Python入门公开课教案

点击查看教程总目录

1 使用pycharm建立我们的第一个项目

  1. 打开pycharm,点击菜单栏,File->New Project
  2. 在Location(项目地址)那一行,点击右侧的图标打开地址选择界面

  1. 挑一个自己觉得合适的文件夹,比如我挑了codes文件夹,点击新建文件夹图标(红框2)

  1. 在弹出的文件夹名称设置窗口中,输入course1,点击回车。

  2. 再选择新建的course1文件夹,点击ok

  1. 再在Python Interpreter这里,

    选择下面的Previously configured interpreter(红框1)

    不勾选Create a main.py welcome script(红框2)

    点击Create(红框3)

  1. 如果出现如下窗口的话,点击This Window

这个窗口是询问你,

是在当前Pycharm窗口打开这个新项目(当前窗口中的老项目将被关掉)?

还是新建窗口打开新项目?

2. 基础的计算

第一章,将从大家最容易理解的数的计算开始,

带领大家熟悉python。

而Python 的交互式命令行,非常适合展示各种基础的计算

点击Pycharm界面底部的Python Console,

打开Pycharm中的交互式命令行。

基本运算符

首先,我们看下基础的加减乘除的运算(如下图)

在python中,四种基本运算符对应的符号如下

  • 加: +
  • 减: -
  • 乘: *
  • 除: /

常用运算符

除了这四种基本运算,常用的运算符还有

  • 取整除(地板除法,向下取整): //
  • 取余: %
  • 幂: **

    x**y: x的y次方

补充:由于表达习惯,很多人将 //叫做整除。

严格来讲,这是不对的,因为整除应该是一种关系,按照定义只有能整除和不能整除两种情况。

我个人以前也有这个表达错误,也是这回做教程,求严谨仔细查了后才发现。

但是由于很多人都这么叫,且这么称呼确实符合口语习惯,严谨的说法反而很绕口,不好理解。

再加上把整除解释为整数除法,勉强也能说过去。

所以大家把这个叫做整除也可以。

只不过,我个人在教程里会尽可能用严谨的说法。

由于习惯,也不排除口误。

>>> 10 // 3  # 10除以3的整数商
3
>>> 10 % 3 # 10除以3的余
1
>>> 2 // 3 # 2除以3的整数商
0
>>> 2 % 3 # 2除以3的余
2
>>> 2 ** 3 # 2 的 3 次方 = 2 * 2 * 2
8
>>> 3 ** 2 # 3 的 2 次方 = 3 * 3
9

常用的场景

光知道了运算符是不够的,

关键是要理解运算符使用的场景。

看懂不代表会了,在需要用的时候能想到,才算会。

其他运算符的使用场景大家应该都很熟悉,都能反应过来

但是求整数商//,取余%的使用场景

可能有的朋友就不是很熟悉了。

那么这里举一个例子。

有6个同学,每天一个人,轮流做卫生。

请问:第100天的时候该是,第几个同学做卫生?

第100天结束时,这些学生做了多少轮卫生(向下取整)?

答案是

  • 第几个:100 % 6,结果是4
  • 多少次:100 // 6,结果是16

结论:

这种轮流的,循环的场景中,计算次数和次序的,

往往要使用到,求整数商//,取余%。

请不要死记硬背,一定要理解。

运算优先级

大家都知道,数学运算是有优先级的,

python里的运算符也是有优先级的。

先举个大家都能理解的例子

>>> 1 + 2 + 3  # 从左往右
6
>>> 1 + 2 * 3 # 先算乘,再算加
7
>>> (1 + 2) * 3 # 想要先让1+2,就要用括号
9

有的朋友可能会觉得这个例子很简单,

那是因为

  1. 大家都知道乘除法的优先级高于加减法。
  2. 加减乘除的优先级只有两层。

觉得简单的朋友们不妨猜一猜

  • 2*3**2
  • 2**3*2
  • 2**2**3

都是多少

答案是: 不要猜

老老实实用括号括起来

  • 2*(3**2)
  • (2**3)*2
  • 2**(2**3)

以下为拓展内容,不必掌握,可以跳过。

当然,可能有的朋友非要去探究一下,

或者根据左右边对应关系猜出结果:

  • 幂运算优先级高于乘法运算
  • 幂运算是从右往左的(估计很多朋友第一次遇到这种从右往左的)

    补充:这两个不必掌握,就算你掌握了,也老老实实用括号写,方便看懂。

不推荐初学者一上来就过于深入的探究运算优先级。

因为python运算符优先级共有十几级,然后又分从左往右和从右往左的运算。

这个东西多讲几下,估计初学者就要直接从入门到放弃了。

目前只用掌握基本的就可以了,

即知道*,/,//,%,**运算优先级都高于加减法就够了

*,/,//,%,**之间的运算优先级不用掌握。

除此之外,一律使用括号括起来。

这样不仅你好写,别人也方便看懂。

3 赋值

介绍完常用的算术运算符,

接下来给大家介绍下python里面的赋值运算符:=

注意:这个等号不能理解为等于,要理解为赋值。

这里用的确实是数学中的等号,但是意思变了。

=左边是一个变量名,

=把右边的计算的值,赋值给左边。

举个例子:

>>> x = 1
>>> x = x + 1
>>> x
2
  • x = 1,是把1赋值给变量x
  • x = x + 1,是把x + 1的值(也就是2),赋值给变量x

第二个式子,如果按照等于来理解=,那就无法理解。

大家理解了赋值,下面的例子想必就不难看懂了

>>> x = 1
>>> x = x + 1
>>> x
2
>>> x = x * 2
>>> x
4
>>> x = x * 2
>>> x
8
>>> x = (x + 1) / 3
>>> x
3.0

每一个变量在使用前都要先赋值定义,否则会报错。

举例如下

>>> x = z + 1
Traceback (most recent call last):
File "<pyshell#3>", line 1, in <module>
x = z + 1
NameError: name 'z' is not defined

name 'z' is not defined这个报错,是说这个变量没有被定义(没有被赋值)。

大家以后看到name '某某某' is not defined的时候,要先去检查下这个变量是否被赋值过。

赋值简写

接下来补充一个非常常用的小技巧,

有些常用的赋值写法是可以被简写的,

  • x = x + 1可以简写为x += 1,
  • x = x - 1可以简写为x -= 1

+=, -=非常常用,如果不会用,起码遇到要能看懂。

除此之外,常用的还有下面的简写,能看懂就行(下面两种简写我个人用的不多)

  • x = x * 2可以简写为x *= 2,
  • x = x / 2可以简写为x /= 2

补充,实际上+=,-=,*=,/=都算赋值运算符。

4 一元运算符

数有正数负数之分,我们一般用+, -号来表示正与负。

python里面也用+, -来表示正与负,

而且符合大家了解的基础知识:正数前面的+可以省略,负负得正。

举例如下

>>> +5
5
>>> -3
-3
>>> x = 5
>>> x = +x
>>> x
5
>>> x = -x
>>> x
-5
>>> x = +x
>>> x
-5
>>> x = -x
>>> x
5

上面例子中的+, -是一元正负运算符,

逻辑上,不再是上面基础运算中的加减运算了。

  • 一元运算符,只运算一个数据,比如+1, -5
  • 二元运算符,运算两个数据,比如1 + 1, 6 - 5

5 细节补充

空格

细心的朋友可能会注意到,我上面代码很多地方都留有空格。

比如x = 1,等号两边留有空格,实际写成x=1程序也能正常运行。

这里的空格加不加都不会影响程序的正常运行,主要是为了增强代码的可读性(更好看)。

不过空格不要乱加,要遵循对应的规范。

python的官方编码规范为PEP 8

这个东西太多,目前只用知道,

二元运算符两侧要加空格。

(一元运算符不要加)

或者通俗一点讲,运算符要连接两个东西的时候,就要用空格隔一下,看起来不至于太挤,更重要的是方便区分。

比如大家比较这两个(结果都是7)

  • 12+-5
  • 12 + -5

当然,这只是一个软规则(不影响程序具体运行),初学者把握不住也没关系,以后多观察多模范就好。

再补充一个硬规则:

每行代码开头不要乱加空格。

这个加错了程序会报错。

具体未来我们学到涉及缩进的内容会讲。

赋值后的变化

>>> x = 2
>>> y = x
>>> y
2
>>> x = 5
>>> x
5
>>> y
2

第二行,把x赋值给y,

是把x的值赋值给了y,

之后x进行别的赋值,对y不会影响。

代码文件

Python交互式命令行与python文件对比

我们上面展示的都是在交互式命令行中的可以运行的代码。

如果在文件中写代码,还会有一点不同,

交互式命令行中,单个表达式或变量,

交互式命令行会自动把其结果输出展示出来。

python文件中则不会自动展示,

想要把结果在控制台输出展示,要使用print()方法。

比如下面的python文件

12 + 5 + 1
x = 12
x
y = 20
print("Use print")
print(y)

运行后输出如下

Use print
20

只有第5,6行输出了结果。

第1,3行不会输出。

像第1,3行的语句在代码中虽然能正常运行,但是不会产生任何效果,属于无用的语句。

注释

# 后面是注释,注释不会参与实际执行,

主要是解释与说明代码功能,方便别人看懂代码意思。

大爽Python入门教程 1-1 简单的数学运算的更多相关文章

  1. 大爽Python入门教程 1-3 简单的循环与判断

    大爽Python入门公开课教案 点击查看教程总目录 这里只初步认识下循环和判断,以便于我们去实现一些简单的计算. 循环和判断的详细知识和细节,我们将在后面的章节(大概是第三章)展开阐述. 1 初步了解 ...

  2. 大爽Python入门教程 3-1 布尔值: True, False

    大爽Python入门公开课教案 点击查看教程总目录 1 布尔值介绍 从判断说起 回顾第一章介绍的简单的判断 >>> x = 10 >>> if x > 5: ...

  3. 大爽Python入门教程 3-2 条件判断: if...elif..else

    大爽Python入门公开课教案 点击查看教程总目录 简单回顾if 回顾下第一章的代码 >>> x = 5 >>> if x > 0: ... print(&q ...

  4. 大爽Python入门教程 2-3 字符串,列表,字典

    大爽Python入门公开课教案 点击查看教程总目录 除了通用的序列方法, 列表和字符串还有些自己的专属方法. 后面介绍有些是英中文对照介绍(英文来自官方文档), 便于大家更深入的去理解其意思. 灵活的 ...

  5. 大爽Python入门教程 2-1 认识容器

    大爽Python入门公开课教案 点击查看教程总目录 1 什么是容器 先思考这样一个场景: 有五个学生,姓名分别为: Alan, Bruce, Carlos, David, Emma. 需要给他们都打一 ...

  6. 大爽Python入门教程 1-4 习题

    大爽Python入门公开课教案 点击查看教程总目录 1 [思考]方向变换 小明同学站在平原上,面朝北方,向左转51次之后(每次只转90度), 小明面朝哪里?小明转过了多少圈? (360度为一圈,圈数向 ...

  7. 大爽Python入门教程 1-5 答案

    大爽Python入门公开课教案 点击查看教程总目录 1 方向变换 >>> 51//4 12 >>> 51%4 3 答: 向左转51次之后, 小明面朝东方, 转过了1 ...

  8. 大爽Python入门教程 1-2 数与字符串

    大爽Python入门公开课教案 点击查看教程总目录 1 整数与浮点数 整数大家都知道,比如1, 2, 10, 123, 都是整数int. 浮点数是什么呢? 上一节的除法运算,不知道有没有人注意到,其结 ...

  9. 大爽Python入门教程 0-2 什么是IDE?python选什么IDE好?

    大爽Python入门公开课教案 点击查看教程总目录 一 感受IDE 什么是IDE? 在这里,我并不想直接给出一个回答, 因为这个回答对初学者来说,可能有些抽象. 我想先带大家感受下IDE. 1 比较不 ...

随机推荐

  1. Python列表操作常用API

    1.列表的概念 (1)列表的定义 列表是Python中一种基本的数据结构.列表存储的数据,我们称为元素.在列表中的每个元素都会有一个下标来与之对应,第一个索引是0,第二个索引是1,依此类推的整数. 列 ...

  2. Css预编译(Sass&&Less)

    目录 Less与Sass是css的预处理技术 而CoffeeScript.TypeScript则是javascript的预处理技术. Less与Sass是css的预处理技术 而CoffeeScript ...

  3. MySQL MVCC原理深入探索

    一.MVCC的由来 二.MVCC的实际应用 RR级别场景 RC级别场景 三.MVCC的实现 3.1 多版本的数据从哪里来--Undo Log 3.1.1 插入操作对应的undo log 3.1.2 删 ...

  4. Java 开发最容易写的 10 个bug

    原文链接:10 个让人头疼的 bug 那个谁,今天又写 bug 了,没错,他说的好像就是我...... 作为 Java 开发,我们在写代码的过程中难免会产生各种奇思妙想的 bug ,有些 bug 就挺 ...

  5. mysql-router-MIC-8.0.26集群部署

    1.具体部署详情请看视频 https://space.bilibili.com/677825194 2.mysql主要配置如下 cat > /etc/my.cnf <<EOF [cl ...

  6. RabbitMQ持久化机制、内存磁盘控制(四)

    一.持久化 如果看到这一篇文章的朋友,都是有经验的开发人员,对持久化的概念就不用再做过多的解析了,经过前面的几篇文章,其实不难发现RabbitMQ 的持久化其实就只分交换器持久化.队列持久化和消息持久 ...

  7. hdu3001(三进制状压)

    题目大意: 现在给你一个有n个点和m条边的图,每一条边都有一个费用,每个点不能经过超过两次,求所有点至少遍历一次的最小费用 其中n<=10 m没有明确限制(肯定不会超过1e5) 一看到这个数据范 ...

  8. this指向与call,apply,bind

    this指向与call,apply,bind ❝ 「this」问题对于每个前端同学来说相信都不陌生,在平时开发中也经常能碰到,有时候因为「this」还踩过不少坑,并且「this」问题在面试题中出现的概 ...

  9. 初识Linux shell

    目录 初识Linux shell Linux 深入探究Linux内核 系统内存管理 交换空间 页面 换出 软件程序管理 Linux中的进程 Linux系统的运行级 硬件设备管理 插入设备驱动代码的方法 ...

  10. javascriptRemke之类的继承

    前言:es6之前在js中要实现继承,就必须要我们程序员在原型链上手动继承多对象的操作,但是结果往往存在漏洞,为解决这些问题,社区中出现了盗用构造函数.组合继承.原型式继承.寄生式继承等一系列继承方式, ...