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が吐き出されます。「こんにちは、%s」と表示され、「こんにちは、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 に答える