python - 当用户输入相同的输入两次(预期)时,如何将输入组合到输出?

标签 python algorithm function input

我的测试代码适用于输入一天的第一条记录,但代码主体不起作用。该代码继续运行,询问工作的日期和时间。我输入“完成”,它也不接受。

我最初想为输入的日期创建一个列表,但不确定在进入下一个输入之前何时访问该列表以打印页脚。没有错误只是不会按预期执行。这是一项任务,许多声明已经填充。

用户输入的预期结果:

工作日:星期二 工作时间:3 工作日:周二 工作时间:4 第 7 天

这是我的代码。

HEAD1 = "WEEKLY HOURS WORKED"
DAY_FOOTER = "Day Total "
SENTINEL = "done"   # Named constant for sentinel value
hoursWorked = 0     # Current record hours
hoursTotal = 0      # Hours total for a day
prevDay = ""        # Previous day of week
notDone = True      # loop control
days=[]



# Print two blank lines.
print("\n\n")
# Print heading.
print("\t" + HEAD1)
# Print two blank lines.
print("\n\n")

# Read first record 
dayOfWeek = input("Enter day of week or done to quit: ")
if dayOfWeek  == SENTINEL:
    notDone = False

else:
    hoursWorked =int(input("Enter hours worked: "))
    prevDay = dayOfWeek
    hoursTotal = hoursWorked
    days.append(dayOfWeek)
    print("\t" + DAY_FOOTER + str(hoursTotal))
    print(days)

while notDone == True:
    dayOfWeek = input("Enter day of week or done to quit: ")
    prevDay = dayOfWeek
    hoursWorked =int(input("Enter hours worked: "))
    hoursTotal = 0
    hoursTotal = hoursTotal + hoursWorked
    days.append(dayOfWeek)
    print(days)

    def dayChange(DAY_FOOTER,hoursWorked):
        if dayOfWeek == dayOfWeek:
            DAY_FOOTER = dayOfWeek
            hoursTotal = (hoursWorked + hoursWorked)
            print("\t" + DAY_FOOTER + str(hoursTotal))
            days.append(dayOfWeek)


        else:
            print("\t" + DAY_FOOTER + str(hoursTotal))

def endOfProgram(done):
    if dayOfWeek == "done":
        notDone == False
        return```






最佳答案

代码有几个问题:

首先,您对 while 循环中的“done”命令并不是很敏感。您确实测试了 notDone 变量,但您从不在循环内写入该变量。测试应该嵌入循环本身,在循环之外是多余的。其次,在 while 循环的每次迭代中,您都将 hoursTotal 变量初始化为 0,这样您就不会记住前几天的值。也许您应该使用一个额外的列表来跟踪小时数,或者使用 day_of_the_week:hours 字典。

关于python - 当用户输入相同的输入两次(预期)时,如何将输入组合到输出?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58251236/

相关文章:

php - 等同于 PHP 中的 Function.prototype.apply?

list - 删除列表中的重复对

javascript - 如何使用常见的 try-catch 来处理 Javascript 中的每个给定函数?

python - 对象没有属性

python - 动态创建变量是个好主意吗?

python - 声明变量的 pythonic 方式是什么?

c++ - 从字符串中删除指定字符 - 高效的方法(时间和空间复杂度)

algorithm - 简单循环阿克曼函数

python - 对 django 应用程序进行单元测试的良好方法/设计

algorithm - 蛮力 BFS 与 Dijkstra 最短路径算法的运行时间分析