我需要帮助分隔x行(由用户输入)中的列表。我似乎无法这样做。
这是我到目前为止所拥有的:
# List of random integers between 0-100
def createGrades(amt):
import random
myGrades = random.sample(range(0,100), amt)
return myGrades
# To list myGrades neatly in rows of 6
myGrades = createGrades(10)
def printRows(myGrades, amtPerRow):
n=0
for i in range(0+n, amtPerRow+n):
print(myGrades, end='\n') #Stuck at this part
我该如何使这项工作?我尝试在范围内做一个i,但它只是吐出了myGrades列表的amtPerRow。
谢谢!
答案 0 :(得分:1)
for i in range(1+len(myGrades)//6):
print myGrades[i*6:(i+1)*6]
答案 1 :(得分:1)
这里有很多问题。第一个是print语句没有缩进(因此实际上不在你的for
循环中)。其次,范围没有正确指定。如果amtPerRow
为6,则范围为(0,6),如上所述,只会在列表中打印出0-6元素。
如果我正确理解您的问题,您需要打印每个年级,但每6个等级添加换行符。这是一个模运算。
这是一个将行打印为CSV(以逗号分隔的值)的示例,因为我不知道您在项目之间想要的分隔符 - 它不是在你的问题中指明。
def printRows(myGrades, amtPerRow):
for i, grade in enumerate(myGrades):
print(grade, end="")
if (i + 1) % amtPerRow == 0:
print("\n", end="")
else:
print(",", end="")
grades = [82, 34, 81, 79, 31, 18, 7, 67, 13, 25]
给了我:
>>> printRows(grades, 6)
82,34,81,79,31,18
7,67,13,25,
我假设Python 3,给出你的打印语句,但如果没有,你可以使用:
from ___future__ import print_function
在这里获取打印功能。或者,使用Python 2中的逗号语法(print grade,
)在每个print语句后都没有换行符。