对于我的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/

10-12 16:48