fname3 = input("Enter the Blue print name: ")
import re
with open (fname3) as file:
fileText=file.read()
q1,q2,q3 = [ int(n) for n in re.findall(": (\d+)",fileText) ]
p1,p2,p3 = re.findall("(.*):",fileText)
qb=q1+q2
qc=q1+q2+q3
print("This BLUEPRINT CONTAINS--------------|")
print(p1+" Questions: "+q1)
Этот код выше дает ошибку строки: print(p1+" Questions: "+q1)
, но print(p1+" Questions: "+p1)
дает правильный вывод abd также print("q1")
, но их объединение выдает ошибку
, но дает ошибку [115 ] Этот код открывает текстовый файл, который содержит следующее:
Part A: 12 10*2 = 20
Part B: 6 4*5 = 20
Part C: 5 3*10 = 30
Еще один способ сделать это с помощью так называемых f-строк (доступно в Python 3.6+, но последняя версия 3.7):
print (f"{p1} Questions: {q1}")
Обратите внимание, как f
перед кавычками (относится ко всем типам кавычек), и любая переменная, которую вы хотите, должна быть в {}
Проблема в типах ваших переменных.
Questions:
, p1
, p2
и p3
относятся к типу str
.
И наоборот, q1
, q2
и q3
относятся к типу int
.
Вызовы print
работают отдельно, потому что print
может преобразовать свои аргументы в str
. Однако сначала вы пытаетесь добавить две строки (p1
и Questions:
) в int
(q2
), что не помогает.
Вместо наивного сложения / объединения следует предпочесть str.format
вызовов:
print('{p} Questions: {q}'.format(p=p1, q=q1))
Это облегчает понимание того, как будет выглядеть строка, и автоматически выполняет преобразование ваши аргументы.
Python - строго типизированный язык. В большинстве случаев он не выполняет никаких неявных преобразований типов. Подумайте, должно ли "5" +7 быть 12 или "57"? Как насчет 7+ «5»?
В неоднозначных случаях, подобных этому, Python просто выдаст ошибку, а не попытается угадать, что вы имели в виду.
Вам необходимо выполнить преобразование типа явно:
print(p1+" Questions: "+str(q1))
или с помощью Python 3 f-string:
print(f"{p1} Questions: {q1}")
или функция печати принимает несколько аргументов, которые по умолчанию будут , разделенные пробелом:
print(p1, "Questions:", q1)
str.format
метод, это - в основном стенография. Например,print (num.format (","))
распечатаетnum
с запятыми, где соответствующий (который мог бы отличаться за пределами Америки). Однакоprint (f"{num:,}")
делает его очевидным, чтоnum
what' s быть распечатанным и что-либо после эти:
передаетсяstr.format
. Кроме того, это помогает избежать противных пробелов, о которых забывают при использовании+
, поскольку Вы видите его явно. Щелчок для получения дополнительной информации – Levi Lesches 18.03.2019, 11:25HTMLCollection
неNodeList
( касательно ). Посмотрите работу демонстрация – zgood 29.03.2019, 07:56