python入门实战经典15题
????????每个题目都提供了对应的输入输出说明,以及代码示例和简单的注释,旨在帮助大家理解每个练习的意义和解决方案。
目录
计算数字之和
编写一个程序来计算1到10的总和。
输入: 无
输出: 1到10的和
代码示例
total = sum(range(1, 11))
print("Sum of 1 to 10 is:", total)
# sum()函数计算1到10的总和并打印结果。
交换变量
编写一个程序来交换两个变量的值。
输入: 两个变量a和b
输出: 交换后的变量a和b
代码示例
a, b = 5, 10
a, b = b, a
print("a:", a, "b:", b)
检查奇偶性
编写一个程序来检查输入的数字是奇数还是偶数。
输入: 一个整数
输出: "奇数"或"偶数"
代码示例
num = int(input("Enter a number: "))
if num % 2 == 0:
print(num, "is even.")
else:
print(num, "is odd.")
子串的最大长度
给定一个字符串,请你找出其中不含有重复字符的最长子串的长度。
输入: 一个字符串
输出: 最长子串的长度
代码示例
def length_of_longest_substring(s):
"""找出不含重复字符的最长子串的长度"""
char_index = {}
start = 0
max_length = 0
for i, char in enumerate(s):
if char in char_index and start <= char_index[char]:
start = char_index[char] + 1
else:
max_length = max(max_length, i - start + 1)
char_index[char] = i
return max_length
s = "abcabcbb"
print("最长子串的长度:", length_of_longest_substring(s))
计算列表平均值
编写一个程序来计算给定列表中数字的平均值。
输入: 一个数字列表
输出: 列表的平均值
代码示例
numbers = [2, 3, 5, 7, 11, 13, 17, 19]
average = sum(numbers) / len(numbers)
print("The average is:", average)
检查回文字符串
编写一个程序来检查输入的字符串是否为回文。
输入: 一个字符串
输出: "是回文"或"不是回文"
代码示例
text = input("Enter a string: ")
if text == text[::-1]:
print(text, "yes")
else:
print(text, "no")
最大数查找
编写一个程序来找出并打印列表中的最大数字。
输入: 一个数字列表
输出: 列表中的最大数字
代码示例
numbers = [3, 6, 2, 8, 4, 10, 15, 1]
max_number = max(numbers)
print("The largest number is:", max_number)
计算阶乘
编写一个函数来计算并返回一个数字的阶乘。
输入: 一个整数n
输出: n的阶乘
代码示例
def factorial(n):
if n == 0:
return 1
else:
return n * factorial(n-1)
n = 5
print("Factorial of", n, "is:", factorial(n))
字符串逆转
创建一个函数,接收一个字符串并返回其反转后的字符串。
输入: 一个字符串
输出: 反转后的字符串
代码示例
def reverse_string(s):
return s[::-1]
s = "Hello World"
print("Reversed string:", reverse_string(s))
列表排序
编写一个程序,使用冒泡排序算法对列表进行排序。
输入: 一个数字列表
输出: 排序后的列表
代码示例
def bubble_sort(lst):
n = len(lst)
for i in range(n-1):
for j in range(0, n-i-1):
if lst[j] > lst[j+1]:
lst[j], lst[j+1] = lst[j+1], lst[j]
return lst
numbers = [64, 34, 25, 12, 22, 11, 90]
print("Sorted list:", bubble_sort(numbers))
检查素数
编写一个函数来检查给定的数字是否为素数。
输入: 一个整数
n
输出: 如果
n
是素数则输出"是素数",否则输出"不是素数"
代码示例
def is_prime(n):
"""检查数字是否为素数"""
if n <= 1:
return False
for i in range(2, int(n**0.5) + 1):
if n % i == 0:
return False
return True
n = 29
print(n, "是素数" if is_prime(n) else "不是素数")
找出列表中重复的元素
给定一个包含整数的列表,找出所有重复的元素。
输入: 一个整数列表
输出: 一个包含重复元素的列表
代码示例
def find_duplicates(lst):
"""找出列表中的重复元素"""
seen = set()
duplicates = set()
for num in lst:
if num in seen:
duplicates.add(num)
else:
seen.add(num)
return list(duplicates)
numbers = [1, 2, 3, 2, 1, 5, 6, 5, 5, 5]
print("重复的元素:", find_duplicates(numbers))
合并两个有序列表
编写一个函数来合并两个有序列表,并返回一个新的有序列表。
输入: 两个有序整数列表
输出: 一个新的有序整数列表,包含两个输入列表中的所有元素
代码示例
def merge_sorted_lists(lst1, lst2):
"""合并两个有序列表"""
i, j = 0, 0
merged = []
while i < len(lst1) and j < len(lst2):
if lst1[i] < lst2[j]:
merged.append(lst1[i])
i += 1
else:
merged.append(lst2[j])
j += 1
# 添加剩余的元素
merged.extend(lst1[i:])
merged.extend(lst2[j:])
return merged
list1 = [1, 3, 5]
list2 = [2, 4, 6]
print("合并后的列表:", merge_sorted_lists(list1, list2))
字母频率统计
编写一个函数来计算并返回给定字符串中每个字母的频率。
输入: 一个字符串
输出: 一个字典,键为字母,值为对应的频率
代码示例
from collections import defaultdict
def letter_frequency(text):
"""计算字符串中每个字母的频率"""
frequency = defaultdict(int)
for letter in text:
if letter.isalpha():
frequency[letter.lower()] += 1
return dict(frequency)
text = "Hello World"
print("字母频率:", letter_frequency(text))
旋转图像
给定一个n × n的二维矩阵,代表一个图像。将图像顺时针旋转90度。
输入: 一个n × n的二维矩阵
输出: 旋转后的n × n的二维矩阵
代码示例
def rotate_image(matrix):
"""顺时针旋转图像90度"""
n = len(matrix)
for i in range(n // 2):
for j in range(i, n - 1 - i):
temp = matrix[i][j]
matrix[i][j] = matrix[n - 1 - j][i]
matrix[n - 1 - j][i] = matrix[n - 1 - i][n - 1 - j]
matrix[n - 1 - i][n - 1 - j] = matrix[j][n - 1 - i]
matrix[j][n - 1 - i] = temp
return matrix
matrix = [
[1, 2, 3],
[4, 5, 6],
[7, 8, 9]
]
print("旋转后的图像:", rotate_image(matrix))
结语
????????这些题目覆盖了多种编程概念,包括循环、条件语句、函数、递归、列表处理、字符串操作、算法思想等。通过实践这些练习,不仅会加深对Python语法的理解,还会学会如何结构化地思考和解决问题。
----------------------
看到这了 点个赞再走吧~
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!