在 python 中从 Entry 小部件获取指定的格式输入

getting specified format input from Entry widget in python

提问人:zangmolk 提问时间:11/11/2023 更新时间:11/17/2023 访问量:16

问:

我想将指定格式(start-stop-dataNumber)的字符串转换为数组。 dataNumber 是从开始到停止的该范围内的数据数。

例如: 输入=“1-10:5” 输出=[1,3,5,7,9]

感谢您的关注

python 数组 字符串 类型转换 格式

评论


答:

1赞 Tisiphone 11/17/2023 #1

如果我正确理解了你的问题,你可以这样做:

def format_input(input):
parts = input.split(':')

start_stop = parts[0].split('-')
start = int(start_stop[0])
stop = int(start_stop[1])
data_number = int(parts[1])

if start > stop:
    return []

# the range is now like this: [start,stop)
# if you want the interval to include the stop: [start,stop]
# use the commented out line

step_size = (stop - 1 - start) / (data_number - 1)
#step_size = (stop - start) / (data_number - 1)
output = [round(start + i * step_size) for i in range(data_number)]

return output

首先解析字符串,然后通过计算必要的步长并将其与输出数组中的第 i 个元素的 i 相乘来生成数组。