Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
3.8k views
in Technique[技术] by (71.8m points)

python - How to randomly uppercase characters in a string?

I want a way of grab an string variable and randomize which letters are uppercase, like so:

upperRandomizer("HelloWorld") == "HeLLoWORlD"

I've tried this so far:

for p in strVar:
        result = ""
        if random.choice((True, False)):
            result += p.upper()
        else:
            result += p

But the code only spits out the last letter of the string variable. I tried to use the join() method without success. Any help would be appreciated.


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)

Move your result variable outside of the loop. Right now, you are recreating it every time you loop through a character in the list.

result = ""
for p in strVar:
    if random.choice((True, False)):
        result += p.upper()
    else:
        result += p

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...