2. Python 基础语法和数据类型
2.1 变量、数据类型和表达式
2.1.1 变量
在 Python 中,变量是一个可以存储数据值的标识符。Python 是一种动态类型语言,因此不需要预先声明变量的类型,变量的类型由其所引用的值决定。例如,下面的代码定义了一个名为 x 的变量,并将其赋值为 5:
x = 5
在上述代码中,我们使用等号(=
)将值 5 赋给变量 x
。在后续的代码中,我们可以使用变量 x 来引用该值。
2.1.2 数据类型
Python 提供了多种数据类型,包括数字、字符串、列表、元组、字典等。下面是一些常见的 Python 数据类型:
- 整型:整型(
int
)是表示整数的数据类型。例如,下面的代码定义了一个名为x
的整型变量,并将其赋值为 5:
x = 5
- 浮点型:浮点型(float)是一种表示带有小数点的数字的数据类型。例如,下面的代码定义了一个名为 x 的浮点型变量,并将其赋值为 3.14:
x = 3.14
- 字符串:字符串(str)是表示文本的数据类型,在 Python 中可以用单引号或双引号来表示。例如,下面的代码定义了一个名为 x 的字符串变量,并将其赋值为 "hello world":
x = hello world
- 列表:列表(list)是一种有序的可变序列,可以包含任意类型的元素。例如,下面的代码定义了一个名为 x 的列表变量,并将其赋值为 [1, 2, 3]:
x = [1, 2, 3]
- 元组:元组(tuple)是一种有序的不可变序列,也可以包含任意类型的元素。例如,下面的代码定义了一个名为 x 的元组变量,并将其赋值为 (1, 2, 3):
x = (1, 2, 3)
- 字典:字典(dict)是一种无序的键值对集合,可以用来存储任意类型的值。例如,下面的代码定义了一个名为 x 的字典变量,并将其赋值为 {"name": "jack", "age": 30}:
x = {name: jack, age: 30}
2.1.3 表达式
表达式是 Python 中的一种计算方法,可以由变量、操作符和函数等组成。例如,下面的代码定义了一个名为 x 的变量,并将其赋值为两个数字相加的和:
x = 2 + 3
在上述代码中,表达式 2 + 3
计算得到的结果为 5,然后将其赋给了变量 x。
Python 支持各种操作符,包括算术操作符(+、-、*、/、%等)、比较操作符(>、<、==、!=等)、逻辑操作符(and、or、not等)、位操作符(~、&、|、^等)等。
除了基本操作符之外,Python 还提供了许多内置函数,例如 abs()
、len()
、sum()
等。这些函数可以用来对变量进行操作并计算出结果。
2.2 Python 基本控制结构:顺序结构、分支结构和循环结构
2.2.1 顺序结构
顺序结构是程序设计中最基础、最单一的控制结构之一,是所有程序的基础。在Python中,通过编写代码的书写顺序,即可实现程序的顺序结构。
举例说明,我们可以通过一个非常简单的例子来解释Python中的顺序结构。比如,我们想要实现一个Python程序,对两个数进行相加并输出结果。首先,我们需要利用Python定义两个变量x和y,用于存储我们要相加的数字。然后,将它们相加并将结果存储到一个新的变量z中,最后将z输出即可。代码如下所示:
x = 5
y = 3
z = x + y
print(z)
实验结果:
8
2.2.2 分支结构
分支结构是一种基本的控制结构,它会根据某种条件判断来决定程序的执行路径。在Python中,我们可以使用if-else
语句来实现分支结构,通常的语法格式如下:
if condition:
# 如果condition为True,则执行这里的语句块
else:
# 如果condition为False,则执行这里的语句块
在实际应用中,我们可能还需要添加更多条件来进行判断,此时可以使用elif
关键字,它表示在前面的所有条件都不满足时,进一步判断是否满足elif
后给定的条件。通常的语法格式如下:
if condition1:
# 如果condition1为True,则执行这里的语句块
elif condition2:
# 如果condition1为False,而condition2为True,则执行这里的语句块
else:
# 如果condition1和condition2都为False,则执行这里的语句块
tips:需要注意的是,在使用if-elif-else
结构时,只有第一个满足条件的分支会被执行,其他分支则会被忽略。
2.2.3 循环结构
在Python编程中,循环结构用于重复执行一段程序,直到满足某个条件才停止。Python提供了两种循环语句:while和for。本文将主要介绍这两种循环语句及其使用方法,以及它们在实际开发中的应用。
(1)While循环
while循环会在给定条件成立的情况下重复执行语句块的内容。语法如下:
while 条件:
重复执行的语句块
while循环通常用于需要反复进行某种操作的情况,直到满足某个条件为止。假设我们要猜年龄游戏,我们先定义一个年龄变量age
为18,然后让用户输入猜测的年龄,如果用户猜测正确,打印“恭喜你猜对了”,并结束循环,否则提示用户重新输入。这个任务就适合使用while循环来完成,代码如下:
age = 18
count = 0
while True:
guess_age = int(input(请输入您猜测的年龄:))
if guess_age == age:
print(恭喜你猜对了!)
break
else:
count += 1
if count >= 3:
print(猜测次数已用完,正确答案是, age)
break
elif guess_age < age:
print(猜小了,请重新输入!)
else:
print(猜大了,请重新输入!)
实验结果:
恭喜你猜对了!
在上面的代码中,使用了一个无限循环while True
,在循环体中每次让用户输入猜测的年龄,并使用if
条件语句判断用户是否猜测正确。如果猜测正确,使用break
退出循环;如果猜错了,则提示用户继续猜测,并统计猜测次数。如果猜测次数达到3次,则使用break
退出循环并显示正确答案。同时,需要注意使用break
及时结束循环,防止出现死循环的情况。
(2)for循环
for循环用于遍历序列、列表、字符串等数据类型中的每个元素,并对每个元素执行相同的操作。语法如下:
for 变量 in 序列/列表/字符串:
重复执行的语句块
for循环通常用于遍历序列、列表、字符串等类型中的元素,对每个元素进行相同的操作。例如,我们可以编写一个程序输出一个列表中所有偶数的值:
arr = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
for i in arr:
if i % 2 == 0:
print(i)
实验结果:
2
4
6
8
10
在上述代码中,使用for
循环遍历了列表arr
中的每个元素,并在每次循环中使用if
条件语句判断元素是否为偶数,最终输出所有偶数的值。
tips:Python中的for
语句实际上并不是传统意义上的“for循环”,而是一种“for each”语法。即每次循环都会自动取出序列中的下一个元素赋值给循环变量,并在执行完语句块后再去取下一个元素。
2.3 Python 函数和模块
首先我们需要说明为什么Python中引入函数的概念,函数其实就是一部分代码模块,将这部分写好的代码模块封装成一个函数,这个函数具有你所编写的特定功能,并且以后使用时还可以调用。而模块是一个包含 Python
定义和语句的文件,可以在其他文件中重复使用。
2.3.1 函数
(1)函数定义
在 Python
中函数的定义格式如下所示:
def function_name(parameters):
函数功能描述
# 函数主体
return [expression]
其中,
def
关键字用于定义函数。function_name
是函数的名称,我们需要遵循程序的命名规则。parameters
是传递给函数的参数列表。它们可以是位置参数、关键字参数或默认参数。return
语句用于从函数中返回某个值(可选)。
下面的函数 sum_two_numbers()
接受两个数字作为参数,并返回它们的和:
def sum_two_numbers(a, b):
此函数返回两个a和b数字的和
return a + b
(2)函数调用
在 Python
中调用函数,使用以下语法:
result = function_name(arguments)
其中,
function_name
是要调用的函数的名称。arguments
是传递给函数的实际参数值。result
是函数返回的结果。
sum_two_numbers()
函数的调用如下所示:
result = sum_two_numbers(3, 4)
print(result) # 输出 7
实验结果
7
(3)函数参数
函数可以接受多个参数,并且这些参数可以是位置参数、关键字参数或默认参数。位置参数是指按照定义顺序传递给函数的参数。关键字参数是指传递给函数的参数名称和值成对出现。默认参数是指在函数定义中指定的参数默认值。
以下是一个描述一个人基本信息的函数,可以接受多个位置参数和一个默认参数的函数的示例:
def print_info(name, age=18, gender='男'):
这个函数的描述了一个人的基本信息
print('姓名:', name)
print('年龄:', age)
print('性别:', gender)
可以通过以下方式调用定义的函数print_info()
:
# 位置参数
print_info('安徒生', 33, '男')
# 关键字参数
print_info(age=33, name='安徒生', gender='男')
# 默认参数
print_info('安徒生')
实验结果:
姓名: 安徒生
年龄: 33
性别: 男
姓名: 安徒生
年龄: 33
性别: 男
姓名: 安徒生
年龄: 18
性别: 男
(4)匿名函数
在 Python 中,我们可以使用 lambda
来创建匿名函数,也就是没有名称的小函数。lambda
函数可以在需要函数的任何地方使用,通常用于定义简单的单行函数。
以下是两个使用 lambda 声明的函数的示例:
示例一:
addition = lambda a, b: a + b
result = addition(1, 2)
print(result)
实验结果
3
示例二:
f=lambda a,b,c,d:a*b*c*d
print(f(1,2,3,4))
实验结果:
24
(5)递归函数
在 Python 中,可以编写递归函数。递归函数是一种可以调用自身的函数,它通常用于解决问题的分治算法。
假设需要计算 100 的阶乘,可以使用以下递归函数:
def factorial(n):
这个函数计算给定数字的阶乘
if n == 1:
return 1
else:
return n * factorial(n - 1)
print(factorial(7)) #计算7的阶乘
实验结果:
5040
更多内容关注: