Как сделать операторную переменную?

Как сделать оператор переменной? например, я хочу сохранить значение 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, как мне это сделать?

Отвечает ли это на ваш вопрос? Как создать переменные переменные?

FLAK-ZOSO 09.04.2022 20:00
+ не является допустимым именем переменной.
John Gordon 09.04.2022 20:02

но я должен сделать это в любом случае

Ayushje 09.04.2022 20:03

Если ваш учитель сказал вам переопределить + так, чтобы оно само по себе было допустимым выражением, они поставили перед вами невыполнимую задачу. Это задание от 1 апреля, к которому вы только приступили? Или может вы неправильно поняли инструкцию?

Samwise 09.04.2022 20:04

@Samwise я отредактировал свой пост, пожалуйста, проверьте его

Ayushje 09.04.2022 20:08

С кодом много более понятно, что вы пытались сделать! Всегда указывайте код заранее, когда задаете вопрос. :)

Samwise 09.04.2022 20:13
if n == "+" or "++" or "+++" or "++++" or "+++++" Это утверждение будет всегда верным...
John Gordon 09.04.2022 20:16

То, что сделало вашу формулировку вопроса запутанной, между прочим, заключается в том, что нить"+" является нет в любом случае таким же, как оператор+! Слово «оператор» никогда не должно было стоять рядом с этим вопросом. Ваш вопрос на самом деле «как преобразовать "+" в 1, "++" в 2 и так далее», и ответ на него просто len().

Samwise 09.04.2022 20:27
Анализ настроения постов в Twitter с помощью Python, Tweepy и Flair
Анализ настроения постов в Twitter с помощью Python, Tweepy и Flair
Анализ настроения текстовых сообщений может быть настолько сложным или простым, насколько вы его сделаете. Как и в любом ML-проекте, вы можете выбрать...
7 лайфхаков для начинающих Python-программистов
7 лайфхаков для начинающих Python-программистов
В этой статье мы расскажем о хитростях и советах по Python, которые должны быть известны разработчику Python.
Установка Apache Cassandra на Mac OS
Установка Apache Cassandra на Mac OS
Это краткое руководство по установке Apache Cassandra.
Сертификатная программа "Кванты Python": Бэктестер ансамблевых методов на основе ООП
Сертификатная программа "Кванты Python": Бэктестер ансамблевых методов на основе ООП
В одном из недавних постов я рассказал о том, как я использую навыки количественных исследований, которые я совершенствую в рамках программы TPQ...
Создание персонального файлового хранилища
Создание персонального файлового хранилища
Вы когда-нибудь хотели поделиться с кем-то файлом, но он содержал конфиденциальную информацию? Многие думают, что электронная почта безопасна, но это...
Создание приборной панели для анализа данных на GCP - часть I
Создание приборной панели для анализа данных на GCP - часть I
Недавно я столкнулся с интересной бизнес-задачей - визуализацией сбоев в цепочке поставок лекарств, которую могут просматривать врачи и...
0
8
34
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

В качестве имен переменных не допускаются вещи, отличные от [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.

Другие вопросы по теме