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

1 投票
4 回答
880 浏览
提问于 2025-04-18 01:35

我正在使用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 个回答

1

根据手册input的作用相当于eval(raw_input(prompt)),所以你不需要把字符串转换成整数——i1i2已经是整数了。你可以直接这样做:

from random import randint

i1 = input('Enter N1:')
i2 = input('Enter N2:')
r = randint(i1, i2)
print r

顺便提一下,你的格式字符串{0},{1}缺少引号。

1

你想要做的事情是:

  1. 导入 randint 函数
  2. 让用户输入上下限
  3. 打印出一个在这个范围内的随机整数(包括上下限)

下面是实现这个功能的代码:

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: '))
4

要解决所有问题,只需这样做:

r = random.randint(i1, i2)

在修复了 SyntaxError 之后,你会遇到另一个错误,因为你把一个字符串传给了 randint。只需按照我上面做的方式来修复这个问题,你根本不需要 .format

2

你需要给 {0},{1} 加上引号或撇号,这样它才能变成一个字符串:

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

这样就可以把一个字符串传递给随机整数函数了。不过,这个函数其实是需要两个整数的。所以你只需要这样做:

r = randint(i1, i2)

撰写回答