0

我有一个创建随机字符串的脚本,我想把它变成一个占位符。这是我的脚本:

import random

def randstring(length=10):
    valid_letters='abcdefghijklmnopqrstuvqxyz1234567890'
    return ''.join((random.choice(valid_letters) for i in xrange(length)))
print randstring(15)
#prints something like "qkxfdqp5jockf6n"

我希望能够将“randstring(15)”的创建值转换为转换说明符,例如 %s 或 %d。这应该很简单,但我无法弄清楚。谢谢。

4

2 回答 2

2

使用format()而不是旧的%s字符串格式。

import random

def randstring(length=10):
  valid_letters='abcdefghijklmnopqrstuvqxyz1234567890'
  return "hello, {0:s}".format(''.join((random.choice(valid_letters) for i in xrange(length))))
print (randstring(15))

输出:

hello, u3gbd0p2rfvrsze
于 2012-06-13T04:06:21.783 回答
2

当我运行它时,它会吐出一个字符串,例如 qkxfdqp5jockf6n 。我想让它能够做类似 print "Hello, %s" 它说 "Hello, qkxfdqp5jockf6n"

%s不是魔术,它也不会神奇地知道你想要替换什么。它是一个占位符。您将字符串替换为与替换任何其他字符串相同的方式

text = 'Damien'
def my_function():
    return 'Damien'

# All of the following will print "Hello, Damien":
print 'Hello, %s' % 'Damien'
print 'Hello, %s' % text
print 'Hello, %s' % my_function()

没有任何东西“变成”转换说明符。

于 2012-06-13T04:13:31.360 回答