博客专栏

EEPW首页 > 博客 > Python 基础知识:语法、数据类型和控制结构

Python 基础知识:语法、数据类型和控制结构

发布人:ygtu 时间:2023-09-11 来源:工程师 发布文章
推荐:使用NSDT场景编辑器快速搭建3D应用场景

如果开发和环境中已安装 Python,请启动 Python REPL 和代码。或者,如果您想跳过安装并立即开始编码,我建议您前往Google Colab并一起编码。

你好,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 字符串中变量的值,请在一对大括号内指定变量的名称,如下所示:

# Get user input
user_name = input("Please enter your name: ")

# Greet the user
print(f"Hello, {user_name}! Nice to meet you!")

运行程序时,系统将首先提示您输入,然后打印出问候消息:

Please enter your name: Bala
Hello, Bala! Nice to meet you!

让我们继续学习 Python 中的变量和数据类型。

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))

“数字”是一个整数:

Output >>> <class 'int'>

我们现在为“数字”分配一个字符串值:

number = 'one'
print(type(number))
Output >>> <class 'str'>

浮点数(“float”):浮点数表示带有小数点的实。您可以创建“float”数据类型的变量,如下所示:

height = 5.8
pi = 3.14159

您可以对数值数据类型执行各种运算(加法、减法、下限除法、幂等)。以下是一些示例:

# Define numeric variables
x = 10
y = 5

# Addition
add_result = x + y
print("Addition:", add_result)  # Output: 15

# Subtraction
sub_result = x - y
print("Subtraction:", sub_result)  # Output: 5

# Multiplication
mul_result = x * y
print("Multiplication:", mul_result)  # Output: 50

# Division (floating-point result)
div_result = x / y
print("Division:", div_result)  # Output: 2.0

# Integer Division (floor division)
int_div_result = x // y
print("Integer Division:", int_div_result)  # Output: 2

# Modulo (remainder of division)
mod_result = x % y
print("Modulo:", mod_result)  # Output: 0

# Exponentiation
exp_result = x ** y
print("Exponentiation:", exp_result)  # Output: 100000

字符串('str'):字符串是字符序列,括在单引号或双引号中。

name = "Alice"
quote = 'Hello, world!'

布尔值(“bool”):布尔值表示“真”或“假”,表示条件的真值。

is_student = True
has_license = False

Python 在处理不同数据类型方面的灵活性使您可以有效地存储、执行各种操作和操作数据。

下面是一个示例,将我们迄今为止学到的所有数据类型放在一起:

# Using different data types together
age = 30
score = 89.5
name = "Bob"
is_student = True

# Checking if score is above passing threshold
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=}")

这是输出:

Output >>>

name='Bob'
age=30
is_student=True
score=89.5
is_passing=True
超越基本数据类型

假设您正在管理课堂上有关学生的信息。创建一个集合(存储所有学生的信息)会比为每个学生重复定义变量更有帮助。

列表

列表是项的有序集合,括在一对方括号内。列表中的项都可以是相同或不同的数据类型。列表是可变的,这意味着您可以在创建后更改其内容。

在这里,“student_names”包含学生的姓名:

# List
student_names = ["Alice", "Bob", "Charlie", "David"]
元组

元组是类似于列表的有序集合,但它们是不可变的,这意味着您在创建后无法更改其内容。

假设您希望“student_scores”成为包含学生考试成绩的不可变集合。

# Tuple
student_scores = (85, 92, 78, 88)
字典

字典是键值对的集合。字典的键应该是唯一的,并且它们映射到相应的值。它们是可变的,允许您将信息与特定键相关联。

在这里,“student_info”包含有关每个学生的信息(姓名和分数)作为键值对:

student_info = {'Alice': 85, 'Bob': 92, 'Charlie': 78, 'David': 88}

但是等等,有一种更优雅的方法可以在 Python 中创建字典。

我们即将学习一个新概念:字典理解。如果不是马上就清楚了,不要担心。您可以随时了解更多信息并在以后处理它。

但是理解是非常直观的理解。如果您希望“student_info”词典将学生姓名作为键,并将他们相应的考试成绩作为值,则可以像这样创建字典:

# Using a dictionary comprehension to create the student_info dictionary
student_info = {name: score for name, score in zip(student_names, student_scores)}

print(student_info)

请注意我们如何使用 'zip()' 函数同时遍历 'student_names' 列表和 'student_scores' 元组。

Output >>>

{'Alice': 85, 'Bob': 92, 'Charlie': 78, 'David': 88}

在此示例中,字典理解直接将“student_names”列表中的每个学生姓名与“student_scores”元组中的相应考试分数配对,以创建“student_info”字典,其中姓名作为键,分数作为值。

现在您已经熟悉了原始数据类型和一些序列/可迭代对象,让我们继续讨论的下一部分:控制结构

Python 中的控制结构

运行 Python 脚本时,代码执行按顺序执行,顺序与代码在脚本中执行的顺序相同。

有时,您需要实现逻辑来根据某些条件控制执行流,或者循环通过可迭代对象来处理其中的项。

我们将了解 if-else 语句如何促进分支和条件执行。我们还将学习如何使用循环迭代序列,循环控制语句中断并继续。

如果语句

当仅当特定条件为真时才需要执行代码块时,可以使用“if”语句。如果条件的计算结果为 false,则不执行代码块。

Python 基础知识:语法、数据类型和控制结构


图片来源:作者

请考虑以下示例:

score = 75

if score >= 60:
    print("Congratulations! You passed the exam.")

在此示例中,仅当“score”大于或等于 60 时,才会执行“if”块中的代码。由于“分数”是 75,因此消息“恭喜!你通过了考试“,将打印出来。

Output >>> Congratulations! You passed the exam.
If-else 条件语句

“if-else”语句允许您在条件为真时执行一个代码块,如果条件为假,则执行另一个代码块。

Python 基础知识:语法、数据类型和控制结构


图片来源:作者

让我们以测试分数示例为基础:

score = 45

if score >= 60:
    print("Congratulations! You passed the exam.")
else:
    print("Sorry, you did not pass the exam.")

在这里,如果“分数”小于 60,则将执行“else”块中的代码:

Output >>> Sorry, you did not pass the exam.
If-elif-else Ladder

当您有多个条件要检查时,将使用“if-elif-else”语句。它允许您测试多个条件,并为遇到的第一个 true 条件执行相应的代码块。

如果 'if' 和所有 'elif' 语句中的条件计算结果为 false,则执行 'else' 块。

Python 基础知识:语法、数据类型和控制结构


图片来源:作者

score = 82

if score >= 90:
    print("Excellent! You got an A.")
elif score >= 80:
    print("Good job! You got a B.")
elif score >= 70:
    print("Not bad! You got a C.")
else:
    print("You need to improve. You got an F.")

在此示例中,程序根据多个条件检查“分数”。将执行第一个 true 条件块中的代码。由于“分数”是 82,我们得到:

Output >>> Good job! You got a B.
嵌套 If 语句

当您需要检查另一个条件中的多个条件时,使用嵌套的“if”语句。

name = "Alice"
score = 78

if name == "Alice":
    if score >= 80:
        print("Great job, Alice! You got an A.")
    else:
        print("Good effort, Alice! Keep it up.")
else:
    print("You're doing well, but this message is for Alice.")

在此示例中,有一个嵌套的“if”语句。首先,程序检查“名称”是否为“爱丽丝”。如果为 true,则检查“分数”。由于“分数”为 78,因此执行内部的“else”块,打印“努力好,爱丽丝!坚持下去。

Output >>> Good effort, Alice! Keep it up.

Python 提供了几个循环构造来迭代集合或执行重复性任务。

对于循环

在 Python 中,“for”循环提供了一个简洁的语法,让我们迭代现有的可迭代对象。我们可以像这样迭代“student_names”列表:

student_names = ["Alice", "Bob", "Charlie", "David"]

for name in student_names:
    print("Student:", name)

上面的代码输出:

Output >>>

Student: Alice
Student: Bob
Student: Charlie
Student: David
而循环

如果你想在条件为真的情况下执行一段代码,你可以使用“while”循环。

让我们使用相同的“student_names”列表:

# Using a while loop with an existing iterable

student_names = ["Alice", "Bob", "Charlie", "David"]
index = 0

while index < len(student_names):
    print("Student:", student_names[index])
    index += 1

在此示例中,我们有一个包含学生姓名的列表“student_names”。我们使用“while”循环通过跟踪“index”变量来迭代列表。

只要“索引”小于列表的长度,循环就会继续。在循环中,我们打印每个学生的姓名并递增“索引”以移动到下一个学生。请注意使用“len()”函数来获取列表的长度。

这实现了与使用“for”循环遍历列表相同的结果:

Output >>>

Student: Alice
Student: Bob
Student: Charlie
Student: David

让我们使用一个 'while' 循环,从列表中弹出元素,直到列表为空:

student_names = ["Alice", "Bob", "Charlie", "David"]

while student_names:
    current_student = student_names.pop()
    print("Current Student:", current_student)

print("All students have been processed.")

列表方法“pop”删除并返回列表中存在的最后一个元素。

在此示例中,只要“student_names”列表中存在元素,“while”循环就会继续。在循环中,“pop()”方法用于删除并返回列表中的最后一个元素,并打印当前学生的姓名。

循环将继续,直到所有学生都已处理完毕,并在循环外打印最后一条消息。

Output >>>

Current Student: David
Current Student: Charlie
Current Student: Bob
Current Student: Alice
All students have been processed.

“for”循环通常更简洁,更易于阅读,用于迭代现有的可迭代对象(如列表)。但是,当循环条件更复杂时,“while”循环可以提供更多的控制。

循环控制语句

“break”过早退出循环,“continue”跳过当前迭代的其余部分并移动到下一个迭代。

下面是一个示例:

student_names = ["Alice", "Bob", "Charlie", "David"]

for name in student_names:
    if name == "Charlie":
        break
    print(name)

当“名字”是查理时,控件脱离循环,给我们输出:

Output >>>
Alice
Bob
模拟执行时循环行为

在Python中,没有像其他一些编程语言那样的内置“do-while”循环。但是,您可以使用带有“break”语句的“while”循环来实现相同的行为。以下是在 Python 中模拟“do-while”循环的方法:

while True:
    user_input = input("Enter 'exit' to stop: ")
    if user_input == 'exit':
        break

在此示例中,循环将无限期地继续运行,直到用户进入“exit”。循环至少运行一次,因为条件最初设置为“True”,然后在循环内检查用户的输入。如果用户输入“exit”,则执行“break”语句,退出循环。

下面是一个示例输出:

Output >>>
Enter 'exit' to stop: hi
Enter 'exit' to stop: hello
Enter 'exit' to stop: bye
Enter 'exit' to stop: try harder!
Enter 'exit' to stop: exit

请注意,此方法类似于其他语言中的“do-while”循环,其中循环体保证在检查条件之前至少执行一次。

总结和后续步骤

我希望您能够毫无困难地编写本教程的代码。现在您已经了解了 Python 的基础知识,是时候开始编写一些超级简单的项目了,应用您学到的所有概念。

原文链接:Python 基础知识:语法、数据类型和控制结构 (mvrlink.com)


*博客内容为网友个人发布,仅代表博主个人观点,如有侵权请联系工作人员删除。



关键词: 数据分析 python

相关推荐

技术专区

关闭