在范围内打印20个随机数,检查是奇数还是偶数

2024-10-01 17:40:39 发布

您现在位置:Python中文网/ 问答频道 /正文

过去一周我一直在为这个任务拼命工作,但我仍然感到困惑。我必须创建一个程序,让用户输入2个数字,按大小顺序排列,在范围内打印20个随机数字,还可以确定它们是奇数还是偶数。到目前为止,我得到的是:

#Main function
import random
def main():
    first = int(input("Enter first integer: "))
    second = int(input("Enter second integer: "))
    def sortnums(first, second):
        if first > second:
            return second, first
        else:
            return first, second
        MIN, MAX = sortnums(first, second)

    for x in range(20):
        random = random.randrange(MIN, MAX)
        if random%2 == 0:
            print ("The random number", random ,"is even.")
        elif random%2 != 0:
            print ("The random number", random ,"is odd.")
    return random

main()

我不只是懒洋洋地要求一个解决方案,我真的已经用尽了我的努力在这个问题上,甚至联系了我的实验室导师寻求更多的建议,但我仍然不知道为什么它不起作用。 谢谢。在


Tags: inputreturnifmaindef数字randominteger
3条回答

在这条线上:

random = random.randrange(MIN, MAX)

您已经用一个数字隐藏了random模块。您应该选择一个不同的变量名,比如random_number,这样以后对random.randrange的调用不会出错:

^{pr2}$

您最大的疏忽可能是用您选择的第一个随机数跟踪导入的random。在此之后,当程序试图在int上查找randrange属性时,第二次循环将失败

已经有一个很好的内置方法来排序数字了

def sortnums(first, second):
    return sorted([first, second])

更简单地说,使用元组解包

^{pr2}$

您可以像这样从打印功能中删除重复

import random
def main():
    first = int(input("Enter first integer: "))
    second = int(input("Enter second integer: "))
    for x in range(20):
        num = random.randrange(*sorted([first, second]))
        print("The random number", num ,"is", "odd." if num%2 else "even.")
    return

main()

你的代码有一些问题。但你已经很接近了。我想你可能只是在理解程序的执行方式上有问题。底部的“main()”函数调用是第一个代码执行点。用户提示可以很好地收集用户数据,但是您只需定义两个函数,而不会实际调用它们。另外,您使用单词“random”作为变量名,但它也被用作random库的名称空间。下面是一个固定版本。。。

import random

def main():
    first = int(input("Enter first integer: "))
    second = int(input("Enter second integer: "))
    MIN, MAX = sortnums(first, second)

    for x in range(20):
        randNum = random.randrange(MIN, MAX)
        if randNum%2 == 0:
            print ("The random number", randNum ,"is even.")
        elif randNum%2 != 0:
            print ("The random number", randNum ,"is odd.")

def sortnums(first, second):
    if first > second:
        return second, first
    else:
        return first, second

main()

相关问题 更多 >

    热门问题