为什么我的 UI 没有在 Python 中将此整数读取为 2 位数字

问题描述 投票:0回答:1

我只需要知道为什么我的 UI 不将整数“14”读取为 2 位数字,而不是 2 个 1 位数字。我需要 for 循环将 pack 分配给 checkPackage,因为我需要 pack 来表示输入的任何包 id。我最初取出了“int”部分,它根本不会将 pack 分配给包 id

    elif option == "3":
    checkPackage = input('Please enter a package using its package ID')
    checkTime = input('Please enter a time in the form "00:00:00"')
    hour, minute, second = checkTime.split(":")
    rtime = datetime.timedelta(hours=int(hour), minutes=int(minute), seconds=int(second))
    for package_id in checkPackage:
        pack = myHash.search(int(package_id))
        if rtime < pack.timeLeftHub0:
            pack.status = 'At Hub'
            print(str(pack.package_id) + ' package status at ' + str(rtime) + ' = ' + str(pack.status))
        elif rtime == pack.time_delivered:
            pack.status = 'Delivered'
            print(str(pack.package_id) + ' package status at ' + str(rtime) + ' = ' + str(pack.status))
        elif rtime > pack.time_delivered:
            pack.status = 'Delivered'
            print(str(pack.package_id) + ' package status at ' + str(rtime) + ' = ' + str(pack.status))
        else:
            pack.status = 'En Route'
            print(str(pack.package_id) + ' package status at ' + str(rtime) + ' = ' + str(pack.status))

当我运行 UI 并执行选项 3 时,我得到以下信息:

您今天想检查什么?

  1. 一天结束时所有包裹状态和卡车总里程
  2. 给定时间所有包裹的状态
  3. 给定时间的单个包裹状态
  4. 退出程序 选择一个选项(1、2、3 或 4):3 请使用其包 ID14 输入包 请以“00:00:00”10:00:00 的形式输入时间 10:00:00 的 1 个包裹状态 = 已送达 4 10:00:00 包裹状态 = 已送达
python algorithm user-interface hash
1个回答
0
投票

如果你循环遍历一个字符串 (

for package_id in checkPackage:
),它会一次给你一个字符。

您的意思是允许用户输入多个以空格分隔的数字吗? (例如:用户输入

14 7
,它会处理id为14和id 7的包。)

然后您可以将该行替换为:

for package_id in checkPackage.split():

请参阅 文档

str.split

© www.soinside.com 2019 - 2024. All rights reserved.