数据类型和基本语句

本章包含:

  • 基本运算符
  • 赋值语句
  • 数据类型
  • 条件语句
  • 循环语句

基本运算符

Python 可以当计算器来用哟。
还记得print命令吗?我们会用它来输出运算结果。
注意引号的使用。至于为什么,我们在数据类型里会解释。

In [1]:
print("加法:1 + 2 的结果是:")
print(1 + 2)
print("乘法:4 * 6 的结果是:")
print(4 * 6)
print("除法:24 / 4 的结果是:")
print(24 / 4)
print("除法:24 / 9 的结果是:")
print(24 / 9)
print("整除(做除法后取整数部分):24 // 9 的结果是:")
print(24 // 9)
print("取余:24 % 9 的结果是:")
print(24 % 9)
print("取幂(一个数的n次方):9 ** 2 的结果是:")
print(9 ** 2)
加法:1 + 2 的结果是:
3
乘法:4 * 6 的结果是:
24
除法:24 / 4 的结果是:
6.0
除法:24 / 9 的结果是:
2.6666666666666665
整除(做除法后取整数部分):24 // 9 的结果是:
2
取余:24 % 9 的结果是:
6
取幂(一个数的n次方):9 ** 2 的结果是:
81

用 Python 写算式和用笔写算式的规则是一模一样的。

一个例子

求二维空间中坐标为(4,5)(1,1)两个点之间的距离:

In [2]:
print(((4 - 1) ** 2 + (5 - 1) ** 2) ** 0.5)
5.0

** 0.5 就是取 0.5 次方,也就是开平方。
另外,注意一下括号的使用。必须完全正确才行。

赋值语句

就像我们小学数学课,学习方程,设置未知数x和y一样,编程的时候,为了方便,也会这么做。只不过,编程时候的未知数,叫做变量

In [3]:
x = 1     # 设 x = 1
y = x + 1 # 设 y = x + 1
print(y)  # 于是,y 就是 2 啦!
2

唯一与数学不同的地方在于以下的情况

In [4]:
x = 1     # 设 x = 1 
x = x + 1 # 先计算等式右边的 x + 1,结果是 2,然后让 x 等于等号右边的东西
print(x)  # 于是 x 就是 2 啦!
2

我们也可以重写最开始的 Hello World 程序:

In [5]:
x = "Hello world!" # 让 x 等于 "Hello World!" 这句话
print(x)           # 输出 x
Hello world!

数据类型

数字和字符串

我们可以让一个未知数(变量)等于不同类型的

  • 比如当我们运行 x = 3 + 5 的时候,x 的类型是数字,值是8
  • 当我们运行 x = "Hello world!" 的时候,x 的类型是字符串,值是"Hello world!"
  • 当我们运行 x = "3 + 5" 的时候(注意引号), x 的类型是字符串,值是"3 + 5"

列表

就是一个排好顺序的盒子,啥都能往里放。

In [6]:
x = [3, 1, 4, 1, 5, "hello", 9, 2, "world", 5]
print(x)
[3, 1, 4, 1, 5, 'hello', 9, 2, 'world', 5]

程序猿们是从 0 开始数数的,所以第 0 个东西是 3,第 1 个是 1,...。
这样数数,想拿第 5 个东西(hello 字符串)的时候,只需要:

In [7]:
item = x[5]
print(item)
hello

你也可以直接把它设置成其它东西,像这样:

In [8]:
another_item = "greetings"
x[5] = another_item
print(x)
[3, 1, 4, 1, 5, 'greetings', 9, 2, 'world', 5]

注意,这里 itemanother_item 都是变量的名字,就像 x, yz 一样,都是随便起的,能表达意思就好。

开关(Boolean)

一个开关类型的变量,要么是 True,要么是 False,就像开关一样,要么是开,要么是关。
与之相关联的,是数值大小的判断的操作>, <, ==, !=

In [9]:
x = 5
print(x > 4)
True
In [10]:
print(x < 4)
False
In [11]:
print(x == 5)
True
In [12]:
print(x != 5)
False

以及逻辑操作 and, or, not

In [13]:
a = True
b = False
print(a and b)
False
In [14]:
print(a or b)
True
In [15]:
print(not b)
True

开关变量会在条件语句中使用。

还有很多...

Python 中还有很多种数据类型,它们就像各种容器一样(杯子啊,脸盆啊甚至水库),有不同的使用方法。我们之后会接触到更多。

条件语句

条件语句的结构大概是这样

if 开关类型的值1:
    命令1
elif 开关类型的值2:
    命令2
elif 开关类型的值3
    命令3
else:
    命令4

一个例子

In [16]:
x = 6
if x > 5:
    print("这个值大于 5")
elif x == 5:
    print("这个值等于 5")
else:
    print("这个值小于 5")
这个值大于 5

条件语句会从上到下查看每一个开关类型的值,如果是 True,就执行对应的命令。

For 循环语句

for 变量 in [x1, x2, ... ]:
    执行命令...

一个例子

In [17]:
items = [1, 5, 4, 6, 0]
for item in items:
    if item > 5:
        print("大于 5")
    elif item == 5:
        print("等于 5")
    else:
        print("小于 5")
小于 5
等于 5
小于 5
大于 5
小于 5

在这个循环中,我们把 items 中的每一个元素取出,赋值给 item,然后根据 item 的值完成一系列操作。

While 循环语句

while 开关类型的值:
    执行命令

每当执行命令完成后,程序会重新计算一下 开关类型的值,如果是 True,那么执行命令会被再次执行,直到开关类型的值变成False

一个例子

In [18]:
x = 0
while x < 10:
    x = x + 1
    print(x)
1
2
3
4
5
6
7
8
9
10

另一个例子

下面这个程序会造成所谓的死循环,程序永远无法完成执行,并且会无数次地输出。

x = 1
while x > 0:
    x = x + 1
    print(x)

Cases

Case 1

Hello World 程序中,如果这样写: print(Hello World)(不加引号)会怎么样呢?

In [19]:
print(Hello world!)
  File "<ipython-input-19-01a3c6a17cb8>", line 1
    print(Hello world!)
                    ^
SyntaxError: invalid syntax

它提示了格式错误。因为计算机不知道你输入的 Hello world ! 到底是什么东西。

Case 2

In [20]:
print(1 + 2)
print("1 + 2")
3
1 + 2

它俩有什么不同呢?

  • 引号包裹的东西,我们叫它字符串。丢给print的时候,引号里面是啥,出来就是啥。
  • 不加字符串的时候,它会进行加法运算,得出一个数字