我有一个单词列表,我希望有一个循环从中选择一个随机单词并将下一个数字连接到该单词上。
到目前为止我已经
了import random
wordList = ['some', 'choice', 'words', 'here']
for x in range(0, 10):
word = random.choice(wordList)
print word %(x)
抛出错误" TypeError:并非在字符串格式化期间转换所有参数"
我正在尝试遵循
的格式for x in range(0, 10):
print "number%d" %(x)
成功打印
产品数 1号 2号 number3的 号码4 number5 number6 number7 number8 number9
我认为我的问题在于字符串变量的格式化,但我无法弄清楚如何纠正它。
答案 0 :(得分:3)
编辑:在我看来,根据@Alan Leuthard的评论使用更多可读答案。
您需要指定字符串内的格式。
* -> *
或者如果您正在寻找oneliner,
for x in range(0, 10):
word = random.choice(wordList)
print "%s%d" %(word, x)
如果您使用的是Python 2.7+或3.x,则更容易使用大括号。
for x in range(0, 10):
print "%s%d" %(random.choice(wordList), x)
但是如果你想在Python 2.6中使用大括号
for x in range(0, 10):
print("{}{}".format(random.choice(wordList), x))
答案 1 :(得分:1)
这意味着并非所有参数都在字符串中转换。这是因为你忘了添加"%d"到字符串的末尾。这应该工作
In [29]: import random
...: wordList = ['some', 'choice', 'words', 'here']
...: for x in range(0, 10):
...: word = random.choice(wordList) + "%d"
...: print word %(x)
...:
here0
here1
some2
words3
words4
some5
here6
here7
words8
words9