deekseek生产的,可能有错,仅用个人记录
选择题 (40题)
1. Python是一种什么类型的语言?
选项:
A. 编译型
B. 解释型
C. 汇编型
D. 机器语言
答案:B
解析: Python是解释型语言,代码在运行时由解释器逐行解释执行,而不是像C/C++那样先编译成机器码。这使得Python具有跨平台性,但执行效率相对较低。
2. 下列哪个不是Python的关键字?
选项:
A. if
B. while
C. main
D. for
答案:C
解析: Python的关键字是语言保留的特殊单词,用于语法结构。if、while、for都是Python关键字,而main不是,它只是一个常见的函数名。
3. 表达式 3 * 2 ** 3 的结果是:
选项:
A. 24
B. 18
C. 216
D. 1728
答案:A
解析: 根据Python运算符优先级,指数运算()优先级高于乘法(*)。所以先计算23=8,然后3*8=24。
4. 下列哪个函数用于获取用户输入?
选项:
A. print()
B. input()
C. get()
D. scanf()
答案:B
解析: input()是Python内置函数,用于从标准输入读取一行文本。print()用于输出,get()不是内置函数,scanf()是C语言的输入函数。
5. 下列哪个不是Python的数据类型?
选项:
A. list
B. tuple
C. array
D. dict
答案:C
解析: Python内置数据类型包括list(列表)、tuple(元组)、dict(字典),而array(数组)不是内置类型,需要通过array模块或numpy库使用。
6. 表达式 10 // 3 的结果是:
选项:
A. 3
B. 3.333...
C. 4
D. 1
答案:A
解析: //是整数除法运算符,返回商的整数部分。10除以3商3余1,所以结果是3。普通除法10/3才会得到3.333...。
7. 下列哪个方法可以删除列表中的元素?
选项:
A. remove()
B. delete()
C. pop()
答案:A和C
解析: remove()根据值删除元素,pop()根据索引删除并返回元素。delete不是列表方法(但del是语句可以删除元素)。
8. 关于字符串,下列说法正确的是:
选项:
A. 字符串可以用单引号或双引号定义
B. 字符串是不可变的
C. 字符串可以像列表一样索引
D. 以上都正确
答案:D
解析: Python字符串确实支持多种引号定义,是不可变对象,可以通过索引访问字符(如s[0])。
9. 下列哪个不是合法的变量名?
选项:
A. _var
B. 2var
C. var2
D. VAR
答案:B
解析: 变量名不能以数字开头,可以包含字母、数字和下划线,但不能以数字开头。
在Python中,变量名的命名规则如下:
变量名可以以什么开头:
-
字母(a-z, A-Z):例如
name
,Age
,student_id
-
下划线(_):例如
_private_var
,__special_var
变量名不能以什么开头:
-
数字(0-9):例如
2var
(不合法) -
特殊字符(除下划线外):例如
@var
,#name
,$price
(都不合法)
变量名其他规则:
-
可以包含字母、数字和下划线(但不能以数字开头)
-
区分大小写(
age
和Age
是不同的变量) -
不能是Python关键字(如
if
,for
,while
等)
10. range(5)生成的结果是:
选项:
A. [0,1,2,3,4]
B. [1,2,3,4,5]
C. 0到4的序列
D. 1到5的序列
答案:C
解析: range(5)生成从0开始到4的序列(不包括5),但在Python3中它返回的是range对象而不是列表。
Python 3 的情况:
-
range(5)
返回的是一个range
对象(惰性序列),而不是一个列表。 -
选项 C(
0到4的序列
) 是正确的,因为它描述的是range(5)
的逻辑含义(生成 0,1,2,3,4)。 -
选项 A(
[0,1,2,3,4]
) 在 Python 3 中不完全正确,因为range(5)
本身不会直接返回列表,除非显式转换(如list(range(5))
)。
Python 2 的情况(已淘汰,仅作参考):
-
在 Python 2 中,
range(5)
直接返回列表[0,1,2,3,4]
,所以选项 A 是正确的。 -
但 Python 2 已停止维护(2020年),现在主要使用 Python 3,因此 选项 C 更准确。
Python基础选择题(40题)
1. Python中,以下哪个是合法的变量名?
A) 2var
B) _name
C) my-var
D) for
答案:B
解析: Python变量名不能以数字开头(A错误),不能包含连字符(C错误),不能是关键字(D错误)。_name
是合法的。
2. 表达式 3 * 4 + 2
的结果是?
A) 14
B) 18
C) 10
D) 12
答案:A
解析: 先算乘法 3 * 4 = 12
,再算加法 12 + 2 = 14
。
3. 下列哪个不是Python的基本数据类型?
A) int
B) float
C) string
D) array
答案:D
解析: array
不是Python内置数据类型,它是 array
模块或 numpy
提供的。
4. print("Hello" + 3)
的输出结果是?
A) Hello3
B) HelloHelloHello
C) 报错
D) Hello 3
答案:C
解析: 字符串不能直接和数字相加,Python会报 TypeError
。
5. 下列哪个方法可以删除列表 [1, 2, 3]
中的元素 2
?
A) list.remove(2)
B) list.delete(2)
C) list.pop(2)
D) list.clear(2)
答案:A
解析: remove()
按值删除,pop()
按索引删除,delete
不是列表方法。
6. range(1, 5)
生成的序列是?
A) [1, 2, 3, 4, 5]
B) [1, 2, 3, 4]
C) [0, 1, 2, 3, 4]
D) [0, 1, 2, 3]
答案:B
解析: range(start, end)
生成 start
到 end-1
的序列。
7. 下列哪个语句可以正确交换变量 a
和 b
的值?
A) a = b; b = a
B) a, b = b, a
C) swap(a, b)
D) a = b
答案:B
解析: Python支持多变量赋值交换,a, b = b, a
是标准写法。
8. 下列哪个表达式返回 True
?
A) 5 == "5"
B) 5 != 5.0
C) 3 <= 5
D) "a" in "banana"
答案:C
解析: 3 <= 5
为 True
,5 == "5"
类型不同,"a" in "banana"
为 True
(但D选项可能因题目设计不同)。
9. 下列哪个方法可以获取字符串 "Python"
的长度?
A) len("Python")
B) "Python".length()
C) size("Python")
D) count("Python")
答案:A
解析: Python使用 len()
获取字符串长度,length()
是Java/JS的写法。
10. 下列哪个不是Python的循环结构?
A) for
B) while
C) do...while
D) repeat...until
答案:C、D
解析: Python没有 do...while
循环,只有 for
和 while
。
-
下列哪个表达式可以正确计算5的平方?
A)5^2
B)5**2
C)5*2
D)pow(5)
答案:B
解析: Python中使用**
进行幂运算,5**2
表示5的平方。 -
下列哪个方法可以去掉字符串" hello "前后的空格?
A)trim()
B)strip()
C)remove()
D)clean()
答案:B
解析: Python字符串的strip()
方法用于去除首尾空格。
在 Python 中,字符串(str
类型)提供了许多内置方法(methods
),可以通过 s.方法名()
的格式调用。这些方法可以对字符串进行各种操作,比如大小写转换、查找、替换、分割等。
📌 常用字符串方法分类整理
1. 大小写转换
方法 | 作用 | 示例 |
---|---|---|
s.lower() | 转小写 | "HELLO".lower() → "hello" |
s.upper() | 转大写 | "hello".upper() → "HELLO" |
s.capitalize() | 首字母大写 | "hello".capitalize() → "Hello" |
s.title() | 每个单词首字母大写 | "hello world".title() → "Hello World" |
s.swapcase() | 大小写互换 | "HeLLo".swapcase() → "hEllO" |
2. 去除空白字符
方法 | 作用 | 示例 |
---|---|---|
s.strip() | 去除 前后 空格 | " hello ".strip() → "hello" |
s.lstrip() | 去除 左侧 空格 | " hello ".lstrip() → "hello " |
s.rstrip() | 去除 右侧 空格 | " hello ".rstrip() → " hello" |
3. 字符串查找与判断
方法 | 作用 | 示例 |
---|---|---|
s.find(sub) | 查找子串,返回索引(找不到返回 -1 ) | "hello".find("e") → 1 |
s.index(sub) | 类似 find() ,但找不到时报错 | "hello".index("e") → 1 |
s.startswith(prefix) | 是否以某字符串开头 | "hello".startswith("he") → True |
s.endswith(suffix) | 是否以某字符串结尾 | "hello".endswith("lo") → True |
s.isdigit() | 是否全为数字 | "123".isdigit() → True |
s.isalpha() | 是否全为字母 | "abc".isalpha() → True |
s.isalnum() | 是否只含字母或数字 | "abc123".isalnum() → True |
4. 字符串拆分与拼接
方法 | 作用 | 示例 |
---|---|---|
s.split(sep) | 按分隔符拆分成列表 | "a,b,c".split(",") → ["a", "b", "c"] |
s.join(iterable) | 用 s 拼接可迭代对象 | ",".join(["a", "b", "c"]) → "a,b,c" |
s.replace(old, new) | 替换子串 | "hello".replace("l", "x") → "hexxo" |
5. 字符串格式化
方法 | 作用 | 示例 |
---|---|---|
s.format() | 格式化字符串 | "{} world".format("hello") → "hello world" |
f-string (Python 3.6+) | 更简洁的格式化 | f"{name} is {age} years old" |
6. 其他实用方法
方法 | 作用 | 示例 |
---|---|---|
s.count(sub) | 统计子串出现次数 | "hello".count("l") → 2 |
s.zfill(width) | 左侧补零到指定长度 | "42".zfill(5) → "00042" |
s.center(width) | 居中并用空格填充 | "hi".center(10) → " hi " |
📌 完整示例
python
复制
s = " Hello, World! " print(s.lower()) # " hello, world! " print(s.strip()) # "Hello, World!" print(s.replace("o", "0")) # " Hell0, W0rld! " print(s.split(",")) # [' Hello', ' World! '] print(s.find("World")) # 9 print(s.isalpha()) # False(因为有空格和标点)
📌 总结
-
s.方法名()
是 Python 字符串的标准操作方式。 -
几乎所有字符串操作都可以通过这些方法完成,无需手动遍历字符。
-
更多方法可参考 Python 官方文档。
如果有具体需求(如“如何提取数字?”或“如何反转字符串?”),可以继续问我! 🚀
讲解f-string
Python f-string 详解
f-string (格式化字符串字面值) 是 Python 3.6 引入的一种字符串格式化方法,它提供了一种更简洁、更直观的方式来嵌入表达式到字符串中。
基本语法
f-string 的基本语法是在字符串前加 f
或 F
,并用大括号 {}
包裹表达式:
python
复制
name = "Alice" age = 25 print(f"My name is {name} and I'm {age} years old.") # 输出: My name is Alice and I'm 25 years old.
主要特性
1. 直接嵌入变量
python
复制
x = 10 y = 3 print(f"{x} + {y} = {x + y}") # 输出: 10 + 3 = 13
2. 支持任意表达式
python
复制
print(f"计算结果是: {2 * 3 + 4 / 2}") # 输出: 计算结果是: 8.0
3. 调用函数和方法
python
复制
name = "python" print(f"大写: {name.upper()}") # 输出: 大写: PYTHON
4. 格式化数字
python
复制
pi = 3.1415926
print(f"π的值是: {pi:.2f}") # 保留2位小数
# 输出: π的值是: 3.14
5. 对齐文本
python
复制
text = "hello" print(f"左对齐: {text:<10}") # 左对齐,宽度10 print(f"右对齐: {text:>10}") # 右对齐,宽度10 print(f"居中对齐: {text:^10}") # 居中对齐,宽度10
6. 填充字符
python
复制
number = 42 print(f"填充零: {number:05}") # 输出: 00042 print(f"填充星号: {number:*>5}") # 输出: ***42
7. 日期格式化
python
复制
from datetime import datetime today = datetime.now() print(f"今天是: {today:%Y-%m-%d}") # 输出: 今天是: 2023-03-15
8. 字典访问
python
复制
person = {"name": "Bob", "age": 30} print(f"{person['name']} is {person['age']} years old.") # 输出: Bob is 30 years old.
9. 多行f-string
python
复制
name = "Charlie" age = 40 message = ( f"Name: {name}\n" f"Age: {age}\n" f"Next year: {age + 1}" ) print(message)
-
不能在f-string中使用反斜杠转义字符
-
Python 3.8+ 支持
=
语法用于调试:python
复制
x = 10 print(f"{x=}") # 输出: x=10
f-string 因其简洁性和可读性,已成为Python中最推荐的字符串格式化方式。
📌 常见转义字符
转义字符 | 作用 |
---|---|
\n | 换行(newline) |
\t | 制表符(Tab,缩进) |
\\ | 反斜杠 \ 本身 |
\" | 双引号 " |
\' | 单引号 ' |
\r | 回车(Carriage Return,常用于 Windows 换行 \r\n ) |
📌 示例对比
情况1:不使用 \n
python
复制
print("Hello") print("World")
输出:
复制
Hello World
情况2:使用 \n
实现相同效果
python
复制
print("Hello\nWorld")
输出:
复制
Hello World
📌 注意事项
-
Windows 换行符是
\r\n
-
Unix/Linux/macOS 使用
\n
-
Windows 使用
\r\n
-
Python 会自动处理,但写入文件时需注意。
-
-
print()
默认带\n
,可以修改python
复制
print("Hello", end=" ") # 不换行,用空格结尾 print("World")
输出:
复制
Hello World
-
\n
在f-string
中同样适用python
复制
name = "Alice" print(f"Hello\n{name}!")
输出:
复制
Hello Alice!
-
表达式
10%3
的结果是:
A) 1
B) 3
C) 0
D) 0.333...
答案:A
解析:%
是取模运算符,10除以3余1。 -
下列哪个不是Python的可变数据类型?
A) list
B) dict
C) set
D) tuple
答案:D
解析: tuple是不可变数据类型,创建后不能修改。
常见的 Python 数据类型分类:
1. 基本数据类型(Primitive Types)
-
整数 (
int
)
如:42
,-10
,0x1F
(十六进制) -
浮点数 (
float
)
如:3.14
,-0.001
,2.5e2
(科学计数法) -
布尔值 (
bool
)
只有两个值:True
和False
(注意首字母大写) -
复数 (
complex
)
如:1 + 2j
2. 复合数据类型(容器类型,Container Types)
-
字符串 (
str
)
如:"hello"
,'Python'
(不可变序列) -
列表 (
list
)
如:[1, 2, 3]
,["a", True, 3.14]
(可变、有序) -
元组 (
tuple
)
如:(1, "a", True)
(不可变、有序) -
集合 (
set
)
如:{1, 2, 3}
(可变、无序、不重复) -
冻结集合 (
frozenset
)
不可变的集合,如:frozenset([1, 2, 3])
-
字典 (
dict
)
键值对,如:{"name": "Alice", "age": 25}
(可变、无序)
-
下列哪个方法可以获取字典的所有键?
A)keys()
B)values()
C)items()
D)get()
答案:A
解析:keys()
返回字典的所有键,values()
返回所有值。
流程控制与函数(21-30题)
-
下列哪个关键字用于定义函数?
A)def
B)function
C)define
D)func
答案:A
解析: Python使用def
关键字定义函数。 -
下列哪个循环会至少执行一次?
A)for
循环
B)while
循环
C)do...while
循环
D) Python没有这种循环
答案:D
解析: Python没有do...while
循环,所有循环都可能一次都不执行。 -
下列哪个语句可以提前结束循环?
A)stop
B)exit
C)break
D)return
答案:C
解析:break
用于提前终止循环。 -
函数默认返回什么值?
A)0
B)None
C)False
D) 空字符串
答案:B
解析: 没有return语句的函数默认返回None
。 -
下列哪个参数传递方式可以修改实参?
A) 值传递
B) 引用传递
C) 可变对象传递
D) Python只有值传递
答案:C
解析: 传递可变对象(如列表)时,函数内修改会影响实参。
高级数据类型与文件操作(31-40题)
-
下列哪个方法可以向列表末尾添加多个元素?
A)append()
B)extend()
C)insert()
D)add()
答案:B
解析:extend()
可以添加多个元素,append()
只能添加一个。 -
下列哪个集合操作符表示并集?
A)&
B)|
C)-
D)^
答案:B
解析:|
表示并集,&
表示交集。 -
打开文件时,下列哪个模式可以读写文件?
A)'r'
B)'w'
C)'a'
D)'r+'
答案:D
解析:'r+'
模式允许读写文件。 -
下列哪个异常表示除零错误?
A)ValueError
B)TypeError
C)ZeroDivisionError
D)ArithmeticError
答案:C
解析: 除零错误会引发ZeroDivisionError
。 -
下列哪个方法可以序列化Python对象?
A)str()
B)pickle.dumps()
C)json()
D)serialize()
答案:B
解析:pickle
模块的dumps()
方法可以序列化Python对象。