【问题标题】:making a basic multiplication program in python用python制作一个基本的乘法程序
【发布时间】:2012-06-08 16:22:50
【问题描述】:

程序的目标是让两个小于 12 的随机数相乘并让用户猜出答案。到目前为止我有这个。 . .

import random

g=0
while g<10:
    variable_1 = random.randint (0,13)
    variable_2 = random.randint (0,13)

    answer = variable_1 * variable_2
    guess = input("What is 'variable_1' x 'variable_2'?")

    if guess == answer:
        print "Correct!"
    else:
        print "Incorrect!"

问题是输入框字面意思是“什么是变量_1 x 变量_2?”。但是,我希望它在输入框中具有变量的值。有没有办法做到这一点?

【问题讨论】:

  • randrange(12) 选择0 &lt;= x &lt; 12。您的代码还错误地选择了 12、13
  • 你不会增加g。这个程序应该无限循环吗?

标签: python input python-2.7


【解决方案1】:

试试这个:

guess = input("What is %d x %d?" % (variable_1, variable_2))

【讨论】:

  • 我认为 %i 没有任何意义。 %d 表示十进制整数。可用类型列表位于docs.python.org/library/string.html#formatspec
  • 使用int(raw_input(...)) 而不是input()
  • @Maria:确实如此。您没有使用链接到的 format() 语法,它是在 Python 2.6 中引入的,而是 older string formatting 语法,其中 %i 是“有符号整数十进制”。 %d 也是如此,但 IMO 那个字母更容易与“双”或“十进制”混淆。我想这是一个偏好问题。
【解决方案2】:
querystr="What is "+str(variable_1)+" x "+str(variable_2)+"?";

那你就可以了

guess=input(querystr);

【讨论】:

    【解决方案3】:
    from random import randint
    
    def val(lo=1, hi=12):
        return randint(lo, hi)
    
    def main():
        right = 0
        reps = 10
        for rep in range(reps):
            v1, v2 = val(), val()
            target = v1 * v2
    
            guess = int(raw_input("What is {} * {}?".format(v1, v2)))
    
            if guess==target:
                print("Very good!")
                right += 1
            else:
                print("Sorry - it was {}".format(target))
    
        print("You got {} / {} correct.".format(right, reps))
    

    【讨论】:

      猜你喜欢
      • 2012-07-23
      • 1970-01-01
      • 1970-01-01
      • 2016-04-22
      • 2020-08-08
      • 2021-08-15
      • 2015-08-16
      • 2013-02-05
      • 1970-01-01
      相关资源
      最近更新 更多