编程思路:
1、输入数据及单位
2、输入转换后的单位
3、识别输入的数字和单位
4、进行单位转换
(先判断单位是否合理及转换前后单位是否相同)
4.1、单位转换为最小单位um
4.2、单位转换为转换后的单位
程序代码:
print('任务1:实现单位换算器')
import re
#输入数据
distance_data=input('请输入数字以及单位:')
#输入转换后的单位
dis_shift_unit=input('请输入转换后的单位um,mm,cm,dm,m,km:')
#识别输入数据的数字和单位
parrten1 = '[0-9]+'
dis_data = re.findall(parrten1, distance_data)
dis_data=int(dis_data[0])#列表转换为整型
print(dis_data)
parrten2='[a-zA-Z]+'
dis_unit=re.findall(parrten2,distance_data)
dis_unit=str(dis_unit[0])#列表转换为字符串
dis_unit=dis_unit.lower()
print(dis_unit)
#进行单位转换
if dis_unit=='um'or dis_unit=='nm'or dis_unit=='cm'or dis_unit=='dm'or dis_unit=='m'or dis_unit=='km':
if dis_unit!=dis_shift_unit:
#先转换成um
if dis_unit == 'mm':
dis_data = dis_data *1000
elif dis_unit == 'cm':
dis_data = dis_data *10000
elif dis_unit == 'dm':
dis_data = dis_data *100000
elif dis_unit == 'm':
dis_data = dis_data *1000000
elif dis_unit == 'km':
dis_data = dis_data *1000000000
#um转换成dis_shift_unit
if dis_shift_unit == 'mm':
dis_data = dis_data /1000
elif dis_shift_unit == 'cm':
dis_shift_data = dis_data /10000
elif dis_shift_unit == 'dm':
dis_shift_data = dis_data /100000
elif dis_shift_unit == 'm':
dis_shift_data = dis_data /1000000
elif dis_shift_unit == 'km':
dis_shift_data = dis_data /1000000000
print('转换后', dis_shift_data, dis_shift_unit)
else:
print('转换前后单位相同,无须转换')
else:
print('输入单位错误!')