Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/317.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ssh/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 我如何循环这个程序_Python_Loops - Fatal编程技术网

Python 我如何循环这个程序

Python 我如何循环这个程序,python,loops,Python,Loops,我需要循环这个程序来问这个问题十次,但它似乎不起作用 import os import random import operator score=0 ops={'+':operator.add, '-':operator.sub, '*':operator.mul, '/':operator.truediv} name=input('what is your name? ') print('hello lets answer some maths',name) op = r

我需要循环这个程序来问这个问题十次,但它似乎不起作用

import os
import random
import operator
 score=0
     ops={'+':operator.add,
'-':operator.sub,
 '*':operator.mul,
 '/':operator.truediv}
 name=input('what is your name? ')
 print('hello lets answer some maths',name)
 op = random.choice(list(ops)
               )
 b=random.randint(1,10)  
 a=random.randint(1,10)
 c=int(input("What is {} {} {}? ".format(float(b), op, float(a))))
 if  a+b==c:
    print("correct.")
    score+1
else:
print('incorrect.')
score+0

您的代码看起来非常糟糕,无法工作,因为您有随机运算符,但您总是测试加法

重要的部分是检查输入是否正确

python 2/3兼容

免责声明:此inst就像一个完美的算法。6/7是不可能回答的

import random
import operator

try:
    input = raw_input
except:
    pass

ops={
    '+' : operator.add,
    '-' : operator.sub,
    '*' : operator.mul,
    '/' : operator.truediv
}

def question():
    b=random.randint(1,10)
    a=random.randint(1,10)
    op = random.choice(list(ops))
    raw = input("What is %s %s %s? " % (a, op, b))
    try:
        c=float(raw)
    except:
        return 0

    # calls operator functions you defined        
    if c == ops[op](a,b):
        return 1
    else:
        return 0


if __name__ == '__main__':
    score = 0
    for n in range(10):
        score = score + question()
    print('Your socre: %s' % score)

下面将完全重复您的代码,始终希望数字被添加十次。如果您需要不同的操作员,请更改ops指令,但请注意Yannik的注释

import random
import operator
ops={'+':operator.add,
'-':operator.add,
 '*':operator.add,
 '/':operator.add}
name=input('what is your name? ')
print('hello lets answer some maths',name)
score=sum((lambda v: (v,print(['incorrect','correct'][v]))[0])(
        (lambda a,f:int(f("What is {1} {0} {2}? ".format(*a)))==ops[a[0]](*a[1:]))(
            [random.choice(list(ops))]+list(map(lambda x: random.randint(1,x),[10]*2)),input))
          for _ in range(0,10))

对于a+b==c范围10中的uu,你是指ops[op]a,b==c吗?另外,在不使用任何循环(如for或while)的情况下,您希望程序如何循环???缩进很糟糕。请把它修好。你希望分数+1做什么?您正在对分数执行算术运算,但不会将结果保存到任何位置。也许你的意思是分数+=1。但是分数+0是完全没有用的。谢谢:D真的帮助了我对pythonyeah的新认识。虽然如此,当我开始写的时候,我写的东西没有比你写的更好的了。^这段代码太复杂了。海报作为一个初学者使它更不合适。它是。。。故意复杂。当我读到这篇文章时,听起来像是用户试图让我们做一个家庭作业问题,有时我会给那些不能用作作业答案的正确答案。事后看来,我可能在这里错了,因为我刚刚给出了大量类似的“做我的家庭作业”问题。对不起@用户5061:事实上,这不仅仅是家庭作业——它是一项评估任务,用于评估过去被称为“O”的水平。有关更多详细信息,请参阅。