练习题
基础语法 (1-5)
1、计算两个数的和: 编写一个函数,接收两个数字作为参数,返回它们的和。
def sum(a,b):
return a+b
print(sum(1,2)) #3
print(sum(100,101)) #201
2、判断一个数是否为偶数: 编写一个函数,接收一个数字作为参数,判断它是否为偶数,并返回 True 或 False.
num = input("请输入一个数字:")
num = int(num)
if num % 2 == 0:
print("偶数:",True)
else:
print("奇数:",False)
def ou(number):
#"判断一个数是否为偶数"
return number % 2 == 0 ###偶数返回true,奇数返回false,,,一个判断表达式 ,返回值为true或false
print(ou(10)) #True
print(ou(11)) #False
def ou(number):
return "奇数" if number % 2 == 1 else "偶数"
print(ou(10)) #偶数
print(ou(11)) #奇数
3、计算列表元素的平均值: 编写一个函数,接收一个数字列表作为参数,计算列表元素的平均值,并返回结果。
def sum1(a,b): ###这边改为sum1
return a+b
print(sum1(1,2))
print(sum1(100,101))
# num = input("请输入一个数字:")
# num = int(num)
# if num % 2 == 0:
# print("偶数:",True)
# else:
# print("奇数:",False)
# def ou(number):
# #"判断一个数是否为偶数"
# return number % 2 == 0 ###偶数返回true,奇数返回false,,,一个判断表达式 ,返回值为true或false
# print(ou(10))
# print(ou(11))
#
# def ou(number):
# return "奇数" if number % 2 == 1 else "偶数"
# print(ou(10))
# print(ou(11))
x = 0
a = [1,2,3,4,5]
print(len(a))
for i in a:
x += i
print(x)
print("平均数是:",x/len(a))
# def avg(listtest):
# ##使用列表推导式计算和
# total_sum = sum()
# long = len(listtest)
# return total_sum/long
# avg([1,2,3,4,5])
def calculate_average(numbers):
"""计算列表元素的平均值"""
if not numbers:
return 0 # 处理空列表的情况
return sum(numbers) / len(numbers) ##TypeError: sum() missing 1 required positional argument: 'b',,原因是前面定义了一样的函数
print(calculate_average([1, 2, 3, 4, 5])) # 输出: 3.0
4、查找列表中的最大值: 编写一个函数,接收一个数字列表作为参数,找到列表中的最大值,并返回结果。
def find_maximum(numbers):
"""查找列表中的最大值"""
if not numbers:
return None # 处理空列表的情况
return max(numbers)
print(find_maximum([1,5,2,8,3])) # 输出: 8
5、反转字符串: 编写一个函数,接收一个字符串作为参数,返回反转后的字符串。
def reverse_string(string):
"""反转字符串"""
return string[::-1]
print(reverse_string("world")) #dlrow
6、创建一个字典,存储学生姓名和分数: 使用字典存储三个学生的姓名和分数,例如:{"张三": 90, "李四": 85, "王五": 92}。
student_scores = {"张三": 90, "李四": 85, "王五": 92}
7、访问字典中的元素: 打印 "李四" 的分数。
print(student_scores["李四"]) # 输出: 85
8、向字典中添加新元素: 添加一个新的学生 "赵六",分数为 88。
student_scores["赵六"] = 88
print(student_scores) # 输出: {'张三': 90, '李四': 85, '王五': 92, '赵六': 88}
9、创建一个列表,存储 5 个水果名称:
fruits = ["苹果", "香蕉", "橙子", "葡萄", "草莓"]
10、向列表中添加新元素: 在列表末尾添加 "西瓜"。
fruits.append("西瓜")
print(fruits) # 输出: ['苹果', '香蕉', '橙子', '葡萄', '草莓', '西瓜']
函数 (11-15)
11、编写一个函数,计算一个数的阶乘: 例如,factorial(5) = 5 * 4 * 3 * 2 * 1 = 120。
def factorial(n):
"""计算阶乘"""
if n == 0:
return 1
else:
return n * factorial(n - 1)
print(factorial(5)) # 输出: 120
12、编写一个函数,判断一个字符串是否为回文: 回文是指正反 đọc 都一样的字符串,例如 "level"。
def is_palindrome(text):
"""判断是否为回文"""
return text == text[::-1]
print(is_palindrome("level")) # 输出: True
print(is_palindrome("hello")) # 输出: False
13、编写一个函数,接收一个列表和一个数字作为参数,返回列表中所有大于该数字的元素:
def filter_greater_than(numbers, threshold):
"""过滤列表中大于指定值的元素"""
return [n for n in numbers if n > threshold]
print(filter_greater_than([1, 5, 2, 8, 3], 4)) # 输出: [5, 8]
14、编写一个函数,接收两个列表作为参数,返回两个列表的并集:
def union_of_lists(list1, list2):
"""计算两个列表的并集"""
return list(set(list1) | set(list2))
print(union_of_lists([1, 2, 3], [3, 4, 5])) # 输出: [1, 2, 3, 4, 5]
15、编写一个函数,接收一个字符串作为参数,统计字符串中每个字符出现的次数:
def count_char_frequency(text):
"""统计字符出现频率"""
frequency = {}
for char in text:
frequency[char] = frequency.get(char, 0) + 1
return frequency
print(count_char_frequency("hello")) # 输出: {'h': 1, 'e': 1, 'l': 2, 'o': 1}
面向对象 (16-20)
16、定义一个名为 `Dog` 的类,包含 `name` 和 `age` 属性,以及 `bark` 方法:
def __init__(self, name, age):
self.name = name
self.age = age
def bark(self):
print("Woof!")
my_dog = Dog("Buddy", 3)
print(my_dog.name) # 输出: Buddy
my_dog.bark() # 输出: Woof!
17、创建一个 `Dog` 类的实例,名为 `my_dog`,设置 `name` 为 "Buddy",`age` 为 3:
# 见上题代码
18、调用 `my_dog` 的 `bark` 方法:
# 见上题代码
19、定义一个名为 `Cat` 的类,继承自 `Dog` 类,并重写 `bark` 方法,使其输出 "Meow!":
class Cat(Dog):
def bark(self):
print("Meow!")
my_cat = Cat("Whiskers", 2)
my_cat.bark() # 输出: Meow!
20、创建一个 `Cat` 类的实例,名为 `my_cat`,设置 `name` 为 "Whiskers",`age` 为 2,并调用 `bark` 方法:
# 见上题代码