Python基础测试题2

python123选择题题库及答案 python常考选择题_开发语言

【简答题】

1、常见的算术运算符有哪些 (至少写5种)

答:常见的算术运算符有加法运算符(+)、减法运算符(-)、乘法运算符(*)、除法运算符(/)和取模运算符(%)。

2、请说出 and、or、not各自的特点和三者的优先级顺序。

答:and表示“与”,or表示“或”,not表示“非”。它们的优先级顺序为not > and > or。

其中,not具有最高优先级,其次是and,最后是or。

3、请写出 break、continue、return的区别与用法。

答:break用于跳出当前循环体,continue用于结束当前循环并进入下一次循环,return用于退出函数并返回一个值或None

这三个关键字的用法如下:

# break
for i in range(10):
    if i == 5:
        break   # 当i等于5时跳出循环
    print(i)

# continue
for i in range(10):
    if i == 5:
        continue    # 当i等于5时结束本次循环,并进行下一次循环
    print(i)

# return
def add(a, b):
    return a + b    # 返回a+b的值
4、请写出函数定义的语法。

答:Python中定义函数的语法如下:

def function_name(parameters):
    """函数文档字符串"""
    # 函数体
    return [expression]

其中,function_name为函数名,parameters为函数的参数列表(可以为空),docstring是函数的文档字符串,function body是函数的代码块,return语句用于返回函数的值(可以省略)。

5、请描述字符串格式化方式(一种即可)。

答:Python中常见的字符串格式化方式为使用占位符,例如:

name = '小明'
age = 18
print('我叫%s,今年%d岁。' % (name, age))

其中,%s表示将一个字符串作为占位符,%d表示将一个数字作为占位符,两个占位符之间用逗号隔开,后面跟着需要填充到占位符里的变量或表达式。

6、现有一个列表list1 请将其变成无序序列。

答:将列表转换为集合即可将其变成无序序列,如下所示:

list1 = [1, 2, 3, 4, 5]
set1 = set(list1)
print(set1)
7、请描述dict的使用场景

答:dict是Python内置的映射类型,用于存储键值对。

通常情况下,dict被用来表示一些具有映射关系的数据,例如人名和电话号码、单词和解释等。

dict的优点在于它支持快速查找某个键所对应的值,因此在需要快速查找某个元素的场合下非常有用。

8、请描述 tuple 的使用场景

答:tuple是Python内置的序列类型,类似于列表,但不可修改。

由于tuple不可修改,因此它更适合用于存储一些不可变的数据,

例如坐标、颜色、日期等。另外,在函数返回多个值时,通常会使用tuple来封装这些值。

9、请描述 str 的使用场景

答:str是Python内置的字符串类型,用于表示文本信息。

在Python中,字符串广泛应用于各种数据处理和文本处理场合,例如读取文件、处理输入输出、解析网页等。

10、请描述while-else语法中分别什么情况下执行while和else

答:while-else语法中,while后面的条件为真时会执行while循环体中的语句,直到条件变为假时停止执行循环体。

而在循环体执行完毕后,如果没有遇到break语句中断循环,则会执行else语句块中的代码。

因此,while-else语法中的else语句块在循环正常结束时执行,如果在循环过程中遇到了break语句,则不会执行else语句块。

11、请判断True/False, 字符串中的删除操作可以是del 和 clear()

答:False。字符串是不可变类型,不能使用del或clear()方法删除它们的某些部分。

需要修改字符串时,可以创建一个新的字符串,或者使用字符串的一些内置方法来进行修改。

12、请判断True/False, 列表中查询指定数据索引的方法有 index() 和 find() 两种

答:False。列表中查询指定数据索引的方法是index()而不是find()。

find()是字符串内置方法,用于查找子字符串在原字符串的位置。

13、请简述全局变量和局部变量的特点

答:全局变量是定义在模块文件中的变量,可以在整个程序中被访问和修改;

局部变量是定义在函数内部的变量,在函数外部无法访问。其主要特点如下:

  • 全局变量的作用域跨越整个程序,而局部变量的作用域只在函数内部;
  • 全局变量可以被程序中的所有函数访问,而局部变量只能被定义它们的函数调用;
  • 在函数内部,如果有一个与全局变量同名的局部变量,那么局部变量会遮盖全局变量,即函数内部访问该变量时,使用的是局部变量的值。
14、如何在方法中修改全局变量的值

答:可以使用global关键字将全局变量引入到方法中,并在方法中对其进行修改。例如:

x = 10

def func():
    global x
    x += 1

func()
print(x)   # 输出11

在上面的例子中,使用global关键字将全局变量x引入到了函数中,并在函数内部对其进行了修改。

15、请描述面向对象中常见的魔法方法有哪些(3个)

答:面向对象中常见的魔法方法有很多,其中比较常见的有以下几个:

  • init(self, …):类的构造方法,在创建对象时自动调用,用于初始化对象属性;
  • str(self):类的字符串表示方法,用于打印对象时显示的字符串,默认返回<class ‘类名’>;
  • repr(self):类的字符串表示方法,用于在交互式环境下显示对象的字符串表示,默认返回__str__的值。

【编程题】

1、计算面馆销售额, 用户输入每碗面的价格、每天的销售量、营业天数, 设计程序计算最终的年销售额。
price = float(input("请输入每碗面的价格:"))
sales_volume = int(input("请输入每天的销售量:"))
days = int(input("请输入营业天数:"))

year_sales = price * sales_volume * days * 12
print("年销售额为:¥", year_sales)
2、实现简易优惠功能。

要求:
当用户输入的金额超过200时, 优惠10元并输出,
当用户输入的金额超过100时, 优惠5元并输出,

当用户输入的金额小于100时, 优惠2元并输出,

如果都不是, 提示用户输入正确的数值.

amount = float(input("请输入消费金额:"))
if amount > 200:
    discount = 10
elif amount > 100:
    discount = 5
elif amount < 100 and amount >= 0:
    discount = 2
else:
    print("请输入正确的金额!")
    exit()

total = amount - discount
print("您本次消费:%d 元,优惠:%d 元,实付金额:%d 元。" % (amount, discount, total))
3、实现猜拳功能。

需求:
电脑随机生成 石头 剪刀 布 三种行为中的一种用户输入 石头 剪刀 布 三种行为中的一种

判定谁赢, 要求输出格式类似: 电脑出的是石头,用户出的是布,用户赢

import random

choices = ["石头", "剪刀", "布"]
computer_choice = random.choice(choices)
user_choice = input("请出拳(石头/剪刀/布):")

print("电脑出的是:%s,用户出的是:%s。" % (computer_choice, user_choice))

if computer_choice == user_choice:
    print("平局!")
elif (computer_choice == "石头" and user_choice == "剪刀") \
    or (computer_choice == "剪刀" and user_choice == "布") \
    or (computer_choice == "布" and user_choice == "石头"):
    print("电脑胜利!")
else:
    print("用户胜利!")
4、定义一个intro 方法。

要求:
(1)定义形参为name,age,salary,addr。
(2)功能是打印name,age,salary,addr的信息。

(3)调用 intro 方法。

def intro(name, age, salary, addr):
    print("姓名:%s,年龄:%d,薪资:%d,地址:%s" % (name, age, salary, addr))

intro("张三", 25, 3500, "北京市朝阳区")
5、定义一个名字叫 string_check(str) 的字符串检测方法,完成以下功能。

调用字符串检测方法, 传递实参: “ 今天真TM热 ”

功能要求:

(1)去除字符串 str 左边的空格
(2)把敏感词替换成 *

(3)把字符串按照 ** 进行分割, 要求分割为 [‘今天真’, ‘热’]

def string_check(s):
    s = s.strip()   # 去除左边空格
    s = s.replace("TM", "*")  # 替换敏感词
    s_list = s.split("**")   # 分割字符串
    return s_list

s = "   今天真TM热    "
result = string_check(s)
print(result)
6、实现文件操作功能:

需求:
(1)创建content.txt文件, 写入内容:

你总是期待着,期待着有一天自己会突然变好,你总

是在等,等着有一天,自己会突然改变.恰恰“期带”和“

等”才是把一个人变得越来越废的关键.

with open("content.txt", mode="w", encoding="utf-8") as f:
    f.write("你总是期待着,期待着有一天自己会突然变好,你总\n")
    f.write("是在等,等着有一天,自己会突然改变.恰恰“期带”和“\n")
    f.write("等”才是把一个人变得越来越废的关键。\n")

with open("content.txt", mode="r", encoding="utf-8") as f:
    content = f.read()
    print(content)
7、假设有一个列表names = [[“张飞”,”刘备”,”关羽”],[“曹操”,”典韦”]]

需求: 如何将names列表通过代码 转变得到如下列表
tuple1 = (“张飞”,”刘备”,”关羽”,“司马懿”,”典韦”)


names = [["张飞", "刘备", "关羽"], ["曹操", "典韦"]]
names[0].extend(["司马懿", "典韦"])
tuple1 = tuple(names[0])
print(tuple1)
8、定义一个叫做my_calculator方法 , 作用是接收用户传过来的两个整数类型参数, 返回加减乘除 四个结果
def my_calculator(a, b):
    return a + b, a - b, a * b, a / b

result = my_calculator(5, 3)
print(result)