Python小白必做的30道基础练习题

Python小白必做的30道基础练习题(附详细解析与参考答案)

这些题目按难度递进排列,覆盖变量、输入输出、字符串、列表、字典、条件判断、循环、函数等核心基础。
学习建议

  • 先自己独立思考并写代码(不要直接看答案!)
  • 运行测试,遇到错误就调试
  • 每做完5道,复习一遍相关语法
  • 全部做完后再对比我的参考答案,优化自己的写法

每道题都给出题目 + 提示 + 参考代码 + 解析

第1-10题:基础语法与输入输出

1. 输出 “Hello, World!”
提示:使用 print() 函数。
参考答案:

print("Hello, World!")

2. 计算两个数的和
从键盘输入两个整数,输出它们的和。
参考答案:

a = int(input("请输入第一个数: "))
b = int(input("请输入第二个数: "))
print("两数之和为:", a + b)

3. 判断奇数还是偶数
输入一个整数,判断它是奇数还是偶数。
参考答案:

num = int(input("请输入一个整数: "))
if num % 2 == 0:
    print("偶数")
else:
    print("奇数")

4. 比较三个数的大小
输入三个整数,输出最大的数。
参考答案:

a, b, c = map(int, input("请输入三个整数(用空格分隔): ").split())
print("最大数是:", max(a, b, c))

5. 简单计算器
输入两个数和运算符(+ – * /),输出计算结果。
参考答案:

a = float(input("第一个数: "))
op = input("运算符 (+-*/): ")
b = float(input("第二个数: "))

if op == '+': print(a + b)
elif op == '-': print(a - b)
elif op == '*': print(a * b)
elif op == '/': 
    if b != 0:
        print(a / b)
    else:
        print("除数不能为0")
else:
    print("不支持的运算符")

6. 打印九九乘法表
用循环打印完整的九九乘法表。
参考答案:

for i in range(1, 10):
    for j in range(1, i+1):
        print(f"{j}×{i}={i*j}", end="\t")
    print()

7. 求1到100的和
使用 forwhile 循环计算。
参考答案:

total = 0
for i in range(1, 101):
    total += i
print("1到100的和是:", total)
# 或者一行:print(sum(range(1, 101)))

8. 判断是否为闰年
输入年份,判断是否为闰年(能被4整除但不能被100整除,或能被400整除)。
参考答案:

year = int(input("请输入年份: "))
if (year % 4 == 0 and year % 100 != 0) or (year % 400 == 0):
    print("是闰年")
else:
    print("不是闰年")

9. 交换两个变量的值
不使用临时变量交换两个变量。
参考答案:

a, b = 10, 20
a, b = b, a
print(a, b)   # 输出 20 10

10. 字符串反转
输入一个字符串,输出它的反转形式。
参考答案:

s = input("请输入字符串: ")
print(s[::-1])

第11-20题:字符串与列表

11. 统计字符串中某个字符出现的次数
参考答案:

s = input("请输入字符串: ")
ch = input("请输入要统计的字符: ")
print(s.count(ch))

12. 去除字符串两端空格
参考答案:

s = input("请输入带空格的字符串: ")
print(s.strip())

13. 列表中最大值和最小值
参考答案:

lst = list(map(int, input("请输入数字列表(空格分隔): ").split()))
print("最大值:", max(lst), "最小值:", min(lst))

14. 列表去重并保持顺序
参考答案:

lst = [1, 2, 2, 3, 4, 4, 5]
unique = []
for x in lst:
    if x not in unique:
        unique.append(x)
print(unique)
# 更Pythonic:list(dict.fromkeys(lst))

15. 合并两个列表
参考答案:

a = [1, 2, 3]
b = [4, 5, 6]
print(a + b)

16. 计算列表中所有元素的和与平均值
参考答案:

nums = list(map(int, input().split()))
print("和:", sum(nums), "平均值:", sum(nums)/len(nums))

17. 查找列表中第二个最大的数
参考答案:

nums = [5, 2, 8, 1, 9, 3]
unique = sorted(set(nums), reverse=True)
print("第二大:", unique[1] if len(unique) > 1 else "无")

18. 判断列表是否为空
参考答案:

lst = []
print("空" if not lst else "非空")

19. 列表元素翻转
参考答案:

lst = [1, 2, 3, 4, 5]
print(lst[::-1])
# 或 lst.reverse()

20. 统计列表中正数、负数、零的个数
参考答案:

nums = list(map(int, input().split()))
positive = sum(1 for x in nums if x > 0)
negative = sum(1 for x in nums if x < 0)
zero = nums.count(0)
print(positive, negative, zero)

第21-30题:字典、函数与综合

21. 创建学生成绩字典并查询
参考答案:

scores = {"张三": 85, "李四": 92, "王五": 78}
name = input("请输入姓名: ")
print(scores.get(name, "未找到"))

22. 字典中值最大的键
参考答案:

d = {"a": 10, "b": 25, "c": 15}
print(max(d, key=d.get))

23. 定义函数求阶乘
参考答案:

def factorial(n):
    if n == 0 or n == 1:
        return 1
    return n * factorial(n-1)

print(factorial(5))  # 120

24. 判断回文数/回文字符串
参考答案:

s = input("请输入: ").lower()
print("是回文" if s == s[::-1] else "不是回文")

25. 斐波那契数列前n项
参考答案:

def fib(n):
    a, b = 0, 1
    for _ in range(n):
        print(a, end=" ")
        a, b = b, a + b

fib(10)

26. 简单猜数字游戏
参考答案:

import random
secret = random.randint(1, 100)
while True:
    guess = int(input("猜一个1-100的数: "))
    if guess < secret:
        print("太小了")
    elif guess > secret:
        print("太大了")
    else:
        print("猜对了!")
        break

27. 统计一句话中单词个数
参考答案:

sentence = input("请输入一句话: ")
words = sentence.split()
print("单词个数:", len(words))

28. 成绩等级转换
(90+ A,80-89 B,70-79 C,60-69 D,<60 E)
参考答案:

score = int(input("请输入成绩: "))
if score >= 90: print("A")
elif score >= 80: print("B")
elif score >= 70: print("C")
elif score >= 60: print("D")
else: print("E")

29. 打印菱形图案
参考答案:

n = 5
for i in range(n):
    print(" " * (n - i - 1) + "*" * (2 * i + 1))
for i in range(n-2, -1, -1):
    print(" " * (n - i - 1) + "*" * (2 * i + 1))

30. 简单文件读写(保存姓名和年龄)
参考答案:

name = input("姓名: ")
age = input("年龄: ")

with open("info.txt", "w", encoding="utf-8") as f:
    f.write(f"姓名: {name}\n年龄: {age}")

with open("info.txt", "r", encoding="utf-8") as f:
    print(f.read())

做题Tips

  • 每做完一道,立刻运行测试各种输入(边界情况:0、空字符串、负数等)
  • 尝试用列表推导式f-string字典推导式重写代码,让代码更Pythonic
  • 全部做完后,尝试把1-30题打包成一个小程序(菜单选择题号执行)

想看带详细中文解析 + 多种解法的完整版本、进阶版30题(文件操作、异常处理、简单类),或者自动判题脚本,随时告诉我!

现在就开始刷题吧!每天5道,坚持一周,你会明显感觉到进步。加油,小白也能快速变大神!🐍🚀

有不会的题目直接回复题号,我立刻给你详细讲解!

文章已创建 5103

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

相关文章

开始在上面输入您的搜索词,然后按回车进行搜索。按ESC取消。

返回顶部