我对此有疑问
def randomrecipes():
print (random.sample(listofrecipes, 1))
mainmenu()
listofrecipes = [monday, tuesday, wednsday, thursday, friday, saturday, sunday]
食谱的格式设置如下(只需忽略挪威胡言乱语)。
monday"""
1 l kjøttkraft /buljong eller lettsaltet vann
750 g rå potet
300 g kokt potet
3 dl byggmel
2 ss hvetemel
1 ts salt
"""
当我只打印它时,它带有保留的空白,但是从randomrecipes
我得到了:
['\n1 l kjøttkraft /buljong eller lettsaltet vann\n750 g rå potet\n300 g kokt potet\n3 dl byggmel\n2 ss hvetemel\n1 ts salt\n']
我正在尝试自己学习,并且刚刚入门,如果这是一个愚蠢的问题,对不起。谢谢。
答案 0 :(得分:0)
您使用的random.sample(iterable, k)
总是返回一个长度为k
或在您的情况下为1的列表。因此,您要打印的对象是一个字符串列表。
您可以更改行
print (random.sample(listofrecipes, 1))
类似
print(random.sample(listofrecipes,1)[0]) # note the [0]
这将返回列表中的 first 元素(碰巧是唯一的元素)。
更清洁的解决方案可能是使用random.choice(iterable)
。它总是返回一个选择,而不是列表。它实际上与上面的行等效,但是更清楚了。
答案 1 :(得分:0)
random.sample
returns a list,这正是您所得到的。此输出就是列表格式的方式。如果要从此列表中提取字符串,请执行以下操作:
random.sample(listofrecipes, 1)[0]
答案 2 :(得分:0)
random.sample
的输出是一定长度的列表,在这种情况下为1。打印此文件时,您会看到显示列表(包括换行符\n
字符)时生成的输出。
print(random.sample(listofrecipes, 1)[0])
将打印出字符串,这是列表的第一个元素,它将在多行中恢复原始显示。