仅用于个人记录——python基础题目、答案、解析

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中,变量名的命名规则如下:

变量名可以以什么开头:

  1. 字母(a-z, A-Z):例如 nameAgestudent_id

  2. 下划线(_):例如 _private_var__special_var

变量名不能以什么开头:

  1. 数字(0-9):例如 2var(不合法)

  2. 特殊字符(除下划线外):例如 @var#name$price(都不合法)

变量名其他规则:

  • 可以包含字母、数字和下划线(但不能以数字开头)

  • 区分大小写(age 和 Age 是不同的变量)

  • 不能是Python关键字(如 ifforwhile 等)

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 为 True5 == "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

  1. 下列哪个表达式可以正确计算5的平方?
    A) 5^2
    B) 5**2
    C) 5*2
    D) pow(5)
    答案:B
    解析: Python中使用**进行幂运算,5**2表示5的平方。

  2. 下列哪个方法可以去掉字符串" 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)
  1. 不能在f-string中使用反斜杠转义字符

  2. 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

📌 注意事项

  1. Windows 换行符是 \r\n

    • Unix/Linux/macOS 使用 \n

    • Windows 使用 \r\n

    • Python 会自动处理,但写入文件时需注意。

  2. print() 默认带 \n,可以修改

    python

    复制

    print("Hello", end=" ")  # 不换行,用空格结尾
    print("World")

    输出:

    复制

    Hello World
  3. \n 在 f-string 中同样适用

    python

    复制

    name = "Alice"
    print(f"Hello\n{name}!")

    输出:

    复制

    Hello
    Alice!


  1. 表达式10%3的结果是:
    A) 1
    B) 3
    C) 0
    D) 0.333...
    答案:A
    解析: %是取模运算符,10除以3余1。

  2. 下列哪个不是Python的可变数据类型?
    A) list
    B) dict
    C) set
    D) tuple
    答案:D
    解析: tuple是不可变数据类型,创建后不能修改。


常见的 Python 数据类型分类:

 

1. 基本数据类型(Primitive Types)

  • 整数 (int)
    如:42-100x1F(十六进制)

  • 浮点数 (float)
    如:3.14-0.0012.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}(可变、无序)

  1. 下列哪个方法可以获取字典的所有键?
    A) keys()
    B) values()
    C) items()
    D) get()
    答案:A
    解析: keys()返回字典的所有键,values()返回所有值。


 

流程控制与函数(21-30题)

  1. 下列哪个关键字用于定义函数?
    A) def
    B) function
    C) define
    D) func
    答案:A
    解析: Python使用def关键字定义函数。

  2. 下列哪个循环会至少执行一次?
    A) for循环
    B) while循环
    C) do...while循环
    D) Python没有这种循环
    答案:D
    解析: Python没有do...while循环,所有循环都可能一次都不执行。

  3. 下列哪个语句可以提前结束循环?
    A) stop
    B) exit
    C) break
    D) return
    答案:C
    解析: break用于提前终止循环。

  4. 函数默认返回什么值?
    A) 0
    B) None
    C) False
    D) 空字符串
    答案:B
    解析: 没有return语句的函数默认返回None

  5. 下列哪个参数传递方式可以修改实参?
    A) 值传递
    B) 引用传递
    C) 可变对象传递
    D) Python只有值传递
    答案:C
    解析: 传递可变对象(如列表)时,函数内修改会影响实参。

高级数据类型与文件操作(31-40题)

  1. 下列哪个方法可以向列表末尾添加多个元素?
    A) append()
    B) extend()
    C) insert()
    D) add()
    答案:B
    解析: extend()可以添加多个元素,append()只能添加一个。

  2. 下列哪个集合操作符表示并集?
    A) &
    B) |
    C) -
    D) ^
    答案:B
    解析: |表示并集,&表示交集。

  3. 打开文件时,下列哪个模式可以读写文件?
    A) 'r'
    B) 'w'
    C) 'a'
    D) 'r+'
    答案:D
    解析: 'r+'模式允许读写文件。

  4. 下列哪个异常表示除零错误?
    A) ValueError
    B) TypeError
    C) ZeroDivisionError
    D) ArithmeticError
    答案:C
    解析: 除零错误会引发ZeroDivisionError

  5. 下列哪个方法可以序列化Python对象?
    A) str()
    B) pickle.dumps()
    C) json()
    D) serialize()
    答案:B
    解析: pickle模块的dumps()方法可以序列化Python对象。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值