功能:将指定的十进制数转为二,八,十六进制
写代码完的时候我们都应有一个想法,看可不可以优化代码
num = int(input('请输入一个十进制的整数:')) # 将str类型转换成我们的int类型
print(num, '的二进制数为:', bin(num)) # 第一种写法,使用了个数可变的位置参数
print(str(num) + '的二进制数为:' + bin(num)) # 第二种写法,使用了+作为连接符(左右均为str类型)注str转出来的就是字符串类型
print('%s的二进制数为:%s' % (num, bin(num))) # 第三种写法,格式化字符串
print('{0}的二进制数为:{1}'.format(num, bin(num))) # 第三种写法,格式化字符串
print('f{num}的二进制数为:{bin(num)}') # 第三种写法,格式化字符串 f表示format格式化的意思
print('======================================') # 但f只使用与少的情况,多的一般用forma
print(f'{num}的八进制数为:{oct(num)}')
print(f'{num}的十六进制数为:{hex(num)}')
效果图:
上面代码存在的问题:万一用户就是要输入其他英文或者特殊字符在上面怎么办?
想法:将转换的全部定义为函数,然后再统一调用,用while True来循环,再用用try–except来进行异常处理
优化:
def fun():
num = int(input('请输入一个十进制的整数:')) # 将str类型转换成我们的int类型
print(num, '的二进制数为:', bin(num)) # 第一种写法,使用了个数可变的位置参数
print(str(num) + '的二进制数为:' + bin(num)) # 第二种写法,使用了+作为连接符(左右均为str类型)注str转出来的就是字符串类型
print('%s的二进制数为:%s' % (num, bin(num))) # 第三种写法,格式化字符串
print('{0}的二进制数为:{1}'.format(num, bin(num))) # 第三种写法,格式化字符串
print('f{num}的二进制数为:{bin(num)}') # 第三种写法,格式化字符串 f表示format格式化的意思
print('======================================') # 但f只使用与少的情况,多的一般用forma
print(f'{num}的八进制数为:{oct(num)}')
print(f'{num}的十六进制数为:{hex(num)}')
if __name__ == '__main__':
while True:
try:
fun()
break
except:
print('只能输入整数!,请重新输入')