python元组覆盖写入以前的数据
我正在尝试创建一个函数,该函数将启动循环并在当前天数中添加一天,它将询问3个问题,然后将这些数据合并为相等的总输出。然后,我希望'n'表示元组的结尾,在下一步中,将Total_输出添加到元组的结尾。但是当我运行这个函数时,它似乎正在创建一个新的元组 例如: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:
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)