输入分数转换为列表时多位数拆分异常的技术求助
问题解决方法
你的代码用list()将输入字符串转为列表时,会把字符串的每个字符拆分成单独的列表元素,所以输入"99/100"会被拆成单个数字和符号的集合。要实现按连续数字和分隔符拆分的需求,可以用以下两种方法:
方法一:拆分后重组(简单直接)
先按/分割字符串得到前后数字部分,再手动把分隔符插回列表中:
input_str = input("Enter: ") num_parts = input_str.split('/') fraction = [num_parts[0], '/', num_parts[1]] print(fraction)
这种方法适合输入格式固定为数字/数字的场景,输入"99/100"时会输出['99', '/', '100']。
方法二:正则表达式匹配(更健壮)
如果需要兼容更灵活的输入格式(比如确保正确识别任意长度的数字段和分隔符),可以用正则表达式匹配连续数字或分隔符:
import re input_str = input("Enter: ") fraction = re.findall(r'\d+|/', input_str) print(fraction)
正则模式\d+|/表示匹配一个或多个连续数字,或者匹配/符号,能精准拆分出你需要的列表元素。
内容的提问来源于stack exchange,提问作者Eric Lee
相关产品推荐
相关产品推荐

