2016-07-07 3 views
-7

Я сделал математическую викторину в python. Весь мой код работает нормально, однако, когда я печатаю вопросы, которые он печатает в скобках, а также с запятыми и апострофами.Удаление символов из кортежа python

question = number1, '+', number2 

Это имя моего кортежа:

answer = int(input("What is {}?".format(question))) 

Вот где я печатаю вопрос:

What is (2, '*', 4)? 

Это то, что мой вывод выглядит. Я хочу знать, как удалить (, '',). Спасибо.

+1

Это не имеет смысла, вы используете «+», и он выводит «*»? И уверены ли вы, что он печатает скобки? – activatedgeek

+0

str ((2, '*', 4)). Replace (",", "") .replace ("'", "") – AceLearn

+0

Где разместить это? – Callum

ответ

0

Не знаю, почему вам нужно форматировать дважды

answer = int(input("What is {0} + {1}?".format(number1, number2))) 
1

Ваш вопрос должен быть

question = '{} {} {}'.format(number1, operator, number2) 
2

О вашей ошибки:

question = number1, '+', number2 определяет кортеж с 3-х элементов

Пример :

>>> question = 2, '+', 4 
>>> print(question) 
(2, '+', 4) 
>>> type(question) 
tuple 

С "What is {}?".format(question) вы строите str по одному параметру question. Метод format преобразует кортеж question в str и вставляет его в string. Вот почему ваш вывод содержит (, ' и ) как кортеж.

>>> str((2, '*', 4)) 
(2, '*', 4) 

В вашем случае вы можете построить str вопрос с помощью этого:

question = "%i + %i" % (number1, number2) 

или

question = "{} + {}".format(number1, number2) 

и использовать его снова в функции input():

answer = int(input("What is {} ".format(question))) 

Или вы можете использовать кортежquestion непосредственно так:

question = number1, '+', number2 
answer = int(input("What is {} {} {}".format(*question))) 

* преобразует переменный кортеж/список со списком параметров. Таким образом, у вас есть 3 параметра. Из-за этого вам нужно 3 {}

Смежные вопросы