news 2026/2/8 14:26:34

Python小白必做的30道基础练习题(附保姆级答案解析)

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Python小白必做的30道基础练习题(附保姆级答案解析)

这里是为Python 真正的小白准备的30道超基础练习题(2026年视角),难度从输入输出 → 变量 → 条件 → 循环 → 字符串 → 列表 → 函数逐步递增。

每道题都附带:

  • 题目描述
  • 参考答案(最简单、最清晰的写法)
  • 核心知识点 + 小提示(保姆级解析)

建议做法
先自己写 10–15 分钟 → 看不懂再看答案 → 看完答案立刻自己敲一遍 → 改一改输入试试不同情况。

1–10:最基础(输入输出 + 变量 + 运算)

  1. 写一个程序,打印 “Hello, Python小白!2026加油!”
print("Hello, Python小白!2026加油!")
  1. 定义两个变量 a=10,b=3,打印它们的和、差、积、商(保留2位小数)
a=10b=3print(a+b)# 13print(a-b)# 7print(a*b)# 30print(f"{a/b:.2f}")# 3.33
  1. 从键盘输入两个整数,计算并打印它们的乘积
x=int(input("请输入第一个数:"))y=int(input("请输入第二个数:"))print("乘积是:",x*y)
  1. 输入一个数字,判断它是奇数还是偶数
n=int(input("输入一个整数:"))ifn%2==0:print("偶数")else:print("奇数")
  1. 输入身高(米)和体重(公斤),计算 BMI 并判断体型
    (BMI = 体重 / 身高²,<18.5偏瘦,18.5-23.9正常,≥24超重)
height=float(input("身高(米):"))weight=float(input("体重(kg):"))bmi=weight/(height**2)print(f"BMI ={bmi:.2f}")ifbmi<18.5:print("偏瘦")elifbmi<=23.9:print("正常")else:print("超重")
  1. 输入年份,判断是否是闰年
    (能被4整除且不能被100整除,或能被400整除)
year=int(input("输入年份:"))if(year%4==0andyear%100!=0)or(year%400==0):print("闰年")else:print("平年")
  1. 打印 1 到 10 的所有整数(用while和for两种方式)
# whilei=1whilei<=10:print(i,end=" ")i+=1print()# 换行# forforiinrange(1,11):print(i,end=" ")
  1. 计算 1 + 2 + 3 + … + 100 的和(用for和while各写一次)
# for版s=0foriinrange(1,101):s+=iprint(s)# 5050# while版s=0i=1whilei<=100:s+=i i+=1print(s)
  1. 打印九九乘法表(完整版)
foriinrange(1,10):forjinrange(1,i+1):print(f"{j}×{i}={i*j:2d}",end=" ")print()
  1. 输入一个正整数 n,打印 n 行星号三角形(第一行1个*,第二行2个…)
n=int(input("输入行数:"))foriinrange(1,n+1):print("*"*i)

11–20:字符串 + 列表基础

  1. 输入一句话,把所有空格替换成下划线 _
s=input("输入一句话:")print(s.replace(" ","_"))
  1. 输入一个字符串,统计其中字母 ‘a’ 出现的次数(不区分大小写)
s=input("输入字符串:").lower()print("a 出现了",s.count('a'),"次")
  1. 输入三个整数,用空格分隔,一行输入,存入列表并排序后输出
nums=list(map(int,input("输入三个整数,用空格隔开:").split()))nums.sort()print(nums)
  1. 有一个列表 names = [“张三”, “李四”, “王五”, “赵六”],在"王五"后面插入"孙七"
names=["张三","李四","王五","赵六"]names.insert(3,"孙七")# 或 names.insert(names.index("王五")+1, "孙七")print(names)
  1. 列表 fruits = [“apple”, “banana”, “cherry”, “apple”],删除所有 “apple”
fruits=["apple","banana","cherry","apple"]fruits=[fforfinfruitsiff!="apple"]# 列表推导式最简洁# 或者:while "apple" in fruits: fruits.remove("apple")print(fruits)
  1. 产生一个包含 1–100 所有能被3整除的数的列表
lst=[iforiinrange(1,101)ifi%3==0]print(lst)
  1. 输入一个字符串,反转后输出(三种方法任选)
s=input("输入:")# 方法1 最常用print(s[::-1])# 方法2print("".join(reversed(s)))# 方法3print(s[len(s)::-1])# 记住这个也行
  1. 判断一个字符串是否是回文串(正读反读一样,如 “radar”)
s=input("输入字符串:").lower().replace(" ","")# 忽略大小写和空格ifs==s[::-1]:print("是回文")else:print("不是回文")
  1. 把字符串 “1,2,3,4,5” 转成列表 [1,2,3,4,5](元素是整数)
s="1,2,3,4,5"lst=[int(x)forxins.split(",")]print(lst)
  1. 有一个列表 scores = [89, 76, 65, 92, 58, 77],统计及格(>=60)的人数
scores=[89,76,65,92,58,77]count=sum(1forxinscoresifx>=60)# 或 len([x for x in scores if x >= 60])print("及格人数:",count)

21–30:函数 + 综合小练习

  1. 写一个函数,接收两个数,返回较大的那个
defmax2(a,b):returnaifa>belsebprint(max2(10,25))# 25
  1. 写一个函数 is_prime(n),判断 n 是否是素数
defis_prime(n):ifn<2:returnFalseforiinrange(2,int(n**0.5)+1):ifn%i==0:returnFalsereturnTrueprint(is_prime(17))# Trueprint(is_prime(15))# False
  1. 写函数 factorial(n) 计算 n 的阶乘(5! = 120)
deffactorial(n):ifn==0orn==1:return1res=1foriinrange(2,n+1):res*=ireturnresprint(factorial(5))# 120
  1. 写函数 sum_of_list(lst),返回列表中所有元素的和
defsum_of_list(lst):returnsum(lst)# 最简单# 或者自己写循环# s = 0# for x in lst: s += x# return s
  1. 写一个函数,接收一个整数 n,打印 1 到 n 的斐波那契数列(前两个数是1,1)
deffib(n):ifn<=0:returna,b=1,1print(a,end=" ")ifn==1:returnprint(b,end=" ")for_inrange(3,n+1):a,b=b,a+bprint(b,end=" ")fib(10)# 1 1 2 3 5 8 13 21 34 55
  1. 写函数 count_vowels(s),统计字符串中元音字母个数(a e i o u,不区分大小写)
defcount_vowels(s):s=s.lower()returnsum(1forcinsifcin"aeiou")print(count_vowels("Hello World"))# 3
  1. 有一个字典 d = {“name”:“小明”, “age”:18, “city”:“北京”},写代码把所有 key-value 打印成 “key: value” 格式
d={"name":"小明","age":18,"city":"北京"}fork,vind.items():print(f"{k}:{v}")
  1. 写一个函数 remove_duplicates(lst),去掉列表中的重复元素,保持原有顺序
defremove_duplicates(lst):seen=[]forxinlst:ifxnotinseen:seen.append(x)returnseenprint(remove_duplicates([1,2,2,3,1,4,5,5]))# [1,2,3,4,5]
  1. 写一个猜数字小游戏(电脑随机1-100,玩家猜,给出太大/太小/恭喜)
importrandom answer=random.randint(1,100)guess=0count=0whileguess!=answer:guess=int(input("猜一个1-100的数字:"))count+=1ifguess>answer:print("太大了!")elifguess<answer:print("太小了!")else:print(f"恭喜!猜对了!用了{count}次")
  1. 综合练习:输入一个正整数 n,输出 n 以内所有素数的列表
defget_primes(n):primes=[]fornuminrange(2,n+1):is_prime=Trueforiinrange(2,int(num**0.5)+1):ifnum%i==0:is_prime=Falsebreakifis_prime:primes.append(num)returnprimes n=int(input("输入 n:"))print(get_primes(n))

做完这30题,你就基本掌握了 Python 的变量、运算、条件、循环、字符串、列表、函数、简单算法这些最核心的基础。

下一阶段推荐练习方向(按兴趣选):

  • 列表推导式 + 字典 + 集合(再做20题)
  • 文件读写(读写txt、csv)
  • 简单爬虫(requests + beautifulsoup)
  • pygame 小游戏
  • pandas 基础数据处理

你现在做到第几题了?遇到哪道最卡壳?可以贴代码,我帮你 debug~

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/2/5 11:21:32

企业级部署:OLLAMA在D盘的多用户共享方案

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容&#xff1a; 开发一个多用户OLLAMA管理工具&#xff0c;功能包括&#xff1a;1.基于D盘共享目录的模型存储 2.用户权限管理系统 3.模型使用配额监控 4.自动清理缓存 5.使用情况报表生成。要求使…

作者头像 李华
网站建设 2026/2/6 9:37:30

Z-Image-Turbo_UI部署全过程:附详细截图和命令

Z-Image-Turbo_UI部署全过程&#xff1a;附详细截图和命令 你是否也想快速体验AI图像生成的魅力&#xff0c;却对复杂的环境配置望而却步&#xff1f;别担心&#xff0c;本文将手把手带你完成 Z-Image-Turbo_UI 的完整部署流程。从启动服务到访问界面&#xff0c;再到查看和管…

作者头像 李华
网站建设 2026/2/5 4:34:40

5个Win10定时关机的高效办公场景应用

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容&#xff1a; 创建一个Windows定时关机应用&#xff0c;要求&#xff1a;1. 可视化界面 2. 支持倒计时关机和指定时间关机两种模式 3. 可设置关机前提醒 4. 记录关机日志 5. 支持取消关机功能。…

作者头像 李华
网站建设 2026/2/8 4:01:03

30分钟打造0x0000007B诊断工具原型

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容&#xff1a; 快速开发一个0x0000007B诊断MVP工具&#xff0c;核心功能&#xff1a;1. 基本错误识别&#xff1b;2. 常见解决方案推荐&#xff1b;3. 简单日志分析。要求使用Python Flask快速搭…

作者头像 李华
网站建设 2026/2/6 15:58:48

MCJS1.8 vs 传统开发:效率提升对比

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容&#xff1a; 使用MCJS1.8和传统手动开发方式&#xff0c;分别实现一个任务管理应用。要求&#xff1a;1. 任务增删改查&#xff1b;2. 状态标记&#xff1b;3. 数据持久化。记录两种方式的时间…

作者头像 李华
网站建设 2026/2/8 10:27:28

搜索速度提升5倍,VSCode排除特定文件夹的隐藏配置你用对了吗?

第一章&#xff1a;搜索速度提升5倍的秘密&#xff1a;VSCode文件夹排除机制解析在大型项目中&#xff0c;VSCode 的全局搜索功能常常因扫描过多无关文件而变得缓慢。通过合理配置文件夹排除规则&#xff0c;可显著减少索引范围&#xff0c;从而将搜索响应速度提升至原来的5倍以…

作者头像 李华