Python 基础 语法、数据类型和控制结构
Python基础语法、数据类型和控制结构
你是一个初学者,想要学习使用Python编程吗?如果是的话,这个适合初学者的教程将帮助你熟悉这门语言的基础知识。
本教程将向你介绍Python的语法,这门语言相对来说比较容易理解。你还将学习如何在Python中处理不同的数据类型、条件语句和循环结构。
如果你已经在开发环境中安装了Python,可以打开Python REPL并跟着教程编写代码。或者,如果你想跳过安装过程,并立即开始编写代码,我建议你前往Google Colab并跟着教程进行。
- A12研究人员推出Satlas:一种新的人工智能平台,用于探索由卫星图像生成的全球地理空间数据
- 改革语音恢复:斯坦福领导的研究揭示了用于无约束通信的高性能神经假肢
- 人工智能在网站建设中的崛起:更详细地了解Hostinger AI网站构建器
你好,Python!
在我们用Python写经典的“Hello, world!”程序之前,让我们先了解一些关于这门语言的信息。Python是一种解释型语言。这是什么意思呢?
在任何一种编程语言中,你所编写的所有源代码都需要被转换成机器语言。而编译型语言如C和C++在程序运行之前需要整个机器代码,而解释器则会解析源代码并即时解释运行。
创建一个Python脚本,输入以下代码并运行:
print("Hello, World!")
为了打印出“Hello, World!”,我们使用了`print()`函数,这是Python中的众多内置函数之一。
在这个非常简单的示例中,你会注意到“Hello, World!”是一个序列,即一串字符。Python的字符串由一对单引号或双引号括起来。因此,要打印出任何消息字符串,你可以使用`print(“<message_string>”)`。
读取用户输入
现在让我们进一步学习如何使用`input()`函数读取用户输入。在提示用户输入时,你应该始终告诉他们应该输入什么。
下面是一个简单的程序,它接受用户的姓名作为输入并向他们问候。
通过提供额外的上下文信息,注释可以提高代码的可读性。在Python中,单行注释以#开始。
请注意,代码段中的字符串前面有一个`f`。这样的字符串称为格式化字符串或f-字符串。要在f-字符串中替换变量的值,请使用大括号将变量的名称括起来,如下所示:
# 获取用户输入
user_name = input("请输入您的姓名:")
# 向用户问候
print(f"你好,{user_name}!很高兴认识你!")
当你运行程序时,首先会提示你进行输入,然后问候消息会被打印出来:
请输入您的姓名:Bala
你好,Bala!很高兴认识你!
接下来,让我们学习Python中的变量和数据类型。
变量和数据类型
在任何一种编程语言中,变量都类似于存储信息的容器。在我们迄今为止编写的代码中,我们已经创建了一个名为`user_name`的变量。当用户输入他们的姓名(一个字符串)时,它会被存储在`user_name`变量中。
Python中的基本数据类型
让我们逐步介绍Python中的基本数据类型:`int`(整数)、`float`(浮点数)、`str`(字符串)和`bool`(布尔值),并使用简单的示例进行说明:
整数(`int`):整数是没有小数点的整数。你可以这样创建整数并将其赋值给变量:
age = 25
discount= 10
这些是赋值语句,它们将一个值赋给变量。在像C这样的语言中,你需要在声明变量时指定数据类型,但Python是一种动态类型语言,它会根据值来推断数据类型。因此,你可以重新赋值给一个变量来存储完全不同数据类型的值:
number = 1
number = 'one'
你可以使用`type`函数来检查Python中任何变量的数据类型:
number = 1
print(type(number))
`number`是一个整数:
输出 >>>
现在我们将一个字符串值赋给`number`:
number = 'one'
print(type(number))
输出 >>>
浮点数(`float`):浮点数表示带有小数点的实数。你可以这样创建`float`数据类型的变量:
height = 5.8
pi = 3.14159
你可以对数值数据类型进行各种操作,如加法、减法、整除、乘方等。以下是一些示例:
# 定义数值变量
x = 10
y = 5
# 加法
add_result = x + y
print("加法:", add_result) # 输出: 15
# 减法
sub_result = x - y
print("减法:", sub_result) # 输出: 5
# 乘法
mul_result = x * y
print("乘法:", mul_result) # 输出: 50
# 除法(浮点数结果)
div_result = x / y
print("除法:", div_result) # 输出: 2.0
# 整除(向下取整除法)
int_div_result = x // y
print("整除:", int_div_result) # 输出: 2
# 取模(除法的余数)
mod_result = x % y
print("取模:", mod_result) # 输出: 0
# 乘方
exp_result = x ** y
print("乘方:", exp_result) # 输出: 100000
字符串(`str`):字符串是由字符组成的序列,用单引号或双引号括起来。
name = "Alice"
quote = 'Hello, world!'
布尔值(`bool`):布尔值表示`True`或`False`,表示条件的真值。
is_student = True
has_license = False
Python在处理不同的数据类型方面非常灵活,可以有效地存储、执行各种操作和操作数据。
下面是一个例子,将我们迄今学到的所有数据类型组合在一起:
# 同时使用不同的数据类型
age = 30
score = 89.5
name = "Bob"
is_student = True
# 检查分数是否高于及格阈值
passing_threshold = 60.0
is_passing = score >= passing_threshold
print(f"{name=}")
print(f"{age=}")
print(f"{is_student=}")
print(f"{score=}")
print(f"{is_passing=}")
以下是输出结果:
输出 >>>
name='Bob'
age=30
is_student=True
score=89.5
is_passing=True
超出基本数据类型
假设你正在管理一个教室里学生的信息。创建一个集合来存储所有学生的信息,而不是为每个学生重复定义变量,会更加方便。
列表
列表是有序的项目集合,用一对方括号括起来。列表中的项目可以是相同类型的,也可以是不同类型的。列表是可变的,意味着你可以在创建后更改它们的内容。
这里,`student_names`包含了学生的名字:
# 列表
student_names = ["Alice", "Bob", "Charlie", "David"]
元组
元组是有序的集合,类似于列表,但它们是不可变的,意味着创建后无法更改其内容。
假设您想要`student_scores`成为一个包含学生考试成绩的不可变集合。
# 元组
student_scores = (85, 92, 78, 88)
字典
字典是键值对的集合。字典的键应该是唯一的,并且它们映射到相应的值。它们是可变的,并允许您将信息与特定的键关联起来。
在这里,`student_info`包含每个学生的信息-姓名和分数,作为键值对:
student_info = {'Alice': 85, 'Bob': 92, 'Charlie': 78, 'David': 88}
但是,等等,有一种更优雅的方法可以在Python中创建字典。
我们即将学习一个新概念:字典推导。如果一开始不清楚,不用担心。您可以随时学习更多并进行实践。
但是推导式相当直观易懂。如果您希望`student_info`字典以学生姓名作为键,相应的考试成绩作为值,可以这样创建字典:
# 使用字典推导来创建student_info字典
student_info = {name: score for name, score in zip(student_names, student_scores)}
print(student_info)
请注意,我们使用`zip()`函数同时迭代`student_names`列表和`student_scores`元组。
输出 >>>
{'Alice': 85, 'Bob': 92, 'Charlie': 78, 'David': 88}
在此示例中,字典推导直接将`student_names`列表中的每个学生姓名与`student_scores`元组中的相应考试成绩配对,以创建以名称为键,分数为值的`student_info`字典。
现在您已经熟悉了基本数据类型和一些序列/可迭代对象,让我们继续讨论的下一部分:控制结构。
Python中的控制结构
当您运行Python脚本时,代码执行按照脚本中出现的顺序-顺序地-进行。
有时,您需要根据某些条件实现逻辑控制流程或循环遍历可迭代对象以处理其中的项目。
我们将学习if-else语句如何实现分支和条件执行。我们还将学习使用循环迭代序列和循环控制语句break和continue。
if语句
当您只需要在特定条件为真时执行一段代码块时,可以使用`if`语句。如果条件评估为false,则不执行代码块。
考虑以下示例:
score = 75
if score >= 60:
print("恭喜!您通过了考试。")
在这个示例中,只有当`score`大于或等于60时,才会执行`if`块中的代码。由于`score`是75,将打印消息“恭喜!您通过了考试。”
输出 >>> 恭喜!您通过了考试。
if-else条件语句
`if-else`语句允许您在条件为真时执行一个代码块,在条件为假时执行另一个代码块。
让我们以测试分数的例子为基础:
score = 45
if score >= 60:
print("恭喜你!你通过了考试。")
else:
print("抱歉,你没有通过考试。")
在这里,如果 `score` 小于60,则会执行 `else` 块中的代码:
输出 >>> 抱歉,你没有通过考试。
If-elif-else 阶梯
`if-elif-else` 语句用于当您有多个条件需要检查时。它允许您测试多个条件,并执行首个为真条件所对应的代码块。
如果 `if` 和所有 `elif` 语句的条件都为假,则执行 `else` 块。
score = 82
if score >= 90:
print("非常棒!你得了 A 级。")
elif score >= 80:
print("干得好!你得了 B 级。")
elif score >= 70:
print("还不错!你得了 C 级。")
else:
print("你需要努力提高。你得了 F 级。")
在这个例子中,程序检查 `score` 是否符合多个条件。首个为真条件的代码块将被执行。由于 `score` 是82,所以输出为:
输出 >>> 干得好!你得了 B 级。
嵌套的 If 语句
嵌套的 `if` 语句用于在一个条件内检查多个条件。
name = "Alice"
score = 78
if name == "Alice":
if score >= 80:
print("干得好,Alice!你得了 A 级。")
else:
print("不错的努力,Alice!继续加油。")
else:
print("你做得很好,但这条消息是给 Alice 的。")
在这个例子中,存在一个嵌套的 `if` 语句。首先,程序检查 `name` 是否为 “Alice”。如果为真,则检查 `score`。由于 `score` 是78,内部的 `else` 块会被执行,输出 “不错的努力,Alice!继续加油。”
输出 >>> 不错的努力,Alice!继续加油。
Python 提供了几种循环结构,可以迭代集合或执行重复任务。
For 循环
在 Python 中,`for` 循环提供了一种简洁的语法,让我们可以迭代现有的可迭代对象。我们可以像这样迭代 `student_names` 列表:
student_names = ["Alice", "Bob", "Charlie", "David"]
for name in student_names:
print("学生:", name)
上面的代码输出:
输出 >>>
学生: Alice
学生: Bob
学生: Charlie
学生: David
While 循环
如果您想要在条件为真时执行一段代码,可以使用 `while` 循环。
让我们使用相同的 `student_names` 列表:
# 使用 while 循环与现有可迭代对象
student_names = ["Alice", "Bob", "Charlie", "David"]
index = 0
while index < len(student_names):
print("学生:", student_names[index])
index += 1
在这个例子中,我们有一个包含学生姓名的列表 `student_names`。我们使用 `while` 循环通过跟踪 `index` 变量来迭代列表。
只要`index`小于列表的长度,循环就会继续进行。在循环内部,我们打印每个学生的姓名并递增`index`以移动到下一个学生。注意使用`len()`函数来获取列表的长度。
这与使用`for`循环遍历列表达到相同的结果:
输出 >>>
学生:Alice
学生:Bob
学生:Charlie
学生:David
让我们使用一个`while`循环从列表中弹出元素,直到列表为空:
student_names = ["Alice", "Bob", "Charlie", "David"]
while student_names:
current_student = student_names.pop()
print("当前学生:", current_student)
print("所有学生已处理完毕。")
列表方法`pop`会移除并返回列表中的最后一个元素。
在这个例子中,只要`student_names`列表中还有元素,`while`循环就会继续进行。在循环内部,使用`pop()`方法来移除并返回列表的最后一个元素,并打印当前学生的姓名。
循环会一直进行,直到所有学生都被处理完毕,然后在循环外打印一条最终消息。
输出 >>>
当前学生:David
当前学生:Charlie
当前学生:Bob
当前学生:Alice
所有学生已处理完毕。
对于遍历现有可迭代对象(如列表)来说,`for`循环通常更简洁、更易读。但是当循环条件更复杂时,`while`循环可以提供更多的控制。
循环控制语句
`break`语句可以提前退出循环,`continue`语句可以跳过当前迭代的剩余部分,直接进入下一次迭代。
以下是一个例子:
student_names = ["Alice", "Bob", "Charlie", "David"]
for name in student_names:
if name == "Charlie":
break
print(name)
当`name`等于Charlie时,循环会提前退出,输出:
输出 >>>
Alice
Bob
模拟do-while循环的行为
在Python中,没有内置的`do-while`循环,类似于其他编程语言。然而,你可以使用带有`break`语句的`while`循环来实现相同的行为。以下是如何在Python中模拟`do-while`循环的方法:
while True:
user_input = input("输入'exit'以停止:")
if user_input == 'exit':
break
在这个例子中,循环将无限制地继续运行,直到用户输入’exit’。循环至少运行一次,因为条件最初设置为`True`,然后在循环内部检查用户的输入。如果用户输入’exit’,`break`语句会执行,退出循环。
以下是一个示例输出:
输出 >>>
输入'exit'以停止:hi
输入'exit'以停止:hello
输入'exit'以停止:bye
输入'exit'以停止:try harder!
输入'exit'以停止:exit
请注意,这种方法类似于其他语言中的`do-while`循环,在检查条件之前,循环体至少会执行一次。
总结和下一步
我希望你能够顺利地跟着本教程进行编码。现在,你已经了解了Python的基础知识,是时候开始编写一些非常简单的项目,应用你学到的所有概念了。Bala Priya C是来自印度的开发者和技术作家。她喜欢在数学、编程、数据科学和内容创作的交叉领域工作。她感兴趣和擅长的领域包括DevOps、数据科学和自然语言处理。她喜欢阅读、写作、编码和咖啡!目前,她正在通过撰写教程、指南、观点文章等来学习并与开发者社区分享知识。