python元组覆盖写入以前的数据

python元组覆盖写入以前的数据,python,function,python-2.7,tuples,Python,Function,Python 2.7,Tuples,我正在尝试创建一个函数,该函数将启动循环并在当前天数中添加一天,它将询问3个问题,然后将这些数据合并为相等的总输出。然后,我希望'n'表示元组的结尾,在下一步中,将Total_输出添加到元组的结尾。但是当我运行这个函数时,它似乎正在创建一个新的元组 例如: Good Morninghi This is Day: 1 How much weight did you use?40 How many reps did you do?20 How many sets did you do?6 Day:

我正在尝试创建一个函数,该函数将启动循环并在当前天数中添加一天,它将询问3个问题,然后将这些数据合并为相等的总输出。然后,我希望'n'表示元组的结尾,在下一步中,将Total_输出添加到元组的结尾。但是当我运行这个函数时,它似乎正在创建一个新的元组

例如:

Good Morninghi
This is Day: 1
How much weight did you use?40
How many reps did you do?20
How many sets did you do?6
Day: 1
[4800.0]
This is Day: 2
How much weight did you use?50
How many reps did you do?20
How many sets did you do?6
Day: 2
[6000.0, 6000.0]
This is Day: 3
How much weight did you use?40
How many reps did you do?20
How many sets did you do?6
Day: 3
[4800.0, 4800.0, 4800.0]
failed
以下是函数:

def Start_Work(x):
    Num_Days = 0
    Total_Output = 0
    Wght = 0
    Reps = 0
    Sets = 0
    Day = []

    while x == 1 and Num_Days < 6: ##will be doing in cycles of 6 days
        Num_Days += 1     ##increase day count with each loop
        print "This is Day:",Num_Days
        Wght = float(raw_input("How much weight did you use?"))
        Reps = float(raw_input("How many reps did you do?"))
        Sets = float(raw_input("How many sets did you do?"))
        Total_Output = Wght * Reps * Sets
        n = Day[:-1]   ##go to end of tuple
        Day = [Total_Output for n in range(Num_Days)] ##add data (Total_Output to end of tuple
        print "Day:",Num_Days  
        print Day
    else:
        print "failed"

Input = raw_input("Good Morning")
if Input.lower() == str('hi') or str('start') or str('good morning'):
  Start_Work(1)
else:
    print "Good Bye"
def开始工作(x):
天数=0
总输出=0
Wght=0
重复次数=0
集合=0
日期=[]
当x==1且Num_Days<6时:##将以6天为一个周期
Num_Days+=1##增加每个循环的天数
打印“今天:”,天数
Wght=浮动(原始输入(“您使用了多少重量?”))
Reps=float(原始输入(“你做了多少次?”))
Sets=float(原始输入(“您做了多少组?”))
总输出=Wght*重复*组
n=天[:-1]##转到元组末尾
天=[范围内n的总输出(Num_天)]##添加数据(总输出到元组末尾
打印“天:”,天数
印刷日
其他:
打印“失败”
输入=原始输入(“早上好”)
如果Input.lower()==str('hi')、str('start')或str('good morning'):
开始工作(1)
其他:
打印“再见”
不做您认为它能做的事。您分配
n
,但从不使用它(循环中的
n
中的n分配),并且它只保存
一天结束时的
列表

然后将
Day
设置为
[Total\u Output]*Num\u Days
,这样就可以创建一个新的
列表,列出
Num\u Days
总输出次数

你想要:

Day.append(Total_Output)

要替换这两行。

顺便说一句,带下划线的
Title\u Case\u有何不可?另外
'start'
已经是
str
,无需将其转换为一行。另外,当x==1
又有什么问题?这
x
来自哪里?另外,请查找
xrange
内置的。这是一个更大的程序的一部分,并且我计划在几天、几周和几个月内完成这些操作,所以我想让函数名变得非常独特。“x”是因为在更大的程序中,它需要一个练习……例如:“长凳、仰卧起坐、蹲坐”当长凳=1,仰卧起坐=2,蹲起=3时,“x”的值就会发生变化。每个练习都会有循环,在循环之外需要增加重量或重复次数或套数。我实际上是想清理“开始”部分,因为这是我之前尝试写这篇文章时的内容。哦,开始的部分是因为我认为我必须声明类型以强制它降低,我要尝试在不使用“str”的情况下执行它并保存一些键。哇,谢谢,现在我看到了,我不明白我怎么没有想到这一点。它正是我现在想要的工作方式,太棒了……现在我有一堆代码要重写lol,T又是汉克斯
Day.append(Total_Output)