Pyhon的基本语法元素概述
引言
在开始新的编程旅程之前,我们先来思考一下:如果要建造一座大楼,我们需要什么?基本的建筑材料如钢筋、水泥和砖头是必不可少的。同样地,在编程的世界里,我们也有基本的“建筑材料”,即编程语言的基本语法元素。本文将带你深入了解编程语言P的基本语法元素,帮助你在编程的道路上迈出坚实的第一步。
数据类型
基本数据类型
编程语言P中有三种基本的数据类型:
- 数字类型:包括整型(如1, 2, 3)、浮点型(如2.5, 3.14)和复数型(如3+4j)。注意,即使是2.0也被视为浮点型,而不是整型。
- 字符串类型:由一系列字符组成,通常用双引号或单引号表示。例如:“Hello, World!”。
- 布尔类型:只有两个值,
True
和False
,常用于逻辑运算。
组合数据类型
除了基本数据类型,P还提供了四种组合数据类型,用于存储一组数据:
- 列表(List):使用中括号
[]
表示,元素之间用逗号分隔。列表是有序且可变的,可以进行增删改操作。 - 元组(Tuple):使用圆括号
()
表示,类似于列表,但元组是不可变的,一旦定义后无法修改。 - 字典(Dictionary):使用花括号
{}
表示,键值对之间用逗号分隔。字典是无序的,通过键访问值。 - 集合(Set):使用花括号
{}
表示,存储唯一元素,自动去除重复项。集合也是无序的。
变量
- 合法字符:字母、数字、下划线、汉字(如
score_1
、学生年龄
)。 - 禁止规则:
- 首字符不能为数字(如
1var
非法)。 - 不能包含空格(如
my var
非法)。 - 不能使用保留字(如
if
、for
、True
)。
- 首字符不能为数字(如
- 命名建议:
- 有实际意义(如
student_age
优于a
)。 - 多单词用下划线(如
max_score
)或驼峰式(如MaxScore
,推荐用于类名)。
- 有实际意义(如
定义与命名
变量是用来存储数据的容器。定义变量时需要指定变量名和赋值。变量名可以由字母、数字、下划线和汉字组成,但首字符不能是数字,且变量名区分大小写。此外,P语言有33个保留字,不能用作变量名。
赋值
变量可以通过简单的赋值操作获取值,例如 x = 1 + 2
。P还支持增量赋值,如 x += 1
。多个变量可以同时赋值,例如 x, y = 1, 2
。此外,P还支持变量值的互换,例如 x, y = y, x
。
控制流程
控制流程决定了程序的执行顺序。主要有三种控制结构:
- 顺序结构:代码按书写顺序依次执行。
- 循环结构:包括
for
循环和while
循环,用于重复执行某段代码。 - 分支结构:通过
if
语句实现条件判断,根据不同的条件执行不同的代码块。
顺序流程
最简单的控制流程是顺序流程,即按顺序执行代码。例如:
res = 0
res += 1
res += 2
res += 3
res += 4
res += 5
循环流程
循环流程用于对同一类别的不同元素进行相同操作。主要有两种循环结构:
-
for循环:遍历可迭代对象。例如:
for i in [1, 2, 3, 4, 5]: res += i
-
while循环:基于条件进行循环。例如:
res = 0 i = 1 while i <= 5: res += i i += 1
分支流程
分支流程用于根据条件选择执行不同的代码路径。例如:
age = 18
if age >= 22:
print("可以结婚")
else:
print("还需等待")
输入与输出
输入
数据可以从外部文件、程序定义或用户交互中获取。用户交互输入通过input()
函数实现,例如:
x = input("请输入一个数字:")
y = input("请输入另一个数字:")
需要注意的是,input()
获取的数据默认为字符串类型,可以使用eval()
将其转换为数字类型。
输出
数据可以输出到屏幕或存储到文件中。常用的输出函数是print()
,例如:
print("结果是:", res)
print(“结果:”, 3.14) # 输出“结果:3.14”
print(“不换行”, end=" ") # 末尾不换行
为了更灵活地格式化输出,P提供了format()
方法。例如:
pi = 3.1415926
e = 2.7182818
print("pi = {}, e = {}".format(pi, e))
pi = 3.1415926
print(“π = {:.2f}”.format(pi)) # 输出“π = 3.14”
print(“科学计数法:{:.2e}”.format(0.001)) # 输出“1.00e-03”
程序格式
编码规范
P语言有PEP 8编码规范,建议每行代码不超过79个字符,使用缩进来表示逻辑关系,合理使用空格提高代码可读性。例如:
if age >= 22:
print("可以结婚")
else:
print("还需等待")
注释
注释用于解释代码,单行注释以#
开头,多行注释使用三个引号'''
或"""
。例如:
# 这是单行注释
'''这是多行注释
可以写多行
'''
习题与答案
单选题
-
下列哪一项不是Python的基本数据类型?
- A) 数字类型
- B) 字符串类型
- C) 布尔类型
- D) 元组类型
答案:D) 元组类型
-
在Python中,下列哪项用于表示浮点数?
- A)
2
- B)
2.0
- C)
2+3j
- D)
'2'
答案:B)2.0
- A)
-
下列哪一项是不可变的序列类型?
- A) 列表
- B) 字典
- C) 集合
- D) 元组
答案:D) 元组
-
Python中,下列哪一个选项是正确的变量命名规则?
- A) 变量名可以以数字开头
- B) 变量名可以包含空格
- C) 变量名不能使用Python保留字
- D) 变量名不区分大小写
答案:C) 变量名不能使用Python保留字
-
下列哪一项是Python中常用的注释方式?
- A)
// 注释内容
- B)
# 注释内容
- C)
/* 注释内容 */
- D)
<-- 注释内容
答案:B)# 注释内容
- A)
多选题
-
下列哪些是Python的组合数据类型?(多选)
- A) 列表
- B) 元组
- C) 字典
- D) 集合
- E) 字符串
答案:A) 列表, B) 元组, C) 字典, D) 集合
-
下列哪些是Python中合法的变量名?(多选)
- A)
my_var
- B)
2nd_var
- C)
my-var
- D)
_myVar
- E)
my var
答案:A)my_var
, D)_myVar
- A)
简答题
-
简述Python中
for
循环和while
循环的区别。
答案:
for
循环用于遍历可迭代对象(如列表、字符串等),自动控制循环次数;
while
循环基于条件表达式重复执行代码块,需手动控制循环终止条件。 -
在Python中,如何实现输入一个整数并将其赋值给变量
x
?
答案:
使用x = int(input("请输入一个整数: "))
。
input()
函数获取用户输入,int()
将其转换为整数类型。 -
解释Python中
if-else
语句的作用,并给出一个简单的例子。
答案:
if-else
用于根据条件执行不同的代码分支。示例:if x > 0: print("x是正数") else: print("x是非正数")
编写一个Python程序,接收用户输入的两个整数,并输出它们的和。
x = int(input("请输入第一个整数: "))
y = int(input("请输入第二个整数: "))
print("两数之和为:", x + y)
编写一个Python程序,使用for循环计算1到100(包括100)所有偶数的和,并输出结果。
sum = 0
for i in range(2, 101, 2):
sum += i
print("1到100所有偶数的和为:", sum)
编写一个Python程序,使用while循环计算1到100(包括100)所有奇数的和,并输出结果。
sum = 0
i = 1
while i <= 100:
if i % 2 != 0:
sum += i
i += 1
print("1到100所有奇数的和为:", sum)
数据类型
- 列表和字典分别属于什么类型?
- 列表属于序列类型,字典属于映射类型。
变量命名合法性
- 下列哪些变量名是合法的?
a) abcd
b) 1abcd
c) class
d) ab cd- 合法的变量名是:abcd。其余选项中,b) 以数字开头,c) 是保留关键字,d) 包含空格,均不合法。
打包赋值
- 将一二三四五打包赋值给变量abcde,写出正确的赋值语句。
- abcde = (1, 2, 3, 4, 5)
命名方式
- 使用下划线命名方式和驼峰体命名方式分别为一个变量赋值为2。
- 下划线命名方式:my_variable_name = 2
- 驼峰体命名方式:myVariableName = 2
控制语句
-
简述for语句的执行过程。
- for语句用于遍历一个可迭代对象(如列表、字符串等),每次迭代取出一个元素赋值给循环变量,然后执行后续的语句块。
-
简述while语句的执行过程。
- while语句先检查条件表达式,若为真则执行循环体内的语句块,直到条件为假时结束循环。此外,while循环也可以带有else语句块,在循环条件不满足时执行。
-
简述if语句的执行过程。
- if语句首先检查条件表达式,若为真则执行if语句块内的语句;否则跳过if语句块,若有elif或else语句,则继续检查或执行相应语句块。
输入输出
-
写出接收两个数字输入并计算它们乘积的代码片段。
- number_one = eval(input())
number_two = eval(input())
print(number_one * number_two)
- number_one = eval(input())
-
实现格式化输出黄金分割比,保留三位小数和保留一位小数的百分比。
- GOLDEN_RATIO = 0.618
print(f"{GOLDEN_RATIO:.3f}, {GOLDEN_RATIO*100:.1f}%")
- GOLDEN_RATIO = 0.618
字符串格式化
- 补全代码以实现如下图所示的格式化输出(星号居中对齐)。
- print(f"{‘*’ * (2 * i + 1):^{20}}")