1、你好,Python

快速介绍 Python 语法、变量赋值和数字!

这门课程涵盖了你在使用Python进行数据科学时所需的关键Python技能。该课程适合有一些先前编码经验的人,希望将Python添加到他们的技能库中。(如果您是第一次编码,建议您查看我们的编程入门课程,该课程专为完全初学者设计,希望开始使用Python。)

我们将从Python语法、变量赋值和算术运算符的简要概述开始。

1.你好, Python!

Python的名字来源于英国喜剧团Monty Python,因此我们将把我们的第一个Python程序致敬给他们关于Spam的小品。

只是为了好玩,试着阅读下面的代码,并预测在运行时它将执行什么操作。(如果你一点都不知道,也没关系!)

In [1]:

spam_amount = 0
print(spam_amount)

# Ordering Spam, egg, Spam, Spam, bacon and Spam (4 more servings of Spam)
spam_amount = spam_amount + 4

if spam_amount > 0:
    print("But I don't want ANY spam!")

viking_song = "Spam " * spam_amount
print(viking_song)

output

0
But I don't want ANY spam!
Spam Spam Spam Spam 

这里有很多内容需要理解!这个简单的程序展示了Python代码的许多重要方面以及它的工作原理。让我们从上到下逐步审查代码。

In [2]:

spam_amount = 0

变量赋值: 在这里,我们创建了一个名为 spam_amount 的变量,并使用 = 赋予它值为 0,= 被称为赋值运算符。

  • 注意: 如果你之前在某些其他语言中编程过(比如Java或C++),你可能会注意到Python在这里不需要我们做一些事情:

    • 我们不需要在赋值之前“声明” spam_amount
    • 我们不需要告诉Python spam_amount 将引用的值的类型。实际上,我们甚至可以重新将 spam_amount 赋值为引用不同类型的东西,比如字符串或布尔值。

In [3]:

print(spam_amount)
0

函数调用: print 是一个Python函数,它在屏幕上显示传递给它的值。我们通过在函数名后面加括号,并在括号中放入函数的输入(或参数)来调用函数。

In [4]:

# Ordering Spam, egg, Spam, Spam, bacon and Spam (4 more servings of Spam)
spam_amount = spam_amount + 4

上面的第一行是一个注释。在Python中,注释以 # 符号开始。

接下来我们看到一个重新赋值的例子。重新赋值给现有变量的值看起来与创建变量一样 - 仍然使用 = 赋值运算符。

在这种情况下,我们赋给 spam_amount 的值涉及到对其先前值进行一些简单的算术运算。当遇到这行时,Python计算 = 右侧的表达式(0 + 4 = 4),然后将该值赋给左侧的变量。

In [5]:

if spam_amount > 0:
    print("But I don't want ANY spam!")

viking_song = "Spam Spam Spam"
print(viking_song)
But I don't want ANY spam!
Spam Spam Spam

我们在后面不会过多讨论"条件语句",但即使你以前没有编程经验,你也可以猜到这是做什么的。Python以其可读性和简洁性而受到赞赏。

请注意,我们指示哪些代码属于 if。只有在 spam_amount 是正数时,才应该打印出 "But I don't want ANY spam!"。但是稍后的代码(比如 print(viking_song))应该无论如何都会执行。我们(以及Python)如何知道呢?

if 行的末尾的冒号(:)表示一个新的代码块正在开始。缩进的后续行是该代码块的一部分。

注意: 如果你之前有编程经验,你可能知道其他一些语言使用 {花括号} 来标记代码块的开始和结束。Python对有意义的空格的使用可能会让习惯于其他语言的程序员感到惊讶,但实际上它可以产生比不强制缩进代码块的语言更一致和可读的代码。

稍后处理 viking_song 的行没有额外缩进,因此它们不是 if 的代码块的一部分。当我们定义函数和使用循环时,我们将看到更多缩进代码块的示例。

这段代码片段还是我们在 Python 中第一次看到的字符串

"But I don't want ANY spam!"

字符串可以用双引号或单引号括起来。(但是,由于此特定字符串包含单引号字符,除非我们小心,否则用单引号括起来可能会让 Python 感到困惑。)

In [6]:

viking_song = "Spam " * spam_amount
print(viking_song)
Spam Spam Spam Spam 

* 运算符可用于两个数字的乘法(3 * 3 的值为 9),但我们还可以将一个字符串乘以一个数字,以获得重复了那么多次的版本。Python 提供了许多类似的巧妙的小技巧,其中运算符如 *+ 根据它们应用于的对象类型而具有不同的含义。 (这个技术术语称为运算符重载。)

1.1数字和Python中的算术操作

我们已经在上面看到了一个包含数字的变量:

In [7]:

spam_amount = 0

"Number"是一个很好的非正式名称,但如果我们想更加技术化,我们可以询问Python如何描述spam_amount的类型:

In [8]:

type(spam_amount)

Out[8]:

int

这是一个int - 表示整数。在Python中,我们常常遇到另一种数字:

In [9]:

type(19.95)

Out[9]:

float

float是带有小数点的数字 - 用于表示重量或比例等非整数值非常有用。

type()是我们看到的第二个内置函数(在print()之后),也是另一个很好记住的函数。询问Python“这是什么类型的东西”非常有用。

对数字的自然操作之一是执行算术运算。我们已经看到了用于加法的+运算符和用于乘法的*运算符。对于计算器上的其他基本按钮,Python也有相应的运算符:

Operator Name Description
a + b Addition Sum of a and b
a - b Subtraction Difference of a and b
a * b Multiplication Product of a and b
a / b True division Quotient of a and b
a // b Floor division Quotient of a and b, removing fractional parts
a % b Modulus Integer remainder after division of a by b
a ** b Exponentiation a raised to the power of b
-a Negation The negative of a

这里的一个有趣观察是,尽管您的计算器可能只有一个除法按钮,但Python可以执行两种类型的除法。“真除法”基本上就是您的计算器所做的:

In [10]:

print(5 / 2)
print(6 / 2)
2.5
3.0

它总是给我们一个float

// 运算符给我们一个向下取整到下一个整数的结果。

In [11]:

print(5 // 2)
print(6 // 2)
2
3

您能想到这在哪里可能有用吗?您很快将在编码挑战中看到一个例子。

1.1.1运算顺序

我们在小学学到的算术有关操作的顺序有一些惯例。有些人通过诸如 PEMDAS 的记忆口诀来记住这些规则 - Parentheses(括号), Exponents(指数,例如幂运算和平方根等), Multiplication(乘法)/Division(除法), Addition(加法)/Subtraction(减法)。

Python遵循类似的规则来决定首先执行哪些计算。它们大多数情况下都相当直观。

In [12]:

8 - 3 + 2

Out[12]:

7

In [13]:

-3 + 4 * 2

Out[13]:

5

有时,默认的操作顺序不是我们想要的:

In [14]:

hat_height_cm = 25
my_height_cm = 190
# How tall am I, in meters, when wearing my hat?
total_height_meters = hat_height_cm + my_height_cm / 100
print("Height in meters =", total_height_meters, "?")
Height in meters = 26.9 ?

括号在这里很有用。您可以添加括号以强制 Python 以您想要的任何顺序评估子表达式。

In [15]:

total_height_meters = (hat_height_cm + my_height_cm) / 100
print("Height in meters =", total_height_meters)
Height in meters = 2.15

1.1.2处理数字的内置函数

minmax分别返回它们的参数的最小值和最大值...

In [16]:

print(min(1, 2, 3))
print(max(1, 2, 3))
1
3

abs 返回参数的绝对值:

In [17]:

print(abs(32))
print(abs(-32))
32
32

除了作为 Python 的两种主要数值类型的名称之外,intfloat 也可以作为函数调用,将其参数转换为相应的类型:

In [18]:

print(float(10))
print(int(3.33))
# They can even be called on strings!
print(int('807') + 1)
10.0
3
808

本文由博客一文多发平台 OpenWrite 发布!

posted @ 2024-04-06 18:59  AI算法蒋同学  阅读(20)  评论(0编辑  收藏  举报