Как сделать оператор переменной? например, я хочу сохранить значение 1 в операторе «+», то есть «+» = 1. Но python показывает ошибку, что мне делать? мой проект таков: в то время как True:
current_number = int(input("Enter the number that you wish to be displayed: "))
print(f"The current displayed number is: {current_number}")
print("The value of '+' and '-' is limited to 5")
n = input()
if n == "+" or "++" or "+++" or "++++" or "+++++":
if n == "+":
print(current_number + 1)
if n == "++":
print(current_number + 2)
if n == "+++":
print(current_number + 3)
if n == "++++":
print(current_number + 4)
if n == "+++++":
print(current_number + 5)
elif n == "-" or "--" or "---" or "----" or "-----":
if n == "-":
print(current_number - 1)
if n == "--":
print(current_number - 2)
if n == "---":
print(current_number - 3)
if n == "----":
print(current_number - 4)
if n == "-----":
print(current_number - 5)
Я хочу упростить код, сделав "+" = 1, как мне это сделать?
+
не является допустимым именем переменной.
но я должен сделать это в любом случае
Если ваш учитель сказал вам переопределить +
так, чтобы оно само по себе было допустимым выражением, они поставили перед вами невыполнимую задачу. Это задание от 1 апреля, к которому вы только приступили? Или может вы неправильно поняли инструкцию?
@Samwise я отредактировал свой пост, пожалуйста, проверьте его
С кодом много более понятно, что вы пытались сделать! Всегда указывайте код заранее, когда задаете вопрос. :)
if n == "+" or "++" or "+++" or "++++" or "+++++"
Это утверждение будет всегда верным...
То, что сделало вашу формулировку вопроса запутанной, между прочим, заключается в том, что нить"+"
является нет в любом случае таким же, как оператор+
! Слово «оператор» никогда не должно было стоять рядом с этим вопросом. Ваш вопрос на самом деле «как преобразовать "+"
в 1
, "++"
в 2
и так далее», и ответ на него просто len()
.
В качестве имен переменных не допускаются вещи, отличные от [A-Za-z0-9_].
Если вам это нужно на 100%, используйте словарь то есть
specialVars={'+':1, "-":-1}
тогда позвони
specialVars['+']
редактировать: если вам просто нужно добавить 1 для каждого «+» и -1 для каждого «-» сделай это
print(current_number+n.count('+')-n.count('-'))
Используйте len()
, чтобы подсчитать количество символов в n
:
while True:
current_number = int(input("Enter the number that you wish to be displayed: "))
print(f"The current displayed number is: {current_number}")
n = input()
if set(n) == {"+"}:
print(current_number + len(n))
elif set(n) == {"-"}:
print(current_number - len(n))
Enter the number that you wish to be displayed: 37
The current displayed number is: 37
+++++
42
Обратите внимание, что при таком подходе нет необходимости произвольно ограничивать количество символов, хотя вы все равно можете сделать это явно, отклонив ввод, где len(n) > 5
.
Ваша исходная версия проверки, содержит ли строка все "+"
или "-"
, не работает:
if n == "+" or "++" or "+++" or "++++" or "+++++":
потому что (n == "+") or ("++")
просто вернет "++"
(что верно), если n == "+"
не True
. «Правильный» способ написать этот чек:
if n in ("+", "++", "+++", "++++", "+++++"):
или проще (поскольку все эти конкретные строки являются подстроками "+++++"
:
if n in "+++++":
Моя версия кода делает это вместо этого:
if set(n) == {"+"}:
который работает путем преобразования n
в set
(уменьшая его только до уникальных символов) - если n
содержит все "+"
s, то его set
есть {"+"}
. Это работает для любой длины n
.
Отвечает ли это на ваш вопрос? Как создать переменные переменные?