在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 个回答
1
根据手册,input
的作用相当于eval(raw_input(prompt))
,所以你不需要把字符串转换成整数——i1
和i2
已经是整数了。你可以直接这样做:
from random import randint
i1 = input('Enter N1:')
i2 = input('Enter N2:')
r = randint(i1, i2)
print r
顺便提一下,你的格式字符串{0},{1}缺少引号。
1
你想要做的事情是:
- 导入
randint
函数 - 让用户输入上下限
- 打印出一个在这个范围内的随机整数(包括上下限)
下面是实现这个功能的代码:
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)