【问题标题】:unable to read IF in printing outputs无法在打印输出中读取 IF
【发布时间】:2018-08-25 06:16:07
【问题描述】:

对于以下代码,Python 推荐我使用a.any。 现在,根据我的代码,输出显示的内容是错误的。 l 大于 1,但输出是打印 r 而不是 q=10

from numpy import *
import numpy as np

for i in range (1,3):
    r=np.random.uniform(0,3,i)
    x=np.random.uniform(0,9,i)    
    h=np.random.uniform(0,1,i)
    l=r+x
    if (l<1.0).any:
        q=r
    elif (l>1.0).any:
        q=10
    print("q= ",q,"l= ",l)

【问题讨论】:

  • 你必须致电 any: if (l&lt;1.0).any():
  • @Aran 啊,多么糟糕的错误。谢谢,我的朋友。谢谢你。你知道如何将这段代码的输出从数组更改为常规数字吗?输出为 [0.000121] 但我需要 0.000121。再次感谢您
  • @David q 和 l 将包含 1,2 或 3 个元素,你想如何打印它们?
  • @David 您可以使用 * 来解压可迭代对象,例如:print(*l)
  • @con error:print() 参数后 * 必须是可迭代的,而不是 int

标签: python arrays numpy if-statement random


【解决方案1】:

我看了你的问题。可以通过更改随机数来检查这一点。 如果您只想要随机数,则使用 np.random.uniform(0,1) 不需要 any()。但是,如果为每个 i 指定特定数字很重要,则必须使用 any()

for i in range (1,3):
    r=np.random.uniform(0,3)
    x=np.random.uniform(0,9)    
    h=np.random.uniform(0,1)
    l=r+x
    if l<1.0:
        q=r
    elif l>1.0:
        q=10
    print("q= ",q,"l= ",l)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-05
    • 1970-01-01
    • 2018-12-25
    • 1970-01-01
    相关资源
    最近更新 更多