python学习第三课:认识python

你将学习 Python 的数据类型、变量、运算符、条件判断与循环等基础语法,最终亲手完成一个 Python 小游戏,相信你一定能做到!

目标

  1. 请在 /home/shiyanlou 目录下创建 shiyanlou.py 文件
  2. 在文件中输入以下内容:
    print('hello shiyanlou')
    
  3. 进入 Code 目录,新建名为 test 的目录,然后将 shiyanlou.py 复制到目录 /home/shiyanlou/Code/test 中
  4. 了解python中的print()
  5. 数据类型
  6. 变量
  7. input()
  8. 运算符

提示语

  1. touch 创建文件
  2. 可使用 Sublime、gedit、Vim 等编辑器
  3. mkdir 创建目录
  4. cd ~ 返回 home 目录
  5. cp 复制
  6. 使用 Sublime 写入代码后,注意保存的位置。

python学习第三课:认识python

知识点

  • Linux 目录结构
  • Linux 文件操作
  • cp 命令
  • mkdir 命令

 

python 程序的执行方式一般分为两种:

  • 交互式命令行执行:在这个环境下,你输入的 Python 代码都可以立即执行,并得到输出结果,在开发中经常用于调试代码。
  • 程序文件的方式执行:最常用的方式,你日常接触 99% 的程序,都是以打包成一套代码文件的方式执行的。

没看懂?不用在意,我们往下做就行了。

这节实验中,我们先在 Python3 的命令行交互式环境中学习基本语法。

进入 Python 开发环境:

在实验环境中打开终端,在第一行 $ 符号后面输入 python3,按回车键执行。系统就进入到 Python 的交互环境中了。

>>> 是提示符,提示你在这里输入 Python 代码。

如果要退出命令行,可以使用快捷键 Ctrl + D,或者输入 exit()

输入 1 + 1 试试,按下回车,可以看到 Python 自动帮你算出了结果。

python学习第三课:认识python

我们再来写点代码,输入:

print('Hello World!')

( ⚠注意:️编程中标点符号要使用英文符号,请永远记住这一点 !)

再按回车执行,终端中出现了 Hello world

很简单对不对?

print —— 打印

print('Hello World!') —— 打印 Hello World!

print() 就是你学到的第一个函数 —— 「打印函数」(函数可理解为方法),它可以帮你输出任何内容 —— 只要放进 括号 内。

那么'Hello World'为什么要用 引号 包起来呢?

用引号包起来的文字,被称为「字符串」,等于在告诉计算机:请把引号里的内容打印出来,不用管里面是什么。

观察下面的两行代码:

print(1 + 1)
print('1 + 1')

用前面学到的知识,猜一下这两行代码分别会打印什么。

然后在终端中验证一下:

可以看到,前者打印出了 1+1 的结果;而加了引号后,原封不动地打印出了「 1 + 1 」。

⚠ ️注意:引号可以是单引号,也可以是双引号,但必须是英文符号,且前后一致。

试试打印一行诗句:

小练习: 请打印出 床前明月光,疑是地上霜

print('床前明月光,疑是地上霜')

提示:双击桌面上的搜狗拼音「sogou」,即可在桌面右下角切换成中文输出;如果没有搜狗拼音,请直接点击右下角切换成拼音输入;按「shift」键在中英文间快速切换。

如果想打印多行文字怎么办呢?

可以使用三个引号,比如:

print('''
我去买几个橘子
你就站在此地不要走动
''')

终端会直接打印多行内容:

我去买几个橘子
你就站在此地不要走动

计算机不仅能处理数字之间的运算,也能对文本、图片、音频、视频等数据进行处理。在程序中,每个数据都有自己的数据类型。Python 的数据类型有 int(整数)、float(浮点数)、字符串、布尔值、None、列表、元组、字典、集合等。

下面介绍几种基本数据类型。

int - 整数

即数学意义上的整数,可以是正整数或负整数,不带小数点。

float - 浮点数

浮点数就是小数。所谓浮点,指的是小数的表示形式多变,3.14 可以表示为 0.314 x 10,小数点可以改变位置,故称为浮点数。

在计算机中,整数、浮点数字、字符串等所有的数据,都会被转换为二进制数值进行处理,处理完成后再转换为你想要的信息。转换的过程中可能就会出现精度的丢失,试试在 Python 命令行中输出 1.1 + 2.2 ,猜猜结果是多少?

结果并不是 3.3,而是 3.3000000000000003

布尔值

布尔值只有 True 和 False 两种,注意大小写。布尔值通常用来比较和判断,举例如下:

空值 None

None 在 Python 中是一个特殊的值,表示“无”。注意它与数值 0 不同,0 是一个整数,而  表示 什么都没有。

我们再来学习一个很重要的概念 —— 「变量」。你可以将它理解为一个盒子 —— 把常用的数据放在里面,起一个好记的名字,下次用到时可以快速找到它。

比如说在游戏中,你会频繁用到 「血量(HP)、攻击力、防御力」等数据,这些数据需要用名字储存起来。

定义这些变量的代码如下:

Level = 1
ATK = 5
HP = 100

左边是「变量名」

右边是「数据」

而等号在Python里的意思是「赋值符」,代表把右边的数据赋值给左边。

其实,早在小学的数学课上,你就开始使用 变量 的概念了。比如「鸡兔同笼」问题中,你可以“设鸡的数量为 x,兔子的数量为 y ”, x、y 就是变量,:

x = 鸡的数量

y = 兔子的数量

则:

x + y = 头数

2x + 4y = 脚数

变量中的数据,除了可以是整数,还可以是一段文字,比如:

word = 'Hello World!'
print(word)

试一下上面的代码,看看会打印出什么结果。

变量的右边,甚至可以是另一个变量,如:

word2 = word
print(word2)

上面这段代码的意思是把「word」中的数据,赋值给「word2」这一变量。

亲手操作一下试试:

 

“对了,还不知道你多大了,请用 Python 告诉我吧~”

输入下面的代码:

age = input('My age is :')

执行代码后,弹出「My age is :」,在后面输入你的年龄,再按回车。

这时,你的年龄就被存入了「age」这个变量中,print 一下试试:

print(age)

终端随之打印出了你的年龄。

这就是我们今天学的第二个函数 —— input(),主要作用是让用户输入某个内容并接收它 —— 比如注册时需要填写账号密码,你就可以用 input() 搞定:

ID = input('请输入你的ID:')

用户填写的信息就会被存入「ID」这个变量中。

( ⚠注意️:如果input()函数执行后,你没有在后面输入内容,程序会一直卡住,等待你输入信息。)

任何一本编程书籍之中,字符串的内容总是很长。这是因为:处理字符串是计算机程序中最普遍的需求之一 ,人和计算机交互,所用的就是字符串而不是二进制数字。

用 引号 包裹起来的数据就是字符串。计算机无法识别人类的文字,所以引号的作用就是告诉计算机:我是字符串,不用管里面是什么内容。

包裹字符串的引号必须前后对应,成对出现。如果字符串中还有引号,要特别注意,如 He said "Today's weather is good.",直接写 print('He said "Today's weather is good."') 就会报错。因为:

正确的写法是,在 Today 后面加入 转义符 \ :

亲手在终端中试一下:

转义符 \ 还有一个常用形式是和 n 连起来用, \n 代表换行符,就是用 Enter (回车)键敲出来的东西)。

💡 索引

字符串是一堆字符的集合,可以通过位置编号,来获得对应的字符。如 'hello_shiyanlou',编号 0 对应第一个字符 h,1 对应第二个字符 e,依次类推。这个位置的编号,我们称之为:索引

这里你又学到了计算机世界的一大概念:

在计算机世界中,计数从 0 开始。

在计算机世界中,计数从 0 开始。

在计算机世界中,计数从 0 开始。

索引除了是正数,也可以是 负值,表示倒数第几个。比如最后一个字符的索引为 -1,倒数第二个字符的索引为 -2。

简单的示例:

>>> string = 'hello_shiyanlou'
>>> string[0]  # 获取第一个字符
'h'
>>> string[1]  # 获取第二个字符
'e'
>>> string[2]
'l'
>>> string[-1]  # 获取倒数第一个字符
'u'
>>> string[-2]  # 获取倒数第二个字符
'o'

 format()

format() 是专门用来 格式化字符串 的函数,它最常用的功能就是「插入数据」和「数字格式化」。

1. 插入数据

先看下面的代码,相信现在的你已经能看懂是什么意思了。我们让用户输入姓名和年龄,并用 name 和 age 变量接收数据。

name = input('请输入姓名:')
age = input('请输入年龄')

现在我想打印 “你叫xxx,今年x岁了” ,代码该怎么写?

有几种写法:

print('你叫'+name+',今年' + age + '岁了')

print("我的名字叫:",name,",我今年",age,"岁了。")      # 使用逗号连接变量,输出时会出现空格

print("我的名字是"+name+",我今年"+str(age)+'岁了。')

print("我的名字叫{},今年{}岁。".format(name,age))

print("我的名字叫{a},今年{b}岁。".format(b=name,a=age))

print("我的名字叫%s,今年%d岁。"%(name,age))

print("我的名字叫%s,今年%s岁。"%(name,age)) #age强制转换成str类型了

这种方法用 + 号串联打印的内容,虽然可行,但是比较麻烦,而且有局限性。

这时,你可以使用 format() 函数,实现插入效果,用法如下:

print('你叫{},今年{}岁了'.format(name,age))

{} 为占位符,我先把这个位置占住,具体数据在后面导入。

下图可以让你有更好的理解:

2. 数字格式化

format() 的第二种常用功能,是格式化数字,比如我们要输出圆周率,但只保留两位小数,可以这么写:

print("{:.2f}".format(3.1415926))

如果要保留三位,则改成 {:.3f};不带小数,则改成 {:.0f},依次类推。

format()功能还有很多,我们之后用到时在做学习。

注释,可理解为程序的注解、提示,用来帮助他人和自己阅读、理解、编写代码。python中,# 常被用作写单行注释,# 号后的内容会被忽略,不会被当作代码处理。

如:

# 注释可以写在开头:下面要打印“hello shiyanlou”
print("hello shiyanlou")
print("hello world")  # 注释也可以写在后面:这里打印“hello world”

注释 对程序员来说非常重要,甚至直接决定了你的寿命……写注释可以帮你理清思路,提高程序的可维护性;如果没有注释,你会连自己的代码都看不懂,而且极可能会被同事、上司打死……

另外,如果有一些代码暂时不需要被执行,可以先不要删掉它(因为后面可能还会使用),而是使用 # 将其注释掉。这样代码就暂时不会被执行了,之后再需要这段代码时,删掉 # 就好了。

运算,是计算机最基本的功能,我们先来学习一下运算符。

运算符用于执行程序的运算,我们这里先学习最简单的几种:「算术运算符」、「比较运算符」、「赋值运算符」、「逻辑运算符」。

不要被这些名词吓到,其实大多都是些你小学就学过的概念……

💡 算术运算符

即小学数学中的运算符,最常用的还是「加减乘除余」这五种:

运算符 名称 描述
+ 两个对象相加
- 得到负数或是一个数减去另一个数
* 两个数相乘或是返回一个被重复若干次的字符串
/ x 除以 y
% 取模 返回除法的余数
** 返回 x 的 y 次幂
// 取整除 返回商的整数部分(向下取整)

🔥 练习一下:

>>> a = 12
>>> b = 3
>>> c = 5
>>> a + b
15
>>> a - b
9
>>> a * b
36
>>> a / b
4.0
>>> a / c
2.4
>>> a % c
2

比较运算符 就是小学课本中的「大于、小于、等于……」,通常用于程序执行 循环和判断 中:

运算符 描述
== 等于:比较对象是否相等
!= 不等于:比较两个对象是否不相等
> 大于:返回 x 是否大于 y
< 小于:返回 x 是否小于 y
>= 大于等于:返回 x 是否大于等于 y
<= 小于等于:返回 x 是否小于等于 y

⚠️ 注意: 在 Python 和大多数高级语言中:一个等号代表赋值符,两个等号才代表数学意义上的“相等”。

🔥 练习一下:

>>> a = 1
>>> b = 2
>>> c = 3
>>> d = 2
>>> a == b
False
>>> a != b
True
>>> a > b
False
>>> a < b
True
>>> c >= d
True
>>> b <= c
True

赋值运算符 主要是为了简写,如果看不懂可以先跳过,在以后的项目中会更容易理解。

运算符 描述 实例
= 赋值运算符 c = a + b :将 a + b 的运算结果赋值为 c
+= 加法赋值运算符 c += a :等效于 c = c + a
-= 减法赋值运算符 c -= a :等效于 c = c - a
*= 乘法赋值运算符 c *= a :等效于 c = c * a
/= 除法赋值运算符 c /= a :等效于 c = c / a
%= 取模赋值运算符 c %= a :等效于 c = c % a
**= 幂赋值运算符 c **= a :等效于 c = c ** a
//= 取整除赋值运算符 c //= a :等效于 c = c // a

🔥 练习一下:

>>> a = 3
>>> b = 12
>>> c = 10
>>> c += a
>>> print(c)
13
>>> b -= a
>>> b
9
>>> c *= 5
>>> c
65

如果计算机只有计算功能,那它顶多是一个计算器;而我们今天使用的计算机之所以智能、可编程,最重要的原因是:它能够进行 逻辑处理

逻辑运算符,即高中数学中的「 且、或、非 」,Python 中用 andornot 表示这三种逻辑。

运算符 逻辑表达式 结果
and(逻辑与) a and b 当 a、b 都为 True 时,返回 True;否则返回 False
or(逻辑或) a or b 当 a、b 任意一个为 True,就返回 True
not(逻辑非) not a 当 a 为 True 时,返回 False;反之亦然

🔥 练习一下:

⚠️ 补充:在逻辑运算中,数字 0 代表 False,1 代表 True。

>>> not 1
False
>>> not 0
True
>>> 1 and 1
1
>>> 1 and 0
0
>>> 1 or 0
1

到这里,我们本节实验就学完了,总结一下今天所学的知识点:

  1. Python 开发环境
  2. print() 函数
  3. 变量与数据类型
  4. input() 函数
  5. 字符串
  6. 运算符

课下,请把这些知识点记录在你的 脑图 或 笔记 中,例如这样:

Python 基础语法的三大模块中,你已经学习了「数据」「函数」两个,下节课中,下你将学习第三个模块——「流程控制」

完成这三个模块的学习后,你会发现你已经能写出很多程序了~甚至在第一节实验中你体验过的对战游戏,也可以独立实现出来!胜利就在前方,我们下节课见!

点赞

发表评论