1

当我编码时,我从列表中选择一个随机值并将其与两个数字一起打印以求和。但是,列表中的值仍然显示引号,我不明白为什么。代码是:

import random
level = input('Please choose either easy, medium or hard')
if level == 'easy':
    num1 = random.randint(1,5)
    num2 = random.randint(1,5)
    #Chooses a random operator from the list
    op = random.choice(['+', '-', '*'])
    #Arranges it so the larger number is printed first
    if num1 > num2:
        sum1 = (num1, op, num2)
    else:
        sum1 = (num2, op, num1)
    #Prints the two numbers and the random operator
    print(sum1)

我尝试运行此代码,得到的结果是:

(4, '*', 3)

当我希望它显示为:

4*3

这些数字也是随机生成的,但工作正常。有谁知道如何解决这个问题?

4

2 回答 2

2

您正在打印一个生成此格式的列表。为了获得所需的输出,您可以join使用空分隔符列出列表:

print (''.join(sum1))

编辑:

刚刚注意到您将操作数作为整数,而不是字符串。要使用此技术,您应该将所有元素转换为字符串。例如:

print (''.join([str(s) for s in sum1]))
于 2015-09-12T17:12:52.600 回答
1

鉴于您知道格式,您可以将 print 与格式说明符一起使用:

>>> sum1 = (4, '*', 3)
>>> print("{}{}{}".format(*sum1))
4*3
于 2015-09-12T17:35:19.467 回答