尝试输入一个分数并将其分割成一个列表,但当数字超过1位时,它会导致问题


fraction = list(input("Enter: "))
print(fraction)

输入"99/100"我想打印("99","/","100"]不是[' 9 ',' 9 ','/',' 1 ',' 0 ',' 0 ']

可以使用"。split"对于这个,例如:

thing1 = "abcdef"
thing1.split("c")

给出输出:

['ab', 'def']

如果你很无聊,想要为自己的兴趣而与一些面条式的代码作斗争,那么编写一些类似于".split()"的代码将是一个有趣的挑战。你自己。这样做会让你思考Python是如何工作的,并且尝试用最小的大0来完成它可以向你介绍一些关于字符串、数组和算法效率的有趣的东西。

如果您想保留分隔符,如问题所示,您可以使用re模块。

import re
fraction = input("Enter: ")
print(re.split("(/)", fraction))

应使用partition法而不能使用split法,因为使用split法将省略分隔参数。

"99/100".partition('/')
#('99', '/', '100')

对于嵌套分数,建议使用其他策略,re,…