【问题标题】:the function print in python displays me nothingpython中的函数print什么都不显示
【发布时间】:2023-07-30 16:09:01
【问题描述】:

我在 python 中的函数有问题

我有一个包含 10 个名称的列表,我想将距离与名称 1 和名称 2 以及名称 1 与名称 3 ....10 以及名称 2 与名称 3 ..的距离进行比较。 ...变成10 ...

我创建了一个函数 dist_date,它给出了作者的两个日期之间的距离。

例如print(dist_date('Veryan Heal','Brian G. Field')) 给出0.25

但是当我尝试使用这样的循环时:

valeur = []
valeur2 = []
for x in range(len(names)):
    for i in range(x + 1, len(names)):
        if dist_name(names[x],names[i]) < 0.3 and dist_name(names[x],names[i])!=None:
            print(dist_date('names[x]','names[y]'))

它不起作用,但最奇怪的是我看到我的 python 正在执行我的代码,但什么也没出现。就像我只有白色值,一个白色的页面。

感谢阅读

【问题讨论】:

  • 什么都没变?它打印了什么吗?做print(names[x], names[i], dist_name(names[x],names[i]) )
  • 列表是否为空?请努力,在每个 for 循环后打印值,看看你要使用什么项目
  • if 条件为假时,打印根本不会发生。
  • 您的代码显示 valeurvaleur2 似乎未使用。您的代码还显示names,我们看不到它的定义。
  • 我有名字和日期,但是当我说 ``` print(dist_date('names[x]','names[i]')) ``` python print me just white pagina and白白执行我的代码

标签: python list loops


【解决方案1】:

添加更多打印语句,以便您可以准确地看到程序在做什么。在每个循环的顶部和每个 if/else 分支的顶部打印一条消息:

for x in range(len(names)):
    print("Looping x=%d" % x)
    for i in range(x + 1, len(names)):
        print("Looping i=%d" % i)
        if dist_name(names[x],names[i]) < 0.3 and dist_name(names[x],names[i])!=None:
            print("If condition was true")
            print(dist_date(names[x],names[y]))
        else:
            print("If condition was false")

【讨论】:

  • SO 的目的不是帮助人们调试他们的代码,这里的 OP 没有给出足够的细节,所以无法给出答案,因为没有给出问题
  • @MattClark 在评论中调试不是告诉您“使用打印”并查看的答案
  • 如果我能把它放在评论中,我会的。但是 cmets 不允许这样的详细代码。
最近更新 更多