我试图写一个程序,有一个函数,接受三个参数并打印一个整数。
具体细节:
参数 # 1 应对应于值为 0 到 10 的 np.randint 的大小。
参数 # 2 是一个整数,您将乘以 randint。
参数 # 3 是一个值,您将索引乘法的结果。
随机种子设置为 42。
您将打印索引为“您的随机值为 x”的整数,其中 x = 索引的结果。
python3 reallyrandom.py 59 2 7
应生成以下内容:
Your random value is 12
如果我这样写,我可以使程序工作:
import numpy as np
import pandas as pd
import random
def reallyrandom(arg1, arg2, arg3):
int1=int(arg1)
int2=int(arg2)
int3=int(arg3)
np.random.seed(42)
x=np.random.randint(0,10, size=int1)
y=x*int2
z=y[int3]
print("Your random value is {}".format(z))
reallyrandom(59,2,7)
它也可以工作,如果我这样写:
import numpy as np
import pandas as pd
import random
def reallyrandom():
arg1=input()
arg2=input()
arg3=input()
int1=int(arg1)
int2=int(arg2)
int3=int(arg3)
np.random.seed(42)
x=np.random.randint(0,10, size=int1)
y=x*int2
z=y[int3]
print("Your random value is {}".format(z))
reallyrandom()
但是当我尝试将其切换到这种风格时,它没有给出任何输出。我对整个 sys 的事情感到困惑。请帮助我理解它。
import numpy as np
import pandas as pd
import random
import sys
def reallyrandom():
arg1=sys.argv[1]
arg2=sys.argv[2]
arg3=sys.argv[3]
int1=int(arg1)
int2=int(arg2)
int3=int(arg3)
np.random.seed(42)
x=np.random.randint(0,10, size=int1)
y=x*int2
z=y[int3]
print("Your random value is {}".format(z))
reallyrandom()
我也尝试这样不成功:
import numpy as np
import pandas as pd
import random
import sys
def reallyrandom():
int1=int(arg1)
int2=int(arg2)
int3=int(arg3)
np.random.seed(42)
x=np.random.randint(0,10, size=int1)
y=x*int2
z=y[int3]
print("Your random value is {}".format(z))
if __name__ == '__main__':
arg1=sys.argv[1]
arg2=sys.argv[2]
arg3=sys.argv[3]
reallyrandom()
我遇到了同样的问题,而不是sys.argv
。测试代码的环境不会显示错误,因此很难判断程序何时崩溃。您的代码可能崩溃的原因有两个:
您的环境中未安装 Pandas
如果第三个参数大于第一个参数,则索引超出范围错误
所以拿出第二行代码(因为你不使用熊猫),并确保第三个参数大于第一个之前,你调用函数。
import numpy as np
import sys
np.random.seed(42)
arg1=int(sys.argv[1])
arg2=int(sys.argv[2])
arg3=int(sys.argv[3])
def reallyrandom(a, b, c):
x=np.random.randint(0,10, size=a)
y=x*b
z=y[c]
print(f"Your random value is {z}")
if(arg3 > arg1):
p
else:
reallyrandom(arg1, arg2, arg3)
希望它能帮助
我已经测试了你的代码,但最后两个代码产生预期的结果如下:
Your random value is 12
因此,我认为你的问题的原因可能是在不同的背景下。
您的代码也为我工作-但是;如果 int3 & gt;int1 程序崩溃。如果您将其更改为 follow,则 int3 & gt;int1 不会返回任何内容。
import numpy as np
import pandas as pd
import random
def reallyrandom(arg1, arg2, arg3):
int1=int(arg1)
int2=int(arg2)
int3=int(arg3)
if int3 > int1:
p
else:
np.random.seed(42)
x=np.random.randint(0,10, size=int1)
y=x*int2
z=y[int3]
print("Your random value is {}".format(z))
reallyrandom()
本站系公益性非盈利分享网址,本文来自用户投稿,不代表边看边学立场,如若转载,请注明出处
评论列表(65条)