当前位置: 代码迷 >> 综合 >> python 练习小项目(输入输出/分支结构/循环结构)
  详细解决方案

python 练习小项目(输入输出/分支结构/循环结构)

热度:91   发布时间:2023-12-25 07:45:43.0

python 练习小项目

  • 熟悉python的输入输出
    • 帮海豹买鱼
    • 帮海豹算鳕鱼面积
    • 帮海豹判断闰年
  • 熟悉使用分支结构
    • 帮助海豹开展寄存业务
    • 帮海豹开展货币兑换业务
    • 帮海豹开展成绩等级转换业务
    • 海豹算三条边能否构建成三角形
  • 循环结构
    • 海豹打印1-100
    • 海豹打印偶数
    • 海豹猜数游戏
    • 帮助海豹求解两个数的最大公约数和最小公倍数
  • 解决实际问题
    • 帮助海豹寻找1-1000之间的水仙花数
    • 帮海豹找出1-1000之间的完美数
    • 帮海豹解决鸡兔同笼问题
    • 帮海豹生成1-1000之间的斐波拉切数列
    • 和海豹玩21点

熟悉python的输入输出

帮海豹买鱼

'''
海豹买鱼问题
输入买鱼的种类和条数 替海豹计算出总价 sumPrice = typeAFishPrice*typeAFishNum + typeBFishPrice*typeBFishNumVersion: 0.1
Author: 快写一首情歌
'''typeAFishPrice = float(input('请输入比目鱼价格:'))
typeBFishPrice = float(input('请输入鳕鱼价格:'))
typeAFishNum = float(input('请输入比目鱼数目:'))
typeBFishNum = float(input('请输入鳕鱼数目:'))sumPrice = typeAFishPrice*typeAFishNum + typeBFishPrice*typeBFishNumprint ('海豹今天买鱼花了:%.1f的海豹币呢'%sumPrice)

帮海豹算鳕鱼面积

'''
海豹算鳕鱼面积问题
假定鳕鱼是一个规则的正方形,现在海豹知道了一条边的长度,请你帮海豹算出鳕鱼所占地表的面积
squareArea = squareLength ** 2Version: 0.1
Author: 快写一首情歌
'''
squareLength = float(input("请输入鳕鱼边长:"))
squareArea = squareLength**2
print("鳕鱼的占地"+"面积为:",squareArea)

帮海豹判断闰年

'''
帮海豹判断闰年
可爱的海豹想知道现在所处的年份是不是闰年,你能帮帮他吗Version: 0.1
Author: 快写一首情歌
'''
year = int(input("那么海豹想知道是不是闰年的年份是多少呢?"))
isLeap = ((0 == year%4 and 0 !=year%100)or 0 == year%400)
print (isLeap)

熟悉使用分支结构

帮助海豹开展寄存业务

'''
帮海豹开展寄存业务
海豹近期购买了一批带有十位密码密码锁的箱子 开展了寄存服务
A存储了一个小纸条在盒子里,除了A以及A告诉密码的人和可恶的爆破爱好者没有人可以打开
海豹希望用python模拟出这个过程 请你帮帮它
(不讨论 明文存储密码等问题~ 单纯举例分支语句)Version: 0.1
Author: 快写一首情歌
'''
import getpass
#隐藏输入密码(不显示) 并且在pycharm IDE中不能正常运行 在终端中可以正常运行
strDepositA = "叶公好海豹 格陵兰尤甚"
aPasswd = "2878129435"depositorName = input("你想打开谁存储的箱子:")if 'A' == depositorName:passwd = getpass.getpass("那请你输入他设置的密码哦:")#获取密码 打印的字符显示 输入的密码不显示if aPasswd == passwd:print(strDepositA)else:print("密码错误哦")
else:print ("此人尚未开启寄存业务哦")

帮海豹开展货币兑换业务

'''
帮海豹开展兑换货币业务
海豹币和火豹币的兑换比例为 12 在海豹这里兑换货币要收千分之五手续费
请帮海豹计算出对方应得货币数目 实得货币数目 和海豹赚取的手续费分别是多少
Version: 0.1
Author: 快写一首情歌
'''
unit = input("请输入货币种类海豹币(WB)/火豹币(FB)")
currency = float(input("请输入货币数目"))if 'WB' == unit or "海豹币"==unit:print("%f海豹币 = %f火豹币,手续费为%f海豹币"%(currency,currency*2,currency*0.005))
elif 'FB' == unit or "火豹币"==unit:print("%f火豹币 = %f海豹币,手续费为%f海豹币"%(currency,currency*0.5,currency*0.5*0.005))
else:print ("请输入有效的货币种类")

帮海豹开展成绩等级转换业务

'''
帮海豹开展成绩分数和等级转换的业务
海豹在系统上为自己的学生打分,已知分数并存储在电脑上,请帮海豹写一个程序来帮分数给出对应的等级
百分制成绩转等级制成绩
90分以上 --> A
80~89--> B
70~79--> C
60~69--> D
60分以下 --> EVersion: 0.1
Author: 快写一首情歌
'''
from random import randint
#生成指定范围的随机数scores = randint(0,100)
level ="尚未存在等级"
#随机生成一个1-100的数字代表一个同学分数
if 90<scores:level = "A"
elif 80<scores:level = "B"
elif 70<scores:level ="C"
elif 60<scores:level ="D"
elif 0<scores:level ="E"
else:level = "输入成绩不在范围之内"
print("学生成绩为%d"%(scores)+"学生等级为%s"%(level))

海豹算三条边能否构建成三角形

'''
给出三条边长,如果给出的数据可以构成一个三角形,请帮海豹计算三角形面积和周长Version: 0.1
Author: 快写一首情歌
'''
import math
#数学库 使用sqrt计算平方根lengthSideA = float(input("请输入第一条边的长度"))
lengthSideB = float(input("请输入第二条边的长度"))
lengthSideC = float(input("请输入第三条边的长度"))if lengthSideA+lengthSideB >lengthSideC and \lengthSideA+lengthSideC>lengthSideB and\lengthSideB+lengthSideC>lengthSideA:print("周长为%f"%(lengthSideA+lengthSideB+lengthSideC))halfPerimeter = (lengthSideA+lengthSideB+lengthSideC)/2area = math.sqrt(halfPerimeter*(halfPerimeter-lengthSideA)*(halfPerimeter-lengthSideB)*(halfPerimeter-lengthSideC))print("面积为",area)
else:print("输入参数不能构成三角形")

循环结构

海豹打印1-100

'''
请帮海豹在屏幕上打印1-100连续的这些数字 Version: 0.1
Author: 快写一首情歌
'''for i in range(101):print(i)

海豹打印偶数

'''
请帮海豹在屏幕上打印1-100连续的这些数字中的偶数 Version: 0.1
Author: 快写一首情歌
'''
for i in range(2,101,2):print(i)
# range(n) 产生了0到n-1
# range(1,n)产生1到n-1
# range(1,n,6)产生1到n-1 每一次数字增加6(步长)

海豹猜数游戏

'''
和海豹一起玩猜数字游戏 海豹随机想出一个(0-500)间的数字 给你10次机会 你能猜中吗Version: 0.1
Author: 快写一首情歌
'''
from random import randintcount = 0
numAnswer = randint(0,500)
while True:if count>9:print("you are loser")print("随机的数字是:",numAnswer)breaknum = float(input("请输入答案:"))if num >numAnswer:print("输入数字较大")elif num < numAnswer:print("输入数字较小")else:print("输入正确")breakcount += 1

帮助海豹求解两个数的最大公约数和最小公倍数

'''
给定两个数 帮助海豹求出他们的最大公约数和最小公倍数Version: 0.1
Author: 快写一首情歌
'''numA = int(input("A = "))
numB = int(input("B = "))if numA > numB:numA,numB = numB,numAfor tmpNum in range(numA,0,-1):if 0 == numA%tmpNum and 0 == numB%tmpNum:print(numA,"和",numB,"的最大公约数为",tmpNum)print(numA,"和",numB,"的最小公倍数为",numA*numB//tmpNum)#//整除# /浮点除break

解决实际问题

帮助海豹寻找1-1000之间的水仙花数

'''
帮助海豹找出1-1000之间的水仙花数Version: 0.1
Author: 快写一首情歌
'''
for Num in range(0,1001):if((Num%10)**3+(Num//10%10)**3+(Num//100)**3) == Num:print(Num)

帮海豹找出1-1000之间的完美数

'''
帮助海豹找出1-1000之间的完美数Version: 0.1
Author: 快写一首情歌
'''
import mathfor num in range(1, 10000):sum = 0for factor in range(1, int(math.sqrt(num)) + 1):if 0 == num % factor :sum += factorif 1 < factor and num / factor != factor:sum += num / factorif sum == num:print(num)

帮海豹解决鸡兔同笼问题

'''
帮助海豹解决鸡兔同笼问题 已知头数和足数 求解鸡兔的个数Version: 0.1
Author: 快写一首情歌
'''
headNum = int(input("所呈现的头的个数"))
legNum = int(input("所呈现出的足的个数"))
extraleg = legNum -headNum*2
rabbitNum = extraleg/2
print("兔子的数量是:",int(rabbitNum))
print("鸡的数量是",int(headNum-rabbitNum))

帮海豹生成1-1000之间的斐波拉切数列

'''
帮海豹生成1-1000的斐波拉且=切数列
Version: 0.1
Author: 快写一首情歌
'''
numA = 0
numB = 1while True:numA,numB = numB,numA+numBif numA < 1000:print(numA)else:break

和海豹玩21点

'''
陪海豹玩21点(毫无尊严的21点)
Version: 0.1
Author: 快写一首情歌
'''
from random import randintsumPlayerPoker = randint(1,13)
print("你的底牌是:", sumPlayerPoker)while True:isNeed = input("是否需要加牌(是/否)(Y/N):")if '是' == isNeed or 'Y' == isNeed:tmpPlayerPoker = randint(1,13)sumPlayerPoker += tmpPlayerPokerprint("你获得的牌的大小是%d,你的总点数为%d" %(tmpPlayerPoker,sumPlayerPoker))if sumPlayerPoker>21:print("你的总点数超过21 被海豹锤爆了狗头")print("海豹的点数是:1")breakelif '否' == isNeed or 'N' == isNeed:if sumPlayerPoker == 21:print("海豹的点数是:",randint(1,20))print("海豹被你锤爆了豹头,并且为你献上了原地撸豹服务")else:print("海豹的点数是:",sumPlayerPoker+1)print("还想赢豹豹,你怕不是失了智/滑稽")breakelse:print("非法输入")