python的进一步初学者垃圾邮件工作

2024-03-29 08:24:15 发布

您现在位置:Python中文网/ 问答频道 /正文

我以前可以让我的10个字符的字符串包含大小写字母,以及数字。现在我得到的只是一串小写字符。我改错了什么?你知道吗

import random
import math


def randstr():
    x=0
    a = ('abcdefghijklmnopqrstuvwxyz')
    b = ('ABCDEFGHIJKLMNOPQRSTUVWXYZ')
    c = ('0123456789')
    rs = (random.choice(a)) + (random.choice(a)) + (random.choice(a)) + (random.choice(a)) + (random.choice(a)) + (random.choice(a)) + (random.choice(a)) + (random.choice(a)) + (random.choice(a)) + (random.choice(a))
    print rs
    if rs[0] in b:
        x += 1
    if rs[0] in a:
        x += 1
    elif rs[1] in a:
        x += 1
    elif rs[2] in a:
        x += 1
    elif rs[3] in a:
        x += 1
    elif rs[4] in a:
        x += 1
    elif rs[5] in a:
        x += 1
    elif rs[6] in a:
        x += 1
    elif rs[7] in a:
        x += 1
    elif rs[8] in a:
        x += 1
    elif rs[9] in a:
        x += 1
    if rs[1] in b:
        x -= 2
    elif rs[2] in b:
        x -= 2
    elif rs[3] in b:
        x -= 2
    elif rs[4] in b:
        x -= 2
    elif rs[5] in b:
        x -= 2
    elif rs[6] in b:
        x -= 2
    elif rs[7] in b:
        x -= 2
    elif rs[8] in b:
        x -= 2
    elif rs[9] in b:
        x -= 2
    if rs[0] in c:
        x -= 2
        if rs [1] in a:
            x -= .25
        elif rs [2] in a:
            x -= .25
        elif rs [3] in a:
            x -= .25
        elif rs [4] in a:
            x -= .25
        elif rs [5] in a:
            x -= .25
        elif rs [6] in a:
            x -= .25
        elif rs [7] in a:
            x -= .25
        elif rs [8] in a:
            x -= .25
        elif rs [9] in a:
            x -= .25
    elif rs[1] in c:
        x -= 2
        if rs [0] in a:
            x -= .25
        elif rs [2] in a:
            x -= .25
        elif rs [3] in a:
            x -= .25
        elif rs [4] in a:
            x -= .25
        elif rs [5] in a:
            x -= .25
        elif rs [6] in a:
            x -= .25
        elif rs [7] in a:
            x -= .25
        elif rs [8] in a:
            x -= .25
        elif rs [9] in a:
            x -= .25
    elif rs[2] in c:
        x -= 2
        if rs [0] in a:
            x -= .25
        elif rs [1] in a:
            x -= .25
        elif rs [3] in a:
            x -= .25
        elif rs [4] in a:
            x -= .25
        elif rs [5] in a:
            x -= .25
        elif rs [6] in a:
            x -= .25
        elif rs [7] in a:
            x -= .25
        elif rs [8] in a:
            x -= .25
        elif rs [9] in a:
            x -= .25
    elif rs[3] in c:
        x -= 2
        if rs [0] in a:
            x -= .25
        elif rs [1] in a:
            x -= .25
        elif rs [2] in a:
            x -= .25
        elif rs [4] in a:
            x -= .25
        elif rs [5] in a:
            x -= .25
        elif rs [6] in a:
            x -= .25
        elif rs [7] in a:
            x -= .25
        elif rs [8] in a:
            x -= .25
        elif rs [9] in a:
            x -= .25
    elif rs[4] in c:
        x -= 2
        if rs [0] in a:
            x -= .25
        elif rs [1] in a:
            x -= .25
        elif rs [2] in a:
            x -= .25
        elif rs [3] in a:
            x -= .25
        elif rs [5] in a:
            x -= .25
        elif rs [6] in a:
            x -= .25
        elif rs [7] in a:
            x -= .25
        elif rs [8] in a:
            x -= .25
        elif rs [9] in a:
            x -= .25
    elif rs[5] in c:
        x -= 2
        if rs [0] in a:
            x -= .25
        elif rs [1] in a:
            x -= .25
        elif rs [2] in a:
            x -= .25
        elif rs [3] in a:
            x -= .25
        elif rs [4] in a:
            x -= .25
        elif rs [6] in a:
            x -= .25
        elif rs [7] in a:
            x -= .25
        elif rs [8] in a:
            x -= .25
        elif rs [9] in a:
            x -= .25
    elif rs[6] in c:
        x -= 2
        if rs [0] in a:
            x -= .25
        elif rs [1] in a:
            x -= .25
        elif rs [2] in a:
            x -= .25
        elif rs [3] in a:
            x -= .25
        elif rs [4] in a:
            x -= .25
        elif rs [5] in a:
            x -= .25
        elif rs [7] in a:
            x -= .25
        elif rs [8] in a:
            x -= .25
        elif rs [9] in a:
            x -= .25
    elif rs[7] in c:
        x -= 2
        if rs [0] in a:
            x -= .25
        elif rs [1] in a:
            x -= .25
        elif rs [2] in a:
            x -= .25
        elif rs [3] in a:
            x -= .25
        elif rs [4] in a:
            x -= .25
        elif rs [5] in a:
            x -= .25
        elif rs [6] in a:
            x -= .25
        elif rs [8] in a:
            x -= .25
        elif rs [9] in a:
            x -= .25
    elif rs[8] in c:
        x -= 2
        if rs [0] in a:
            x -= .25
        elif rs [1] in a:
            x -= .25
        elif rs [2] in a:
            x -= .25
        elif rs [3] in a:
            x -= .25
        elif rs [4] in a:
            x -= .25
        elif rs [5] in a:
            x -= .25
        elif rs [6] in a:
            x -= .25
        elif rs [7] in a:
            x -= .25
        elif rs [9] in a:
            x -= .25
    elif rs[9] in c:
        x -= 2
        if rs [0] in a:
            x -= .25
        elif rs [1] in a:
            x -= .25
        elif rs [2] in a:
            x -= .25
        elif rs [3] in a:
            x -= .25
        elif rs [4] in a:
            x -= .25
        elif rs [5] in a:
            x -= .25
        elif rs [6] in a:
            x -= .25
        elif rs [7] in a:
            x -= .25
        elif rs [8] in a:
            x -= .25
    return rs
print randstr()
randstr()

Tags: 字符串inimportif数字random字符print
3条回答
a = ('abcdefghijklmnopqrstuvwxyz')
...
rs = (random.choice(a)) + (random.choice(a)) + (random.choice(a)) + (random.choice(a)) + (random.choice(a)) + (random.choice(a)) + (random.choice(a)) + (random.choice(a)) + (random.choice(a)) + (random.choice(a))

因为a只包含小写字母,所以rs也是。你知道吗

你的问题的答案为什么会改变,是因为你只是从你的a中挑选。你知道吗

有一种更简单的方法:

>>> import random
>>> import string
>>> random.sample(string.letters+string.digits, 10)
['e', 'l', 'b', 'q', 'k', 'T', 'K', 'H', 'B', 'w']
>>> random.sample(string.letters+string.digits, 10)
['5', 'g', 't', 'k', 'W', 'u', '4', 'T', '6', 'C']
>>> random.sample(string.letters+string.digits, 10)
['z', 'N', 'y', 'O', 'L', 'r', '6', 'D', 'V', '8']

rs的赋值只选择a中的值,因此字符串中不会出现任何大写字母或数字。你知道吗

相关问题 更多 >