对于我的python入门课程的作业,我们将编写一个程序,该程序生成100组x,y坐标。
X必须是介于-100.0和100.0(含)之间的浮点数,但不能为0。
Y为Y =((1 / x)* 3070),但如果Y的绝对值大于100,则必须丢弃这两个数字(但存储),并生成另一个集合。
结果必须显示在表格中,然后在表格之后,必须显示丢弃的结果。
老师说我们应该使用“字符串累加器”来存储丢弃的数据。
到目前为止,这就是我所拥有的,并且我一直坚持存储丢弃的数据。
编辑:知道了!谢谢!
# import random.py
import random
# import math.py
import math
# define main
def main():
xDiscarded = 'Discarded X Values'
yDiscarded = 'Discarded Y Values'
# print header
print(" x \t y ")
x = random.uniform(-100.0, 100.0)
while x == 0:
x = random.uniform(-100.0, 100.0)
y = ((1/x) * 3070)
if math.fabs(y) > 100:
xDiscarded += ", " + str(x)
yDiscarded += ", " + str(y)
else:
print(x, '\t', y)
print(xDiscarded)
print(yDiscarded)
如您所见,我遇到了abs(y)> 100的问题,我不太确定如何存储丢弃的数据,并在abs(y)> 100时让它积累。我对数据存储为“ 351.2、231.1、152.2”,我只是不知道如何将变量转换为字符串并将其存储。我们还没有学习数组,所以我不能这样做。
任何帮助将非常感激。谢谢!
最佳答案
“字符串累加器”不是Python的“艺术术语”。也许老师的意思是“将所有内容累加成一个字符串”(Python中的一种可怕方法),或者(如果课程已经涵盖了列表)他可能是一个字符串列表(适当的Python方法)。
其他答案已经涵盖了第一种可能性,但是如果意味着第二种(好的)答案,则您需要的是:
a)将初始化更改为
xDiscarded = []
yDiscarded = []
因此它们都是空列表;
b)将“有条件丢弃”更改为类似
if math.fabs(y) > 100:
xDiscarded.append(str(x))
yDiscarded.append(str(y))
在字符串列表中累积(您可能还应该在此处进行一些整洁的格式化,但这并不是严格意义上的必要);
c)将输出部分更改为
print('Discarded X Values: ' + ', '.join(xDiscarded))
print('Discarded Y Values: ' + ', '.join(yDiscarded))
用适当的“标题”和标点符号进行漂亮的输出。
关于python - 使用字符串累加器将多个丢弃的数据存储在单个变量中,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/2450898/