数据结构论坛

首页 » 分类 » 定义 » Python字典数据结构应用长度单位换
TUhjnbcbe - 2023/7/18 20:18:00
北京青春痘的医院 http://m.39.net/news/a_9323322.html

1、编程需求

阿萌要开发一个长度单位换算器,帮助学生掌握长度单位的换算。

长度单位换算要求

程序要求学生输入一个带单位的长度数值,程序输出换算后其它单位的长度数值。支持的长度单位有:米、分米、厘米、毫米。

例如学生输入1分米,程序输出如下:

1分米=0.1米

1分米=10厘米

1分米=毫米

2、分割子串

根据编程需求,程序需要识别出学生输入的单位和数值,并进行单位换算。

例如学生输入“3分米”,程序需要分割出数值3和分米,数值3是长度,分米是单位。

input函数返回的是字符串,实际就是对字符串的分割。程序需要编写一个cut函数来分割学生输入的字符串。

函数的功能是传入一个字符串,返回一个列表,该列表有两个元素,第一个元素是识别出的数值,第二个元素是识别出的单位。如果识别失败,返回空列表。

数值和单位分割算法

遍历字符串的所有字符,在遍历过程中,做如下处理:

如果字符是数字字符,且后续是连续数字字符,将该数字字符序列作为整数存入列表,作为列表的第一个元素,将数字字符之后的字符序列作为列表的第二个元素。

程序简化起见,算法假设学生按照程序要求输入了正确的数据,没有对学生的输入错误进行处理。

cut函数流程图如下:

cut函数代码如下:

代码解读

函数的功能是将学生输入的内容分割成两个子串,一个子串是数值,一个子串是单位,将分割出来的两个子串添加到list列表,函数返回list列表。

函数使用for……in……循环结构来遍历传入的字符串instr,循环变量ch是instr的一个字符。在第一轮循环时,ch是instr的第一个字符,在第二轮循环时,ch是instr的第二个字符,以此类推,直至instr遍历完成。

在for循环体中,判断ch是否是数字,如果是数字添加到num字符串中,如果不是数字添加到unit字符串。

str遍历完成后,将num转换为整数后添加到list列表,unit也添加到list列表。

购买专栏解锁剩余82%
1
查看完整版本: Python字典数据结构应用长度单位换