# 加法
2 + 24
在本课程中,你将学习使用 Python 的基础知识。
要开始,请打开你喜欢的 Python 环境(例如 Jupyter Notebook、VS Code 或 PyCharm),并创建一个新的 Python 文件或笔记本。
接下来,根据你的环境,保存文件,文件名如“coding_basics.py”或“coding_basics.ipynb”。
你现在应该将本课程中的所有代码输入到该文件中。
注释是 Python 不会进行运行的文本。它们用于解释代码在做什么。
使用符号 #,读作“井号”或“pound”,来开始注释。同一行中 # 之后的任何内容都会被忽略。例如:
# 加法
2 + 24
如果我们只是尝试在代码上方写 Addition,会导致错误:
Addition
2 + 2NameError: name 'Addition' is not defined
我们可以将注释放在代码的同一行,但它需要放在代码之后。
2 + 2 # 加法4
要编写多行注释,你可以添加更多的 # 符号:
# 加法
# 添加两个数字
2 + 24
或者你可以使用三引号 ''' 或 """:
'''
加法:
下面我们添加两个数字
'''
2 + 24
或者:
"""
加法:
下面我们添加两个数字
"""
2 + 24
注释:代码中被 Python 忽略的一段文本。注释用于解释代码在做什么,旨在供人类阅读。
以下哪些代码块是有效的 Python 注释方式?
# 添加两个数字
2 + 2
2 + 2 # 添加两个数字
''' 添加两个数字
2 + 2
# 添加两个数字 2 + 2
通过尝试运行每个代码块来检查你的答案。
如你所见,Python 可以按照标准方式作为计算器使用。
以下是一些其他基本算术运算的例子:
2 - 2 # 二减二0
2 * 2 # 二乘二 4
2 / 2 # 二除以二1.0
2 ** 2 # 二的二次方4
还有一些你可能会遇到的其他运算符。例如,在Python中,使用% 符号表示模数运算,它返回除法的余数。
10 % 3 # 十模三1
// 是地板除运算符,它先除法然后向下取整到最接近的整数。
10 // 3 # 十地板除三3
猜测以下代码块的结果,然后运行它们以检查你的答案:
5 % 45 // 4Python 遵循标准的 PEMDAS 运算顺序(括号、指数、乘法、除法、加法、减法)。
例如,乘法在加法之前计算,所以下面的结果是 6。
2 + 2 * 2 6
以下哪些代码块将计算为 10?
2 + 2 * 46 + 2 ** 2我们还可以使用 math 库来进行更复杂的数学运算。例如,我们可以使用 math.sqrt 函数计算一个数的平方根。
import math
math.sqrt(100) # 平方根10.0
或者我们可以使用 math.log 函数计算一个数的自然对数。
import math
math.log(100) # 对数4.605170185988092
math.sqrt 和 math.log 是 Python 函数 的例子,其中一个 参数(例如 100)被传递给函数以进行计算。
我们将在后面学习更多关于函数的内容。
函数:执行特定任务的可重用代码块。函数通常接受输入(称为参数)并返回输出。
使用 math 库,计算 81 的平方根。
在下方编写你的代码并运行以检查你的答案:
# 你的代码在这里考虑以下代码,它生成一个 1 到 10 之间的随机数:
import random
random.randint(1, 10)10
在这段代码中,确定库、函数和函数的参数。
良好的间距使你的代码更易读。在 Python 中,两个简单的间距实践可以大大提高代码的可读性:使用空行和在运算符周围添加空格。
Python 使用缩进来表示循环、函数和其他代码块的开始和结束。我们将在后面的课程中详细介绍这一点。
目前,需要注意的一件事是避免在代码前意外加入空格。
例如,考虑以下代码块:
import math
# 获取 100 的平方根
math.sqrt(100)尝试运行这段代码会导致错误:
IndentationError: unexpected indent
这是由于 math.sqrt 函数前的空格。我们可以通过删除空格来修复它。
import math
# 获取 100 的平方根
math.sqrt(100)使用空行来分隔代码的不同部分。
例如,考虑以下代码块:
# 设置数字
x = 5
y = 10
# 执行计算
result = x + y
# 显示结果
print(result)15
我们可以添加空行来分隔代码的不同部分:
# 设置数字
x = 5
y = 10
# 执行计算
result = x + y
# 显示结果
print(result)15
空行有助于将代码组织成逻辑部分,类似于书写中的段落。
在数学运算符周围添加空格可以提高可读性:
# 难以阅读
x=5+3*2
# 容易阅读
x = 5 + 3 * 2在列举项目时,在每个逗号后添加一个空格:
# 难以阅读
print(1,2,3)
# 容易阅读
print(1, 2, 3)这一做法遵循书面英语的惯例,我们在逗号后加一个空格。它使代码中的项目列表更易读。
如你所见,为了在 Python 中存储一个值以供将来使用,我们使用 赋值运算符 = 将其赋值给一个 变量。
my_var = 2 + 2 # 将 `2 + 2` 的结果赋值给名为 `my_var` 的变量
print(my_var) # 打印 my_var4
现在你已经创建了变量 my_var,Python 知道它并将在这个 Python 会话中跟踪它。
你可以打开你的环境查看你创建了哪些变量。这取决于你的 IDE 而有所不同。
那么,变量到底是什么?可以将其视为一个命名的容器,可以保存一个值。当你运行以下代码:
my_var = 20你是在告诉 Python,“将数字 20 存储在名为 ‘my_var’ 的变量中”。
一旦代码运行,我们可以用 Python 术语说,“变量 my_var 的值是 20”。
尝试为以下代码块编写类似的句子:
first_name = "Joanna"运行这段代码后,我们可以用 Python 术语说,“变量 first_name 的值是 Joanna”。
像 “Joanna” 这样的文本值称为 字符串,而像 20 这样的数字称为 整数。如果数字有小数点,则称为 浮点数,是“浮点数”(floating-point number)的简称。
以下是这三种变量类型的示例:
# 字符串变量
first_name = "Joanna"
# 整数变量
age = 5
# 浮点数变量
height = 1.4你可以使用 type() 函数检查变量的类型。
print(type(first_name))
print(type(age))
print(type(height))<class 'str'>
<class 'int'>
<class 'float'>
变量:一个可以保存值的命名容器。在 Python 中,变量可以存储不同类型的数据,包括数字、字符串和更复杂的对象。
重新赋值变量就像是更改容器的内容。
例如,之前我们运行了这段代码,将值 “Joanna” 存储在 first_name 变量中:
first_name = "Joanna"要将其更改为不同的值,只需运行一个新的赋值语句并使用新值:
first_name = "Luigi"你可以打印变量以观察变化:
first_name'Luigi'
大部分时间你将在 Python 中操作变量。让我们看一些快速的例子。
你可以对变量运行简单的命令。例如,下面我们将值 100 存储在变量中,然后对变量取平方根:
import math
my_number = 100
math.sqrt(my_number)10.0
Python 将 my_number 视为数字 100,因此能够计算其平方根。
你还可以将现有变量组合起来创建新变量。例如,输入以下代码,将 my_number 加到自身,并将结果存储在名为 my_sum 的新变量中:
my_sum = my_number + my_number
my_sum200
my_sum 的值应该是多少?先猜测,然后通过打印来检查。
Python 还允许我们使用 + 运算符连接字符串。例如,我们可以连接 first_name 和 last_name 变量来创建一个名为 full_name 的新变量:
first_name = "Joanna"
last_name = "Luigi"
full_name = first_name + " " + last_name
full_name'Joanna Luigi'
考虑以下代码。变量 answer 的值是多少?想一想,然后运行代码检查你的答案。
eight = 9
answer = eight - 8
answer尽管在数据分析中不常用,但 Python 的 input() 函数是一个很酷的 Python 功能,你应该了解。它允许你获取用户输入。
这是一个简单的例子。我们可以请求用户输入并将其存储在名为 name 的变量中。
name = input()然后我们可以向用户打印一个问候语。
print("Hello,", name)我们还可以在输入提示中包含一个问题:
name = input('What is your name? ')
print("Hello,", name)让我们看另一个例子。我们将告诉用户他们名字中有多少个字母。
name = input('What is your name? ')
print("There are", len(name), "letters in your name")例如,如果你运行这段代码并输入 “Kene”,你可能会看到:
What is your name? Kene
There are 4 letters in your name
编写一个简短的程序,询问用户他们最喜欢的颜色,然后打印一条消息,说“xx 颜色也是我最喜欢的颜色!”,其中 xx 是他们输入的颜色。通过运行程序并输入一个颜色来测试你的程序。
在 Python 中使用变量时,你会遇到的最常见错误之一是 NameError。当你尝试使用一个尚未定义的变量时,就会发生这种错误。例如:
my_number = 48 # 定义 `my_number`
My_number + 2 # 尝试将 2 加到 `my_number`如果你运行这段代码,会得到如下错误信息:
NameError: name 'My_number' is not defined
在这里,Python 返回错误信息,因为我们尚未创建(或 定义)变量 My_number。记住,Python 是区分大小写的;我们定义了 my_number,但尝试使用 My_number。
要修复此问题,确保你使用的是正确的变量名:
my_number = 48
my_number + 2 # 这将工作并返回 5050
始终仔细检查你的变量名以避免此错误。记住,在 Python 中,my_number、My_number 和 MY_NUMBER 都是不同的变量。
当你开始学习 Python 时,处理错误可能会令人沮丧。它们通常很难理解。
但习惯读取和理解错误很重要,因为你在编码职业生涯中会经常遇到错误。
稍后,我们将向你展示如何使用像 ChatGPT 这样的语言模型(LLMs)来调试错误。
但在此之前,最好尝试自己发现和修复错误。
下面的代码返回一个错误。为什么?(仔细看看)
my_1st_name = "Kene"
my_last_name = "Nwosu"
print(my_Ist_name, my_last_name)提示:看看变量名。它们是否一致?
计算机科学中只有 两件难事:缓存失效和 命名事物。
— Phil Karlton.
因为你在 Python 中的很多工作涉及与你创建的变量互动,给这些变量选择智能的名字很重要。
命名变量很难,因为名字应该既 简短(这样你可以快速键入它们)又 信息丰富(这样你可以轻松记住变量包含的内容),而这两个目标往往相冲突。
因此,像下面这样太长的名字是不好的,因为它们需要很长时间来输入。
sample_of_the_ebola_outbreak_dataset_from_sierra_leone_in_2014而像 data 这样的名字也是不好的,因为它不具有信息性;名字没有很好地说明变量包含什么。
随着你编写更多的 Python 代码,你将学会如何编写简短且信息丰富的名字。
对于由多个单词组成的名字,有几种约定用于分隔单词:
snake_case = "蛇形命名使用下划线"
camelCase = "骆驼命名法将新单词首字母大写(但不包括第一个单词)"
PascalCase = "帕斯卡命名法将所有单词包括第一个单词都首字母大写"我们推荐 snake_case,它使用全小写单词,并用 _ 分隔单词。
还要注意,变量名有一些限制:
2014_data 不是一个有效的名字(因为它以数字开头)。尝试运行下面的代码块看看会得到什么错误。2014_data = "This is not a valid name"_)。因此 ebola-data 或 ebola~data 或带空格的 ebola data 都不是有效的名字。ebola-data = "This is not a valid name"ebola~data = "This is not a valid name"虽然我们在 Python 中推荐使用 snake_case 作为变量名,但你可能会看到其他约定,如 camelCase 或 PascalCase,特别是在使用其他语言的代码或某些 Python 库时。在你自己的代码中要保持一致,并遵循你所工作的任何项目或团队的惯例。
以下哪些变量名在 Python 中是有效的?尝试在不运行代码的情况下确定,然后通过尝试运行每行代码来检查你的答案。
然后修复无效的变量名。
1st_name = "John"
last_name = "Doe"
full-name = "John Doe"
age_in_years = 30
current@job = "Developer"
PhoneNumber = "555-1234"
_secret_code = 42在本课程中,我们涵盖了 Python 编程的基本构建块:
# 进行单行注释和三引号进行多行注释。input() 函数获取用户输入。这些概念构成了 Python 编程的基础。随着你继续学习,你将以这些基础为基础,创建更复杂和强大的程序。记住,实践是掌握这些概念的关键!