1.bmi体重指数计算器
class BMI(object):
def bmi(self):
while True:
# 声明变量 身高、体重
height = input('请输入您的身高(m):')
weight = input('情输入您的体重(kg):')
# 如果输入的身高或者体重有一个为0,直接结束循环
# or 或的关系 关键字,多个条件时,只要有一个条件成立即可执行代码块内容
if height == '0' or weight == '0':
print('您输入的数据有误,程序已结束!')
# 结束循环
break
# and 与的关系 关键字 多个条件时,条件必须同时成立才行
if height == '1.8' and weight == '70':
print('微信扫一扫吧')
# not 表示非的关系
# 将输入的身高体重 转换为小数 float类型
height = float(height)
weight = float(weight)
# 体质指数(BMI)=体重(kg)÷身高^2(m)
bmi = weight / (height * height)
'''
过轻:低于18.5
正常:18.5-23.9
过重:24-27
肥胖:28-32
非常肥胖, 高于32
'''
if bmi < 18.5:
print('体重过轻...')
elif 18.5 <= bmi <= 23.9:
print('标准身材!')
elif 24 <= bmi <= 27:
print('过重!')
elif 28 <= bmi <= 32:
print('大胖子')
else:
print('超级大胖子')
def start(self):
self.bmi()
if __name__=='__main__':
bm=BMI()
bm.start()
2.taxi出租车费用计算器
class Taxi(object):
def taxi(self):
while True:
# 快速多行缩进,可以选中需要缩进的行,按Tab键
# 1.输入一个公里数
km = input('请输入行驶公里数(km),输入0结束:')
# 如果km的值为0,结束循环
if km == '0':
print('欢迎下次使用!Bye bye!')
break
# 2.将公里数转换为float类型
km = float(km)
# 3.根据不同的公里数计算需要的车费
if km <= 2:
# 3.1 起步价8元 包含2公里
print('起步价,8元')
elif km <= 12:
# 3.2 超出2公里至12公里的部分 按每公里1.2计算
money = 8 + (km - 2) * 1.2
# 占位符 %f 专门用来给float类型的数据做占位的
# %.2f 保留小数点后两位
print('共行驶%.2f千米,共%.2f元' % (km, money))
else:
# 3.3 超出12公里的部分 按每公里 1.5计算
money = 8 + 12 + (km - 12) * 1.5
print('共行驶%.2f千米,共%.2f元' % (km, money))
def start(self):
self.taxi()
if __name__=='__main__':
tx=Taxi()
tx.start()
3.猜数字
import random
#猜数字
class Guess(object):
def __init__(self):
pass
'''
添加过关功能,第一关能猜测10次,第二关能猜测七次,第三关能猜测5次,第4关能猜测3次,第5关能猜测1次
'''
def guess(self):
guess_list = [10, 7, 5, 3, 1,0]
number = random.randint(0, 100)
print(number)
# index定义猜测次数
index = 0
# 列表的索引
i = 0
# 列表里的数值赋值给s
s = guess_list[i]
#记录猜数字的 关卡
aa=guess_list.index(s)+1
print('---------欢迎来到猜数字系统,本关为第%s关-------'%aa)
print('第%s关您有%s次猜测机会'%(aa,s))
while s:
# 输入一个0~100的整数,input输入的是字符串
gus_num = input('请输入您猜的数字(0~100):')
# 将输入的字符串转换为整数类型
gus_num = int(gus_num)
# 只要输入的数字不在0~100的范围,重新输入
while gus_num < 0 or gus_num > 100:
# 重新输入
gus_num = input('输入的数字不在范围,请重新输入:')
# 转换为整数类型
gus_num = int(gus_num)
# 和正确答案数字做对比
if gus_num > number:
print('您猜大了')
elif gus_num < number:
print('您猜小了')
else:
print('恭喜您猜对了')
print('-----------欢迎进入%s关-----------'%(aa+1))
# 如果猜对了,给两个选项,1.继续玩 2.退出
print('1.继续玩')
print('2.退出程序')
# 输入一个选项
num = input('请选择您的操作:')
# !=不等于 只要输入的选项不符合要求,重选
while num != '1' and num != '2':
# 选项不存在,请重选
num = input('选项不存在,请重选:')
# num=int(num)
# 继续玩
if num == '1':
# 重置正确答案
index = 0
i += 1
number = random.randint(0, 100)
print(number)
# --------------------------------注意!!!
s = guess_list[i]
aa = guess_list.index(s)+1
print('第%s关您有%s次猜测机会' % (aa, s))
if s==0:
print('恭喜您已经通过所有关卡,欢迎下次来玩!')
break
continue
else:
# 结束循环,退出程序
break
print('您已经尝试了:%s次!' % index)
index += 1
if index == guess_list[i]:
print('过关失败!')
break
s -= 1
def start(self):
self.guess()
if __name__=='__main__':
gu=Guess()
gu.start()
4.税率
#税率计算器
class Tax(object):
def __init__(self,gz):
self.gz=gz
def tax(self):
# while循环
# while True:
# 将工资转换为float类型
gz = float(self.gz)
# 如果输入的工资为0,结束循环
# 如果工资大于或者等于7662 五险一金 = 7662 * 五险一金比例(22.5 %)
if gz >= 7662:
wxyj = 7662 * 0.225
else:
# 如果工资小于7662 五险一金=工资*五险一金比例
wxyj = gz * 0.225
# 应纳税所得额=工资-五险一金-起征点(3500)
ynssde = gz - wxyj - 3500
# 声明两个变量 税率、速算扣除数
shuilv = 0
sskcs = 0
# 判断应纳税所得额所在的阶梯
if ynssde <= 0:
print('您不用交税!')
elif ynssde <= 1500:
shuilv = 0.03
elif ynssde <= 4500:
shuilv = 0.1
sskcs = 105
elif ynssde <= 9000:
shuilv = 0.2
sskcs = 555
elif ynssde <= 35000:
shuilv = 0.25
sskcs = 1005
elif ynssde <= 55000:
shuilv = 0.3
sskcs = 2755
elif ynssde <= 80000:
shuilv = 0.35
sskcs = 5505
else:
shuilv = 0.45
sskcs = 13505
# print(shuilv)
# print(sskcs)
# 计算税额 税额=应纳税所得额*阶梯税率-速算扣除数
shuie = ynssde * shuilv - sskcs
# print(shuie)
# 计算到手工资
my_money = gz - wxyj - shuie
print('税前工资:%.2f' % gz)
print('缴纳税额:%.2f' % shuie)
print('五险一金:%.2f' % wxyj)
print('到手工资:%.2f' % my_money)
if __name__=='__main__':
while 1:
# 输入工资
gz = input('请输入您的税前工资(输入0结束):')
if gz <= '0':
print('你不用交五险一金,也不用交税!')
# break结束循环
break
ta=Tax(gz)
ta.tax()