python 练习小项目

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


熟悉python的输入输出

帮海豹买鱼

'''
海豹买鱼问题
输入买鱼的种类和条数 替海豹计算出总价 sumPrice = typeAFishPrice*typeAFishNum + typeBFishPrice*typeBFishNum

Version: 0.1
Author: 快写一首情歌
'''

typeAFishPrice = float(input('请输入比目鱼价格:'))
typeBFishPrice = float(input('请输入鳕鱼价格:'))
typeAFishNum = float(input('请输入比目鱼数目:'))
typeBFishNum = float(input('请输入鳕鱼数目:'))

sumPrice = typeAFishPrice*typeAFishNum + typeBFishPrice*typeBFishNum

print ('海豹今天买鱼花了:%.1f的海豹币呢'%sumPrice)

帮海豹算鳕鱼面积

'''
海豹算鳕鱼面积问题
假定鳕鱼是一个规则的正方形,现在海豹知道了一条边的长度,请你帮海豹算出鳕鱼所占地表的面积
squareArea = squareLength ** 2

Version: 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 ("此人尚未开启寄存业务哦")

帮海豹开展货币兑换业务

'''
帮海豹开展兑换货币业务
海豹币和火豹币的兑换比例为 1:2 在海豹这里兑换货币要收千分之五手续费
请帮海豹计算出对方应得货币数目 实得货币数目 和海豹赚取的手续费分别是多少
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分以下 --> E

Version: 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)/2
    area = 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 randint

count = 0
numAnswer = randint(0,500)
while True:
    if count>9:
        print("you are loser")
        print("随机的数字是:",numAnswer)
        break
    num = float(input("请输入答案:"))
    if num >numAnswer:
        print("输入数字较大")
    elif num < numAnswer:
        print("输入数字较小")
    else:
        print("输入正确")
        break
    count += 1

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

'''
给定两个数 帮助海豹求出他们的最大公约数和最小公倍数

Version: 0.1
Author: 快写一首情歌
'''

numA = int(input("A = "))
numB = int(input("B = "))

if numA > numB:
    numA,numB = numB,numA

for 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 math

for num in range(1, 10000):
    sum = 0
    for factor in range(1, int(math.sqrt(num)) + 1):
        if 0 == num % factor :
            sum += factor
            if 1 < factor and num / factor != factor:
                sum += num / factor
    if 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 = 1

while True:
    numA,numB = numB,numA+numB
    if numA < 1000:
        print(numA)
    else:
        break

和海豹玩21点

'''
陪海豹玩21点(毫无尊严的21点)
Version: 0.1
Author: 快写一首情歌
'''
from random import randint

sumPlayerPoker = randint(1,13)
print("你的底牌是:", sumPlayerPoker)

while True:
    isNeed = input("是否需要加牌(是/否)(Y/N):")
    if '是' == isNeed or 'Y' == isNeed:
        tmpPlayerPoker = randint(1,13)
        sumPlayerPoker += tmpPlayerPoker
        print("你获得的牌的大小是%d,你的总点数为%d" %(tmpPlayerPoker,sumPlayerPoker))
        if sumPlayerPoker>21:
            print("你的总点数超过21 被海豹锤爆了狗头")
            print("海豹的点数是:1")
            break
    elif '否' == isNeed or 'N' == isNeed:
        if sumPlayerPoker == 21:
            print("海豹的点数是:",randint(1,20))
            print("海豹被你锤爆了豹头,并且为你献上了原地撸豹服务")
        else:
            print("海豹的点数是:",sumPlayerPoker+1)
            print("还想赢豹豹,你怕不是失了智/滑稽")
        break
    else:
        print("非法输入")