文章目录
- 计算机二级——Python:Day1
- 第一题
- 第二题
- 第三题
计算机二级——Python:Day1
第一题
考生文件夹下存在文件PY101.py,需修改代码(不修改其他代码)实现以下功能:
- 键盘输入正整数
n
,按要求将n
输出到屏幕。- 格式要求:
- 宽度为20个字符,减号字符(
-
)填充,右对齐,带千位分隔符。- 若输入正整数超过20位,则按真实长度输出。
示例:输入正整数1234
,屏幕输出--------1,234
。
解答 \textbf{解答} 解答
n = eval(input("请输入正整数:"))
print("{-:20,}".format(n))
基础知识 \textbf{基础知识} 基础知识
在 Python 里,format()
属于字符串方法,它能够对字符串进行格式化处理。
- 基本使用
你可以通过占位符{}
来表明变量要插入的位置,然后在format()
方法里传入相应的变量。
name = "Alice"
age = 25
print("我的名字是 {},我 {} 岁了。".format(name, age))
- 带索引的占位符
你能够为占位符指定索引,从而明确变量的插入顺序。
name = "Bob"
age = 30
print("我的名字是 {1},我 {0} 岁了。".format(age, name))
- 带关键字的占位符
你可以使用关键字参数来为占位符赋值。
print("我的名字是 {name},我 {age} 岁了。".format(name="Charlie", age=35))
- 格式化数字
format()
方法支持多种数字格式化选项,比如指定宽度、精度、千位分隔符等。
number = 1234.5678
# 宽度为 10,保留 2 位小数
print("{:10.2f}".format(number))
# 带千位分隔符
print("{:,}".format(1234567))
- 填充和对齐
你可以指定填充字符、对齐方式和宽度。
# 左对齐,宽度为 10,用 * 填充
print("{:*<10}".format("abc"))
# 右对齐,宽度为 10,用 - 填充
print("{:->10}".format("abc"))
# 居中对齐,宽度为 10,用空格填充
print("{:^10}".format("abc"))
第二题
考生文件夹下存在文件
PY102.py
,需写代码替换横线(不修改其他代码),实现以下功能:
- 列表
a
已给定为[3, 6, 9]
,通过键盘输入列表b
。- 计算
a
中元素与b
中对应位置元素乘积的累加和。
示例:若输入列表b
为[1, 2, 3]
,则计算1*3 + 2*6 + 3*9 = 42
,屏幕输出42
。
解答 \textbf{解答} 解答
a = [3,6,9]
b = eval(input()) #例如:[1,2,3]
s=0
for i in range(len (b)):s += a[i]*b[i]
print(s)
基础知识 \textbf{基础知识} 基础知识
在 Python 中,eval()
是一个内置函数,其主要功能是将字符串当作 Python 表达式来执行,并返回表达式的结果。它的优点体现在其可以根据输入动态输出。
- 基本语法
eval(expression, globals=None, locals=None)
expression
:这是一个必需的参数,代表要被求值的字符串表达式。globals
(可选):是一个字典,用于指定全局命名空间,若未提供,默认使用当前全局命名空间。locals
(可选):是一个映射对象,用于指定局部命名空间,若未提供,默认使用当前局部命名空间。
- 简单数学表达式求值
result = eval("2 + 3 * 4")
print(result) # 输出 14
- 执行包含变量的表达式
x = 5
result = eval("x * 2")
print(result) # 输出 10
- 处理列表、字典等数据结构
data = eval("[1, 2, 3]")
print(data) # 输出 [1, 2, 3]data = eval("{'name': 'Alice', 'age': 25}")
print(data) # 输出 {'name': 'Alice', 'age': 25}
第三题
考生文件夹下存在文件
PY103.py
,需写代码替换横线(不修改其他代码),实现以下功能:
以123
为随机数种子,随机生成 10 个在1
(含)到999
(含)之间的随机整数,每个随机数后跟一个逗号分隔,屏幕输出这 10 个随机数。
提示:建议使用 Python 集成开发环境 IDLE 编写、调试及验证程序。
解答 \textbf{解答} 解答
import random
random.seed(123) # 设定随机种子
for i in range(10): # 循环10次print(random.randint(1, 999), end=",") # 生成1-999的随机整数并输出,末尾加逗号
基础知识 \text{基础知识} 基础知识
在 Python 里,random
模块是一个非常实用的内置模块,它可以用来生成各种类型的随机数,并且能进行随机选择、打乱序列等操作。
- 设置随机数种子:
random.seed(a=None, version=2)
random.seed()
方法用于初始化随机数生成器。如果传入相同的种子,每次生成的随机数序列都会一样,这在调试和需要重现随机结果的场景中很有用。
import random# 设置随机数种子
random.seed(123)
print(random.randint(1, 100)) # 输出特定的随机整数# 再次设置相同的种子
random.seed(123)
print(random.randint(1, 100)) # 输出和上面一样的随机整数
- 生成指定范围内的随机整数:
random.randint(a, b)
random.randint(a, b)
会返回一个介于a
和b
之间(包含a
和b
)的随机整数。
import random# 生成 1 到 10 之间的随机整数
num = random.randint(1, 10)
print(num)
- 生成指定范围内的随机浮点数:
random.uniform(a, b)
random.uniform(a, b)
会返回一个介于a
和b
之间的随机浮点数。
import random# 生成 1.0 到 5.0 之间的随机浮点数
float_num = random.uniform(1.0, 5.0)
print(float_num)
- 从序列中随机选择一个元素:
random.choice(seq)
random.choice(seq)
会从非空序列seq
中随机选择一个元素。
import randommy_list = [10, 20, 30, 40, 50]
# 从列表中随机选择一个元素
selected = random.choice(my_list)
print(selected)
- 打乱序列的顺序:
random.shuffle(x[, random])
random.shuffle(x)
会将可变序列x
中的元素随机打乱顺序。
import randommy_list = [1, 2, 3, 4, 5]
# 打乱列表元素的顺序
random.shuffle(my_list)
print(my_list)
- 从序列中随机选择指定数量的元素:
random.sample(population, k)
random.sample(population, k)
会从总体序列或集合population
中随机选择k
个不重复的元素,返回一个新列表。
import randommy_list = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
# 从列表中随机选择 3 个不重复的元素
sample_list = random.sample(my_list, 3)
print(sample_list)