这是我的代码
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)
所以我基本上想从我提供的字母中生成一个随机字符串,然后检查用户是否猜出了该字符串中的正确条目(我正试图成为主谋)。我遇到的问题是检查用户的猜测是否在生成的代码中。
为什么我的convCode
变量打印为['E',而不是EAFB?
答案 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)