在python中生成随机整数时出错

时间:2014-04-06 12:14:33

标签: python

我使用python在用户的两个值之间产生随机整数,我的代码如下。我收到了错误:

from random import *

i1 = input('Enter the N1 :')
i2 = input('Enter the N2 :')

r = randint({0},{1}.format(i1,i2))

print r

这里我从用户那里拿i1和i2,想在i1和i2之间产生随机整数。

我收到错误:

File "index.py", line 6
    r = randint({0},{1}.format(i1,i2))
                  ^
SyntaxError: invalid syntax

4 个答案:

答案 0 :(得分:4)

要解决所有问题:

r = random.randint(i1, i2)

修复SyntaxError后,由于将字符串传递给randint,您将收到另一个错误。只需按照上面的操作来解决问题,您根本不需要.format

答案 1 :(得分:2)

您需要添加引号/撇号以使{0},{1}成为字符串:

r = randint('{0},{1}'.format(i1,i2))

这会将字符串传递给随机整数函数。该函数需要两个整数。所以你需要做的就是:

r = randint(i1, i2)

答案 2 :(得分:1)

根据manualinput相当于eval(raw_input(prompt)),因此您无需将字符串解析为整数 - i1和{{1}已经是整数了。而是做:

i2

顺便说一下,您缺少格式字符串{0},{1}

的引号

答案 3 :(得分:1)

这是您正在尝试做的事情:

  1. 导入randint功能
  2. 获取用户的下限和上限
  3. 在(包括)边界之间打印一个随机整数
  4. 以下是执行此操作的代码:

    from random import randint
    
    a = input('Enter the lower bound: ')
    b = input('Enter the upper bound: ')
    
    print(randint(a, b))
    

    注意:如果您使用的是Python 3,则需要将a和b转换为整数,例如

    a = int(input('Enter the lower bound: '))