如何正确检查数组

时间:2018-10-24 16:53:25

标签: python python-3.x

这是我的代码

def gen_code(codeLength):
    symbols = ('ABCDEF')
    code = random.sample(symbols, k=codeLength)
    return str(code)

def print_code(code):
    i = 0
    while i < len(code):
        print(code[i])
        i += 1

code = gen_code(codeLength)
print("The code is " + code)
convCode = code[0] + code[1] + code[2] + code[3]
print(convCode)

所以我基本上想从我提供的字母中生成一个随机字符串,然后检查用户是否猜出了该字符串中的正确条目(我正试图成为主谋)。我遇到的问题是检查用户的猜测是否在生成的代码中。

这是我的代码输出: Output

为什么我的convCode变量打印为['E',而不是EAFB?

3 个答案:

答案 0 :(得分:1)

如果代码以list而不是string的形式返回,则可以按照您想要的方式访问代码的各个字母。

import random
codeLength=4
def gen_code(codeLength):
    symbols = ('ABCDEF')
    code = random.sample(symbols, k=codeLength)
    return code
def print_code(code):
    i = 0
    while i < len(code):
        print(code[i])
        i += 1

code = gen_code(codeLength)
print("The code is " + str(code))
convCode = code[0] + code[1] + code[2] + code[3]
print(convCode)

答案 1 :(得分:0)

gen_code函数中,将列表转换为字符串,然后返回:

def gen_code(codeLength):
    symbols = ('ABCDEF')
    code = random.sample(symbols, k=codeLength)

    # This converts it to a string, rather than leaving it as a list
    # which is presumably what you want.
    return str(code)

因此,稍后在您的代码中:

convCode = code[0] + code[1] + code[2] + code[3]

为您提供该字符串的前四个字符,它们正好是['E'

尝试将gen_code更改为此:

def gen_code(codeLength):
    symbols = ('ABCDEF')
    code = random.sample(symbols, k=codeLength)
    return code

答案 2 :(得分:0)

code是使用列表进行切片以获取所需结果的方法,因为您不必每次都编写硬编码的列表索引,因此将为您提供灵活性。

import random
def gen_code(codeLength):
    symbols = ('ABCDEF')
    code = random.sample(symbols, k=codeLength)
    return code

def print_code(code):

    i = 0
    while i < len(code):
        print(code[i])
        i += 1

code = gen_code(5)
print("The code is " + str(code))
convCode =code[:4]
print(convCode)