如何改进我的部门计划?(简单的Python)

2024-04-16 20:54:36 发布

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

我目前正在尝试做一个分区程序,询问随机的分区问题。有两件事阻碍了我这样做:1)我的程序认为一切除以某个值总是0。e、 g.8除以2=0。2) 我需要在没有浮点的情况下进行除法,比如144/5。这里是:

import sys 
import random

guessRight=0
guessWrong=0

while True: 
    num1 = random.randint(0,12)    #probably messed up here
    num2 = random.randint(12,144)  #and here  
    print "To exit this game type 'exit'" 
    theyputinstuffhere = raw_input("What is " + str(num2) + " divided by " + str(num1) + "? ") #maybe messed up here


    if theyputinstuffhere == "exit":
        print "Now exiting game!"
        sys.exit()

    elif int(theyputinstuffhere) == num1/num2: #maybe messed this whole elif too
        print num1/num2
        print "Correct!"
        guessRight=guessRight+1
        print "You have gotten " + str(guessRight) + " answer(s) right and you got " + str(guessWrong) + " wrong"
    else:
        print "Wrong! The correct answer is: " + str(num1/num2)
        guessWrong=guessWrong+1
        print "You have gotten " + str(guessRight) + " answer(s) right and you got " + str(guessWrong) + " wrong"

这是它当前打印的内容:

^{pr2}$

Tags: andanswer程序hereexitrandom分区print
1条回答
网友
1楼 · 发布于 2024-04-16 20:54:36

如果您要求num2除以num1,那么您需要在代码中使用num2/num1,而不是{}。这也是为什么您总是得到0num1总是小于num2,所以当使用整数除法时,num1/num2将是{}(这是Python2.x上划分整数的默认值)。在

为了避免像144/5这样的问题并消除被零除的问题,您可以使用以下方法:

num1 = random.randint(1,12)
num2 = random.randint(1,12) * num1

相关问题 更多 >