如何比较python中函数的输出?

如何比较python中函数的输出?,python,random,Python,Random,很抱歉,如果这是一个明显的问题,但我12岁,正试图写一些代码来帮助我完成我的科学项目,我正在尝试看看哪个锁是最安全的。基本上,我的问题是,我需要找出如何将函数的输出与if somethinghere()==somethingelse()进行比较。顺便说一下,我正在使用随机模块。作为我尝试做的一个示例,这是比较代码部分: def猜测已修复(y): y=print(“[”,(random.randint(0,9)),“,”,(random.randint(0,9)),“,”,(random.rand

很抱歉,如果这是一个明显的问题,但我12岁,正试图写一些代码来帮助我完成我的科学项目,我正在尝试看看哪个锁是最安全的。基本上,我的问题是,我需要找出如何将函数的输出与if somethinghere()==somethingelse()进行比较。顺便说一下,我正在使用
随机
模块。作为我尝试做的一个示例,这是比较代码部分:

def猜测已修复(y):
y=print(“[”,(random.randint(0,9)),“,”,(random.randint(0,9)),“,”,(random.randint(0,9)),“,”,(random.randint(0,9)),“]”,sep=“”);这应该一直保持更改,直到与键相同为止。
返回y
对于我正在比较的一部分,[,]所有的事情都是格式化它来比较它,而我正在比较的另一部分是

mylistkey=[]#随机生成的密钥,应该保持不变。
对于范围(0,5)内的i:
x=random.randint(0,9)
mylistkey.append(x)
我试图将其与以下内容进行比较:

而猜测已修复(0)!=mylistkey:
如果guessfixed(0)=mylistkey:
打印(“成功了!”)
如果已修复(0)!=mylistkey:#顺便说一下,这仍然在循环中
打印(“不太有效”),
我知道这不起作用的唯一方法是,在完整的脚本中,我将键和猜测更改为只有4个组合,因此键和猜测最终必须重叠,它一直在继续,据说在我杀死它之前尝试了100个组合。根据我的测试,猜测修正了变化,而键没有变化。
再次感谢您阅读本文,如果这是一个离题的问题,或者是非常明显的问题,请原谅。我12岁,所以我不太擅长写问题,但熟能生巧

很好地尝试了这个,詹姆斯

为了真正回答您的问题,我们需要了解比较函数return和list的用例。从这里阅读python列表的更多信息-

在程序中,您需要查看的内容很少

  • 您不需要guessfixed的参数,因为您正在对函数中的值进行硬编码
  • 对于所有函数调用,都需要括号-()
  • 编一个字符串与列表进行比较不是一个好主意
  • 我没有在这个程序中使用While循环

然而,你已经有了一个非常好的开始。坚持下去

您需要使用
guessfixed
返回一个列表——您希望将列表与列表进行比较,而不是将列表与字符串进行比较。不需要传入
y
(当然也不需要传入
0
——您不能为其分配列表或字符串!):

(此外,
print
不会返回有用的值,因此将
print
的结果指定给
y
也没有意义。
print
将输出生成为标准输出,但只返回
None

此外,每次调用
guessfixed()
都是在创建新的猜测

我猜你希望你的循环看起来像这样:

while True:
    next_guess = guessfixed()
    if next_guess == mylistkey:
        print("It worked!")
        break
    # else
    print("It did not quite work")
在这里,将结果放入变量并不是绝对必要的,但它可以帮助您查看发生了什么(您可以在代码中方便的位置添加
print(next_guess)
,以查看发生了什么)

更重要的是,您可能希望使用暴力算法,而不是生成随机猜测。你越是进行随机猜测,你就越有可能猜测一个你已经尝试过至少一次的组合


另请参见和

欢迎詹姆斯!首先,为了得到一个有质量的问题,你应该看一看。仅供参考,每次你调用
guessfixed
,它都会重新计算,因此它在while循环开始时可能不相等,然后在if语句中相等。谢谢你的回复!我终于让我的代码开始工作了!可能还注意到,
guessfixed
也可用于分配“true”列表。也许应该调用函数
fivedigits
while True:
    next_guess = guessfixed()
    if next_guess == mylistkey:
        print("It worked!")
        break
    # else
    print("It did not quite work")