TFR 发表于 2021-12-5 12:53:21

为什么python会报错

import random
temp=input("请输入算法:")
small=input("请输入小范围:")
big=input("请输入大范围:")
fy=input("次数:")
frequency=int(fy)
x=1
while x<=frequency:
    one=random.randint(small,big)
    two=random.randint(small,big)
    if temp is '+':
      outcome=input(one,"+",two,"=")
      if one+two==outcome:
            print("OK")
      else:
            print("No")
    else:
      if temp is '-':
         outcome=input(one,"*",two,"=")
         if one-two==outcome:
               print("OK")
         else:
               print("No")   
      else:
         if temp is '*':
               outcome=input(one,"*",two,"=")
               if one*two==outcome:
                  print("OK")
               else:
                  print("No")
         else:
                if temp is '/':
                  outcome=input(one,"/",two,"=")
                  if one/two==outcome:
                        print("OK")
                  else:
                        print("No")
                else:
                  if temp is '%':
                        outcome=input(one,"%",two,"=")
                        if one%two==outcome:
                            print("OK")
                        else:
                            print("No")
                  else:
                        print("输入不对!")
                        end while
    x=x+1

suchocolate 发表于 2021-12-5 19:23:09

去学一下input内置函数的使用:https://www.runoob.com/python/python-func-input.html
另外end while是什么东西,python没有这样的语法。

干虾皮 发表于 2021-12-5 22:17:27

本帖最后由 干虾皮 于 2021-12-5 22:47 编辑

C语言有end while,Python没有,其次你的input函数有问题,Python单纯的input应该只有一个参数,您搞了4个参数,如果四个参数的你需要使用input.split(),我根据您的程序猜测您不需要四个参数我给您更改了下,你看下是否符合你想要的结果,对于加,减,乘都试验过了,除和余数应该会有问题涉及(类型:浮点数和整数),您自己搞一下就好,因为你是从C转过的我感觉很可能您的除象要的是地板除,但是我不确认给您两个建议:
1.你的程序能写个说明这样的话别人能看的出来距离你的目的有多大差距。
2.把随机数打印一下或者有提示这样调试的时候会事半功倍

import random
temp=input("请输入算法:")
small=int(input("请输入小范围:"))

big=int(input("请输入大范围:"))
fy=input("次数:")
frequency=int(fy)
x=1
while x<=frequency:
    one=random.randint(small,big)
    two=random.randint(small,big)
    print(one)
    print(two)
    if temp is '+':
      outcome=int(input('one+two='))
      
      if one+two==outcome:
            print("OK")
      else:
            print("No")
    else:
      if temp is '-':
         outcome=int(input("one-two="))
         if one-two==outcome:
               print("OK")
         else:
               print("No")   
      else:
         if temp is '*':
               outcome=int(input("one*two="))
               if one*two==outcome:
                  print("OK")
               else:
                  print("No")
         else:
                if temp is '/':
                  outcome=float(input("one/two="))
                  if one/two==outcome:
                        print("OK")
                        print
                  else:
                        print("No")
                else:
                  if temp is '%':
                        outcome=int(input("one%two="))
                        if one%two==float(outcome):
                            print("OK")
                        else:
                            print("No")
                  else:
                        print("输入不对!")
                        
    x+=1
页: [1]
查看完整版本: 为什么python会报错