Python自学笔记6:实操案例三(十进制转换二、八、十六进制),手机充值,计算能量消耗,预测未来子女身高

杨淑娟老师网课传送门(非广告):https://www.bilibili.com/video/BV1Sw411Z779?p=150&spm_id_from=pageDriver

第150-151讲

1.十进制转二进制、八进制、十六进制

老师非常贴心地在实现了进制转换之后,封装成了一个在while循环里面可以重复调用的函数,并且帮助我们巩固了try except异常语法:

(快捷键:选中之后+tab一键缩进)

正常运行:

python求解势能 python计算能量_开发语言


python求解势能 python计算能量_开发语言_02


python求解势能 python计算能量_十六进制_03


报异常:

python求解势能 python计算能量_十六进制_04


恢复正常:

python求解势能 python计算能量_十六进制_05

def Trans():#快速缩进:选中加tab
    num=int(input('请输入一个十进制的整数'))#将str类型转换为int类型
    print(num,'的二进制数为',bin(num))#第一种写法,用内置函数转换,使用个数可变的位置参数输出
    print(str(num)+'的二进制数为'+bin(num))#bin(num)转换之后的结果就是str类型,可以不写转换
    print('%s的二进制数为:%s'%(num,bin(num)))#第三种写法,格式化字符串
    print('{0}的二进制数为:{1}'.format(num,bin(num)))#第四种写法,格式化字符串
    print(f'{num}的二进制数为:{bin(num)}')#第五种写法,格式化字符串
    print('-----------------------------------')
    num=int(input('请输入一个十进制的整数'))#将str类型转换为int类型
    print(num,'的八进制数为',oct(num))#第一种写法,用内置函数转换,使用个数可变的位置参数输出
    print(str(num)+'的八进制数为'+oct(num))#bin(num)转换之后的结果就是str类型,可以不写转换
    print('%s的八进制数为:%s'%(num,oct(num)))#第三种写法,格式化字符串
    print('{0}的八进制数为:{1}'.format(num,oct(num)))#第四种写法,格式化字符串
    print(f'{num}的八进制数为:{oct(num)}')#第五种写法,格式化字符串
    print('-----------------------------------')
    num=int(input('请输入一个十进制的整数'))#将str类型转换为int类型
    print(num,'的十六进制数为',hex(num))#第一种写法,用内置函数转换,使用个数可变的位置参数输出
    print(str(num)+'的十六进制数为'+hex(num))#bin(num)转换之后的结果就是str类型,可以不写转换
    print('%s的十六进制数为:%s'%(num,hex(num)))#第三种写法,格式化字符串
    print('{0}的十六进制数为:{1}'.format(num,hex(num)))#第四种写法,格式化字符串
    print(f'{num}的十六进制数为:{hex(num)}')#第五种写法,格式化字符串

if __name__=='__main__':
    while True:
        try:
            Trans()
            break
        except:
            print('只能输入整数!程序出错,请重新输入!')

2.手机充值

这个很简单,只考察了字符串的输出和打印变色

python求解势能 python计算能量_python_06

print('用户手机账户原有话费金额为:\033[0;35m8元\033[m')
money=int(input('请输入用户充值金额:'))
money+=8#本来有8元余额
print('当前的余额为:\033[0;33m',money,'元\033[m')

3.计算能量消耗

考察运算符的使用,没啥难度。

python求解势能 python计算能量_格式化字符串_07

num=int(input('请输入您当天行走的步数:'))
calorie=num*28
print(f'今天共消耗了卡路里{calorie},即{calorie/1000}千卡')

4.预测未来子女身高

也是考察运算符的使用,给定公式子女身高=(父亲身高+母亲身高)*0.54

python求解势能 python计算能量_python求解势能_08

father_height=float(input('请输入父亲的身高'))
mother_height=float(input('请输入母亲的身高'))
son_height=(father_height+mother_height)*0.54
print('预测子女的身高为:{}cm'.format(son_height))

这个算出来是三位小数感觉不太整齐,我查了查怎么给他框成两位:


python求解势能 python计算能量_开发语言_09


python求解势能 python计算能量_开发语言_10


可以看出第三个使用Demical的方法出了一些小故障,emm让我查查

噢,原来是我只调用了函数,没有用print输出转换内容,那没事了。

调整之后——

很好!很有精神!

python求解势能 python计算能量_python求解势能_11

father_height=float(input('请输入父亲的身高'))
mother_height=float(input('请输入母亲的身高'))
son_height=(father_height+mother_height)*0.54
print('预测子女的身高为:{}cm'.format(son_height))
print('强迫症像输出两位的:')
print("%.2f" % son_height)
print(round(son_height,2))

from decimal import Decimal
print(Decimal(son_height).quantize(Decimal('0.00')))