Python基础测试题2
【简答题】
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)