Python设置随机数:Python随机数程序

我试图写一个程序,有一个函数,接受三个参数并打印一个整数。

具体细节:

参数 # 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()
1

我遇到了同样的问题,而不是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)

希望它能帮助

0

我已经测试了你的代码,但最后两个代码产生预期的结果如下:

Your random value is 12

因此,我认为你的问题的原因可能是在不同的背景下。

0

您的代码也为我工作-但是;如果 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()
   

本站系公益性非盈利分享网址,本文来自用户投稿,不代表边看边学立场,如若转载,请注明出处

(844)
Python编程培训学校:学校作业外壳编程(yeongin kim)
上一篇
Python怎么用:pythonipow:如何使用第三个参数
下一篇

相关推荐

发表评论

登录 后才能评论

评论列表(65条)