我有一种方法可以检索几个随机数。然后,我想将randoma和randomb合并为一个数字
例如,如果randoma = 2并且randomb = 150,我希望它返回2150
我不确定该怎么做。 #是我未知的return语句所在的位置。
def display()
total = setnums()
print("total = " + total)
def setnums():
randoma = random.randint(1, 5)
randomb = random.randint(100,1000)
return ########
答案 0 :(得分:6)
在Python 3.6及更高版本中:
int(f'{randoma}{randomb}')
在低于3.6的Python中:
int(str(randoma) + str(randomb))
答案 1 :(得分:2)
将它们转换为字符串并将其连接起来。
return int(str(randoma) + str(randomb))
答案 2 :(得分:0)
int(str(randoma) + str(randomb))
答案 3 :(得分:0)
如果您想使用简单的数学方法而不转换为字符串
from math import floor, log10, pow
from random import randint
def display():
total = setnums()
print(total)
def setnums():
randoma = randint(1, 5)
randomb = randint(100,1000)
print(randoma)
print(randomb)
numberOfDigitsInFirstRandNumber = floor(log10(randomb))
numberOfDigitsInSecondRandNumber = floor(log10(randomb))
totalDigitCount = numberOfDigitsInFirstRandNumber + numberOfDigitsInSecondRandNumber
multiplyingFactor = pow(10, totalDigitCount - 1)
return (randoma * multiplyingFactor ) + randomb
display()
基本上,您要做的是将两个数字的位数相加,从中减去一个,并将10提高到结果的幂,然后将第一个随机数乘以结果,然后将其加到第二个随机数上。
尝试一下答案 4 :(得分:0)
TL; DR :
在Python> = 3.6中,使用f-strings:
return int(f'{randoma}{randomb}')
在Python <3.6中,使用+运算符:
int(str(randoma) + str(randomb))
使它保持简单,易读,并在您自己的环境中进行测试,哪种选择最适合您。
提供以下功能:
def setnums():
randoma = random.randint(1, 5)
randomb = random.randint(100, 1000)
r = ##
return int(r)
在python3.6中的执行时间:
r = f"{randoma}{randomb}"
2.870281131
r = "%s%s" % (randoma, randomb)
2.9696586189999996
r = str(randoma) + str(randomb)
3.084615994999999
r = "".join((str(randoma), str(randomb)))
3.1661511100000013
def setnums():
randoma = str(random.randint(1, 5))
randomb = str(random.randint(100, 1000))
randoma += randomb
return int(randoma)
3.0611202350000006
在python2.7中的执行时间:
r = "%s%s" % (randoma, randomb)
2.46315312386
r = str(randoma) + str(randomb)
2.56769394875
r = "".join((str(randoma), str(randomb)))
2.68126797676
def setnums():
randoma = str(random.randint(1, 5))
randomb = str(random.randint(100, 1000))
randoma += randomb
return int(randoma)
2.53426408768
Literal String Interpolation (PEP 498)。
Splitting, Concatenating, and Joining Strings in Python
答案 5 :(得分:-2)
使用'str'函数将randoma和randomb转换为字符串,使用'='进行连接,然后使用'int'函数将连接的字符串转换为整数。
答案 6 :(得分:-2)
在我看来
return randoma * 1000 + randomb
满足问题中所示特定范围的规定要求,唯一的问题是当randomb恰好是1000时需要什么。
对于其他范围的随机数,所需的算法需要更多的定义。我们无法从一个示例中猜测数字“组合”的含义。