如何删除元组中的字母而不更改为字符串

2024-09-20 22:53:42 发布

您现在位置:Python中文网/ 问答频道 /正文

长话短说,我正在为随机和编写代码,并已开始使用运算符导入,以使其更容易和更有效。但是,打印此结果时:

from operator import add, sub, mul
ops = (add, sub, mul)
op = random.choice(ops)
print("What is",ranNum1,op,ranNum2,"?")

我得到:

What is 9 < built-in function sub > 3 ?

我试图删除结果中的字母,但它是一个元组,而不是字符串,因此这是不可能的。有什么建议吗?你知道吗


Tags: 代码fromimportaddis运算符randomwhat
2条回答
from operator import add, sub, mul
import random

ranNum1 = random.randint(0, 100)
ranNum2 = random.randint(0, 100)
ops = {'+': add, '-': sub, '*': mul}
op = random.choice(list(ops.keys()))
while True:
    user_input = int(input('What is {0} {1} {2}?'.format(ranNum1, op, ranNum2)))
    if user_input == ops.get(op)(ranNum1, ranNum2):
        break
    print('Incorrent!')
print('Correct!')

可以使用__name__获取名称,但这不是符号运算符:

>>> print("What is", ranNum1, op.__name__, ranNum2, "?")
What is 6 add 9 ?
>>> print("Answer:", op(ranNum1, ranNum2))
Answer: 15

添加字典允许您打印符号运算符,因此用字典替换ops

>>> ops = {add: '+', mul: '*', sub: '-'}
>>> op = random.choice(list(ops))
>>> print("What is", ranNum1, ops[op], ranNum2, "?")
What is 6 + 9 ?

相关问题 更多 >

    热门问题