将2的整数变成1

时间:2019-09-28 21:25:16

标签: python

我有一种方法可以检索几个随机数。然后,我想将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 ########

7 个答案:

答案 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提高到结果的幂,然后将第一个随机数乘以结果,然后将其加到第二个随机数上。

您可以从这里https://repl.it/repls/StainedRashArchive

尝试一下

答案 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时需要什么。

对于其他范围的随机数,所需的算法需要更多的定义。我们无法从一个示例中猜测数字“组合”的含义。