Skip to main content
 首页 » 编程设计

python之使用字符串累加器将多个丢弃的数据存储在单个变量中

2025年05月04日26linjiqin

对于我的 Python 入门类(class)的作业,我们要编写一个程序来生成 100 组 x,y 坐标。

X 必须是介于 -100.0 和 100.0(含)之间的 float ,但不能为 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 中的一种可怕方法),或者(如果类(class)已经涵盖列表)他的意思是字符串的列表(正确的 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)) 

用正确的“标题”和标点符号做漂亮的输出。