我有一些有效的代码。问题是,输出数字不符合规定。我查看了sorted()函数并相信这是我需要使用的,但是当我使用它时,它表示已排序只能有4个参数,我有6-7。
print "Random numbers are: "
for _ in xrange(10):
print rn(),rn(), rn(), rn(), rn(), rn(), rn()
with open('Output.txt', 'w') as f:
f.write("Random numbers are: \n")
for _ in xrange(500):
f.write("%s,%s,%s,%s,%s,%s\n" % (rn(), rn(), rn(), rn(), rn(), rn()))
如何在保持与此格式相同的格式下对输出进行排序?
谢谢
答案 0 :(得分:3)
将数字放在一个序列中,这是sorted()
的工作原理:
s = sorted([rn(), rn(), rn(), rn(), rn(), rn()])
然后在写作时从s
中选择值:
f.write("%d,%d,%d,%d,%d,%d\n" % tuple(s))
请注意,由于s
包含数字,因此格式应该为%d
,如图所示,而不是%s
,这是字符串。
把它放在一起,你的程序应该是这样的:
with open('Output.txt', 'w') as f:
f.write("Random numbers are: \n")
for _ in xrange(500):
s = sorted([rn(), rn(), rn(), rn(), rn(), rn()])
f.write("%d,%d,%d,%d,%d,%d\n" % tuple(s))
假设rn()
函数返回一个随机数,这应该给你500行6“新鲜”随机数,每行排序。
答案 1 :(得分:0)
试试这个:
from random import randint
def rn():
return randint(1,49)
with open('Output.txt', 'w') as f:
f.write("Random numbers are: \n")
for _ in xrange(10):
s = sorted(rn() for _ in xrange(6))
f.write("{},{},{},{},{},{}\n".format(*s))
答案 2 :(得分:0)
我会使用列表进行排序。
创建一个列表,对其进行排序,格式化。
import random
def get_numbers():
return sorted([random.randint(1, 49) for _ in xrange(6)])
with open('Output.txt', 'w') as f:
f.write("Random numbers are: \n")
for _ in xrange(10):
f.write(','.join(map(str, get_numbers())) + '\n')
现在您可以向get_numbers
添加更多逻辑,例如删除重复值。